使用ISA发布内部网络中的腾讯通服务
有朋友在问如何发布内部网络中的腾讯通服务,在此以实例给大家讲解一下。希望大家能够从中学习到分析的技巧。无论建立发布规则还是访问规则,首先需要的是理解所使用的协议,说简单一点就是找出应用程序使用的端口。你可以使用Windows下的Netstat命令或者使用本网站上提供的TCPView,但是它们仅能查看当前进行通信或者侦听的端口以及对应的应用程序,进行动态的分析比较困难。
我的网络为边缘防火墙模型,使用ADSL拨号接入Internet。腾讯通服务器安装在ISA防火墙上。
我先通过腾讯通服务端的PID来查找它侦听的端口,下图是腾讯通服务端的PID:
使用Netstat找出的端口如下,从下图看,腾讯通开放了TCP 8000和UDP 8010端口,如果你只允许这两个端口,你可以在客户端登陆和发送文本信息,但是,传送文件、网络会议、音频传输是不行的。所以,我相信它肯定还开放有其他的端口。
此时,就必须使用Sniffer进行分析了。好的Sniffer软件很多,你可以看看这个文章“Sniffer类经典软件介绍”,其中的Iris、Sniffer Pro、WildPackets EtherPeek NX和Observer这四个可以说是最好的了,解码功能非常强大,如果你嫌麻烦可以使用CommonView。不过,我现在关心更多的是数据包的流向,而不是数据包的内容,所以我使用另外一个短小精悍的Sniffer-TCPView的加强版TCPView Pro,它提供了数据包流向的监视,只是没有解码功能而已。
首先,我在一个内部网络的客户上安装腾讯通客户端,然后允许了此客户到ISA服务器的所有协议(仅供试验,已经确保此客户的安全性),在客户机上运行TCPView Pro监视腾讯通客户端,然后运行腾讯通客户端连接位于ISA防火墙(192.168.0.1)上的服务器,连接成功后使用腾讯通的各个功能(发送消息、传送文件、网络会议、音频传输,网上协作功能由于我下载的版本限制而无法进行测试)。
获得的数据包如下(由于数据包过多,下图经过处理):
其中Remote Address栏是连接的远端地址,192.168.0.1就是腾讯通服务器的IP地址。可以看出,腾讯通使用了以下端口:
- UDP 6000;
- TCP 8000;
- TCP 8002;
- UDP 8010;
- TCP 8100;
不过,在多个客户端进行连接时,需要占用多个端口,所以你在建立协议定义时,必须考虑端口的冗余。
后通过腾讯客服确认,RTX提供服务的主要端口如下:
- TCP8002—8100:服务器会选用其中一个端口来显示会议室列表,如果TCP8002被占用,则尝试TCP8003,依次顺延。例如:您映射的是TCP8002端口,Direction是Inbound;
- TCP 8100—8500:用于网络会议室,一个会议占用一个Port,顺延分配。Direction也是Inbound;
- UDP 6000-6100:用于网络会议中的视频和音频通信,若有多个会议,则顺延分配,Direction是Receive Send;
- TCP 8101:通过此端口,其他PC可以用远程管理器登录服务器端。Direction是Inbound;
现在我们就可以建立发布规则了;由于腾讯通位于ISA防火墙上,你也可以通过访问规则来允许访问腾讯通服务端。但是我建议你对外发布服务时,请尽量使用发布规则,而不管位于ISA防火墙还是内部网络。除了Web发布需要建立Web侦听器外,对于其他服务发布,你不需要占用任何端口,所以也不需要担心端口占用的问题。ISA的底层驱动会在应用程序接收到数据包之前对数据包进行处理,让发布的服务正常工作。
将原来的允许腾讯通客户无限制访问本地主机的规则删除,然后建立发布规则。建立发布规则的过程我就不多说了,建立的协议定义和服务器发布规则如下:
在内部客户端上进行测试,功能使用一切正常。如下是网络会议、音频传输和文件传送等功能。
后记:希望大家能够从我上面的文章中,学习到分析协议的技巧。可能你使用的软件是你特有的,别人不一定会有,也就不能帮你分析,此时就只有靠你自己了。分析所使用的TCPView Pro在Ftp pub中有下载,访问地址见
http://www.isacn.org/bbs/index.php?showtopic=6594
需要先以正式会员身份登陆论坛,否则不能看到。
,