zoukankan      html  css  js  c++  java
  • QQ无法通过ISA2006&TMG2010代理收发图片问题解决

    近期公司有业务需求通过TMG访问QQ,但配置多次均无法通过QQ收发图片,文字输入正常。

    目前已解决,供参考:

    这个问题是SSL端口默认使用了443,但QQ的离线文件不使用这个端口。所以ISA会把QQ的这个数据包给WEB代理筛选器,所以出错。解决办法,增加其它端口到ISA的SSL:
    下载附件里的工具解压后放到ISA上,然后打命令 增加 80 8000-9000端口重启TMG或ISA 就OK 了

    1、下载如下压缩包,解压:

    http://files.cnblogs.com/files/Eric-Young/isa_tpr.zip

    2、点击add_tpr.bat文件,连续三次确认;

    3、打开命令窗口,切换到上述文件夹中;

    4、运行如下命令,开启QQ使用端口:

    cscript isa_tpr.js /add ext80 80
    cscript isa_tpr.js /add ext8000 8000
    cscript isa_tpr.js /add ext9000 9000

    5、重启TMG或ISA

    具体的原因:http://www.isacn.org/info/info.php?sessid=&infoid=165

    ISA防火墙同时是网络防火墙和Web代理服务器。ISA Server的防火墙组件允许它同时执行数据包过滤和应用层状态识别;而Web代理组件允许它作为CERN兼容的HTTP 1.1 Web代理服务器。Web代理组件(实际上是ISA Server 2004防火墙内部的Web代理过滤器)可以对HTTP通信进行解码,执行应用层状态过滤,然后在转发给外部的目的Web服务器时重建HTTP通信。 
    
    可是,对于在受ISA防火墙保护的网络中的主机和一台外部网络的Web服务器间建立的SSL连接有点不一样,当内部主机通过ISA防火墙的Web代理组件发起SSL请求时,ISA防火墙可以检查HTTP头或者根据访问规则来执行过滤;但是,当它们之间的SSL连接建立后,由于在它们之间传输的数据实行了SSL隧道加密,ISA防火墙将不能再检查它们之间传输的数据。 
    
    在内部Web客户和目的Web服务器之间建立SSL隧道的过程如下所示: 
    
    1、内部的Web客户通过在Web浏览器的地址栏中发起一个对目的Web服务器的SSL对象的请求,如 
    
    https:URL_Name 
    
    2、用户将把这个请求发送到ISA防火墙的8080端口(默认的Web代理侦听端口); 
    
    CONNECT URL_name:443 HTTP/1.1 
    
    3、ISA防火墙连接目的Web服务器的443端口; 
    
    4、当连接建立后,ISA防火墙返回数据给Web客户; 
    
    HTTP/1.0 200 connection established 
    
    从此时开始,客户直接和外部的Web服务器通信,而不再经过ISA防火墙的Web代理组件,因此,ISA防火墙不能再对封装在SSL隧道中的数据和命令执行应用层状态识别。 
    
    当外部Web服务器使用标准的SSL端口TCP 443时,一切都是很正常的,但是,有时候你的Web代理客户也会使用其他的端口来访问SSLWeb站点,例如,Web代理客户可能会使用端口4433替代443来访问银行的Web站点,这样会导致SNAT客户和防火墙客户产生错误,因为ISA防火墙默认会转发SNAT客户和防火墙客户的HTTP连接到Web代理过滤器,客户可能会看见空白页或者指出该页面不能访问的错误页。 
    
    这个问题就是Web代理过滤器会转发SSL连接到TCP端口443。如果客户想连接其他不使用TCP 443端口的SSL站点,那么连接尝试将会失败。你可以通过扩展SSL隧道端口范围来解决这个问题。为了做到这一点,你需要下载Jim Harrison的脚本,然后运行时输入你想让ISA防火墙Web代理组件使用的SSL隧道端口范围。
  • 相关阅读:
    WCF开发入门的实例
    转:SQLHelper类,泛型+反射
    设置ASP缓存的几个语句
    ADO.NET总结
    通过反射来实现:DataTable 和List 相互转换
    十步完成windows服务的安装
    dhl:The request for security token could not be satisfied because authentication failed. 调用方未由服务进行身份验证。
    C#中的readonly(运行时常量)与const(编译时常量)的区别
    用do{}创建内联子程序
    用autodie简化错误处理
  • 原文地址:https://www.cnblogs.com/Eric-Young/p/6945224.html
Copyright © 2011-2022 走看看