ISA防火墙同时是网络防火墙和Web代理服务器。ISA Server的防火墙组件允许它同时执行数据包过滤和应用层状态识别;而Web代理组件允许它作为CERN兼容的HTTP 1.1 Web代理服务器。Web代理组件(实际上是ISA Server 2006防火墙内部的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代理客户可能会使用端口8433替 代443来访问某个Web站点,这样会导致SNAT客户和防火墙客户产生错误,因为ISA防火墙默认会转发SNAT客户和防火墙客户的HTTP连接到 Web代理过滤器,客户可能会看见空白页或者指出该页面不能访问的错误页。
这个问题就是Web代理过滤器会转发SSL连接到TCP端口443。如果客户想连接其他不使用TCP 443端口的SSL站点,那么连接尝试将会失败。你可以通过扩展SSL隧道端口范围来解决这个问题。为了做到这一点,你需要下载ISA_tpr.js的脚本,然后运行时输入你想让ISA防火墙Web代理组件使用的SSL隧道端口范围。
执行以下步骤以扩展SSL隧道端口范围:

1、下载 isa_tpr.js 文件,然后将其复制到ISA防火墙计算机上。
2、在命令提示符下输入:cscript isa_tpr.js /show  显示如下。

C:\>cscript isa_tpr.js /show
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。


This is your current Tunnel Port Range list:

        NNTP (single port): 563
        SSL (single port): 443

3、输入命令:C:\>cscript isa_tpr.js /add SSL8443 8443  显示如下。

C:\>cscript isa_tpr.js /add SSL8443 8443
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。


The Web Proxy service should be restarted to pick up the change.

This is the definition for SSL8443:

        SSL8443 (single port): 8443


4、再用C:\>cscript isa_tpr.js /show  命令可以查看添加结果。
C:\>cscript isa_tpr.js /show
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。


This is your current Tunnel Port Range list:

        NNTP (single port): 563
        SSL (single port): 443
        SSL8443 (single port): 8443


5、 端口添加完成后,记得重启ISA Server服务