ISA防火墙同时是网络防火墙和Web代理服务器 ISA Server的防火墙组件允许它同时执行数据包过滤和应用层状态识别 而Web代理组件允许它作为CERN兼容的HTTP Web代理服务器 Web代理组件(实际上是ISA Server 防火墙内部的Web代理过滤器)可以对HTTP通信进行解码
ISA防火墙同时是网络防火墙和Web代理服务器
ISA Server的防火墙组件允许它同时执行数据包过滤和应用层状态识别
而Web代理组件允许它作为CERN兼容的HTTP
Web代理服务器
Web代理组件(实际上是ISA Server
防火墙内部的Web代理过滤器)可以对HTTP通信进行解码
执行应用层状态过滤
然后在转发给外部的目的Web服务器时重建HTTP通信
可是
对于在受ISA防火墙保护的网络中的主机和一台外部网络的Web服务器间建立的SSL连接有点不一样
当内部主机通过ISA防火墙的Web代理组件发起SSL请求时
ISA防火墙可以检查HTTP头或者根据访问规则来执行过滤
但是
当它们之间的SSL连接建立后
由于在它们之间传输的数据实行了SSL隧道加密
ISA防火墙将不能再检查它们之间传输的数据
在内部Web客户和目的Web服务器之间建立SSL隧道的过程如下所示
内部的Web客户通过在Web浏览器的地址栏中发起一个对目的Web服务器的SSL对象的请求
如
https:URL_Name
用户将把这个请求发送到ISA防火墙的
端口(默认的Web代理侦听端口)
CONNECT URL_name:
HTTP/
ISA防火墙连接目的Web服务器的
端口
当连接建立后
ISA防火墙返回数据给Web客户
HTTP/
connection established
从此时开始
客户直接和外部的Web服务器通信
而不再经过ISA防火墙的Web代理组件
因此
ISA防火墙不能再对封装在SSL隧道中的数据和命令执行应用层状态识别
当外部Web服务器使用标准的SSL端口TCP
时
一切都是很正常的
但是
有时候你的Web代理客户也会使用其他的端口来访问SSLWeb站点
例如
Web代理客户可能会使用端口
替代
来访问银行的Web站点
这样会导致SNAT客户和防火墙客户产生错误
因为ISA防火墙默认会转发SNAT客户和防火墙客户的HTTP连接到Web代理过滤器
客户可能会看见空白页或者指出该页面不能访问的错误页
这个问题就是Web代理过滤器会转发SSL连接到TCP端口
如果客户想连接其他不使用TCP
端口的SSL站点
那么连接尝试将会失败
你可以通过扩展SSL隧道端口范围来解决这个问题
为了做到这一点
你需要下载Jim Harrison的脚本
然后运行时输入你想让ISA防火墙Web代理组件使用的SSL隧道端口范围
执行以下步骤以扩展SSL隧道端口范围
下载 isa_tpr
js 文件
(_tpr
js)
然后将其复制到ISA防火墙计算机上
注意
不要使用ISA防火墙上的浏览器
也不要在ISA防火墙上运行其他客户端程序
如电子邮件客户端等等
双击运行 isa_tpr
js
在第一个对话框上你可以看到你当前的状态信息
This is your current Tunnel Port Range list
点击确定
此时
NNTP端口显示出来了
点击确定
然后
SSL端口显示出来了
点击确定
现在复制isa_tpr
js这个文件到C盘根目录
然后打开一个命名提示符窗口
输入以下命令
isa_tpr
js /?
你会看到以下对话框

为了添加一个新的SSL隧道端口
例如
则输入以下命名行
敲回车
Cscript isa_tpr
js /add Ext
此时
你可以看到如下的信息
提示你命令运行成功

另外
你还可以下载Steven Soekrasno编写的
NET程序
ISATpre
zip()
然后在ISA防火墙上安装
这个程序提供了一种更为简单的方法来允许你修改SSL隧道端口范围
下图是此程序的运行界面

输入你想定义的端口范围和名字
然后点击Add Tunnel Range按钮
再点击Refresh
你就可以看见列表中新的SSL隧道端口范围
注意
以上的情况都只是通过Web代理过滤器访问HTTP协议的情况
如果你对HTTP协议取消了Web代理过滤器的识别
SNAT客户和防火墙客户通过ISA防火墙的HTTP访问将不会转发到Web代理过滤器
此时
你可以通过定义一个使用其他SSL端口的协议和允许访问此协议的出站访问规则来实现客户对外部非标准SSL端口(TCP
)的Web站点的访问