虽然ISA Server 2004中自带了几十种流行的服务器的协议定义,但是也许你也需要发布ISA Server 2004中没有协议定义的服务器。我以发布远程控制常用的Symantec PcAnyWhere为例,给大家介绍如何发布没有自带协议定义的内部网络中的服务器。
这篇文章的试验网络结构如下:

ISA Server 2004作为边缘防火墙,外部客户想访问内部的PcAnyWhere服务器。各计算机的TCP/IP设置如下(此次试验不设计DNS,各计算机的DNS服务器IP地址均设置为空):
ISA Server2004防火墙:
External Interface:
IP:61.139.0.8/24
DG:61.139.0.1
Internal Interface:
IP:192.168.0.1/24
DG:None
PcAnyWhere Server:
IP:192.168.0.2/24
DG:192.168.0.1
Internet Client:
IP:61.139.0.1/24
DG:61.139.0.1
ISA Server 2004上已经配置了允许内部网络所有用户访问外部网络的所有服务的“All Open”策略。
本文的主要步骤如下:
分析内部服务器使用的端口;
定义协议定义;
建立服务器发布规则;
在外部客户上建立连接进行测试。
由于ISA Server 2004特有的集成式操作,我将直接建立服务器发布规则,然后在发布规则操作里面定义服务器采用的协议,所以第2步和第3步将会融合。
1、分析内部服务器使用的端口
分析内部端口很容易,如果你使用可以自定义端口的软件,那么从软件的设置就可以获得此信息;如果是不能自定义端口的软件,可能你不能直接从软件设置中获得端口信息,此时你需要使用第三方的端口查看工具;虽然Windows自带了一个Netstat命令,但是此命令不能直接查看进程信息,需要 Tasklist的配合。在此我推荐大家使用本站提供下载的TCPView来查看,此软件是免费软件,非常方便好用。
如下图,在PcAnyWhere服务器上,我启动了PcAnyWhere的服务,

运行TCPView,awhost32.exe就是PcAnyWhere的服务名,可以看出,它侦听的端口有TCP 5631和UDP 5632两个。

至此,端口分析就完成了。
2、建立服务器发布规则
我们现在回到ISA Server上,打开ISA Server 2004的管理控制台,右击防火墙策略,点击新建,选择服务器发布规则;

在欢迎使用新建服务器发布向导页,输入新发布规则的名字,在此我命名为Publish PcAnyWhere,点击下一步;
在选择服务器页,输入内部PcAnyWhere服务器的IP地址,在此为192.168.0.2,点击下一步;
在选择协议页,点击新建;

在弹出的欢迎使用新建协议向导页,输入新协议的名字,在此我命名为PcAnyWhere,点击下一步;

在首要连接信息页,点击新建,

在新建/编辑协议窗口,按照我们刚才获得的协议信息进行输入,首先输入TCP入站5631端口,然后点击确定;

再次点击新建,此次输入UDP接收发送5632端口,点击确定;

然后在首要连接信息页,点击下一步;
在辅助连接页,点击下一步;
在正在完成新建协议向导页,点击完成;
在选择协议页,默认选择为新建的协议,点击下一步;

在IP地址页,勾选外部,如果你外部网卡具有多个IP地址,并且只想把服务发布绑定在外部的某个IP上,点击地址就可以进行设置。点击下一步继续;
在正在完成新建服务器发布规则向导页,点击完成;
此时,ISA Server管理控制台里面已经出现了新建的策略,

3、在外部客户上建立连接进行测试
如图,我们已经在外部的Internet Client上建立好了一个通往61.139.0.8的名为61.139.0.8的远程控制,

双击此控制,输入登录密码,此时,已经连接上了内部的PcAnyWhere主机,
