使用ISA Server 2004禁止P2P软件(图)
现在P2P软件非常的流行,而且提供了多样化的登录方式,这给我们做网管的想封锁它的时候,带来很多不方便。下面我以国内常用的QQ和MSN来给大家介绍一下,利用 ISA Server 2004的增强的HTTP协议检查功能,来完全的禁止它们。
既然要封锁它们,首先要对QQ和MSN使用的协议来进行分析,知己知彼,才能在封锁与反封锁的较量中获胜。
首先介绍MSN。MSN使用TCP 1863端口来登录的。封锁这个端口就可以很好的禁止MSN登录,但是在使用HTTP代理的情况下,MSN可以很轻松的突破1863端口的限制。
再说说QQ。QQ的登录过程是这样的,在默认情况下,QQ先向
服务器 群的8000端口发送UDP数据包,从 服务器 群的回复中选择一个最快的作为登录 服务器 ;如果没有 服务器 回复,则使用TCP 80/443端口来进行连接。因为他可以使用HTTP直接连接,而一般是不能封锁HTTP协议的,所以,封锁QQ的最好办法是封锁它的 服务器 IP。但是如果使用HTTP代理登录,那么还是可以上QQ的。
QQ的
服务器 的地址如下, 最后更新于2004年6月1日。不过tencent随时可能增加 服务器 ,但是应对政策很简单,如果能上QQ,你在QQ的系统属性里面看看当前登录 服务器 的IP,然后添加进来就是了。
QQ
服务器 分为三类:
1、UDP 8000端口类18个:速度最快,
服务器 最多。
QQ上线会向这些
服务器 发送UDP数据包,选择回复速度最快的一个作为连接 服务器
61.144.238.145
61.144.238.146
61.144.238.156
61.144.238.150
202.104.129.251
202.104.129.254
202.104.129.252
202.104.129.253
61.141.194.203
202.96.170.166
218.18.95.221
219.133.45.15
61.141.194.200
61.141.194.224
202.96.170.164
202.96.170.163
219.133.40.216
218.18.95.209
2、TCP HTTP连接
服务器 5个,使用HTTP 80 和443端口连接这4个 服务器 名字均以tcpconn开头,域后缀是tencent.com,域名与IP对应为
tcpconn tcpconn3 218.17.209.23
tcpconn2 tcpconn4 218.18.95.153
61.141.194.227
218.18.95.171 218.18.95.221
3、会员VIP登陆
服务器 ,使用HTTP 443安全连接 服务器 IP 218.17.209.42
在过去的时候,对于使用HTTP代理来上QQ和MSN的情况,没有什么办法。不过现在不一样了,
ISA Server 2004增强的HTTP协议状态检查,可以很完美的封锁使用HTTP代理上QQ和MSN的情况。
以下首先给大家介绍一下封锁利用HTTP代理上Windows Messanger的情况,译自Greg Mulholland的“Preventing P2P and Instant Messaging programs from hijacking your network with
ISA 2004 Firewalls”,不过原文比较复杂,我简化了一下。
Greg Mulholland通过设置防火墙策略,只允许这个客户只能使用HTTP协议,所以,Windows Messenger不能登录。
clip_p_w_picpath002
但是这个客户使用Windows Messenger的HTTP代理,
clip_p_w_picpath003
于是就可以登录了。
clip_p_w_picpath004
Greg Mulholland通过在HTTP协议中配置签名,
clip_p_w_picpath006
(注意,下图是重点)Windows Messenger连接HTTP代理服务的时候,发送的数据包的请求头中的User-Agent字段,关键字为MSMSGS,
clip_p_w_picpath008
通过勾选这个定义项, ISA Server 2004会阻止具有这个特性的HTTP数据包。
clip_p_w_picpath009
于是,这个客户不能登录了。
clip_p_w_picpath011
QQ通过HTTP代理服务连接时,发送的数据包同样具有关键字特性,我通过sniffer分析了一下,注意看下图,这是我监听到的数据包的一部分,这个地方,显示了QQ通过HTTP代理服务连接到的QQ 服务器 URL。
clip_p_w_picpath012
同样的,我做了一个完整的测试:
首先我在
ISA Server 2004中设置防火墙策略,只允许192.168.0.41访问外部的HTTP和HTTPS服务。
clip_p_w_picpath014
这时QQ不能通过UDP方式来连接了,于是我设置QQ的HTTP代理,
clip_p_w_picpath015
QQ通过 ISA Server 2004的HTTP代理服务成功登录。
clip_p_w_picpath016
现在我来配置HTTP策略,
clip_p_w_picpath018
在“Signatures”页,我添加了一个名为QQ的签名项,指定在Request URL里面搜索“tencent.com”,如果匹配则 ISA Server 2004会丢弃该数据包。
clip_p_w_picpath020
此时,QQ已经不能通过代理 服务器 登录了。
clip_p_w_picpath021
需要注意的是,只有QQ通过HTTP代理 服务器 登录的时候,才会在数据包内包含“Request URL”,如果是QQ直接通过HTTP协议连接 服务器 ,那么是不会包含这个字段的,所以,这个HTTP签名项只能针对QQ使用HTTP代理登录时使用。不过使用这个HTTP过滤,结合封锁QQ的 服务器 IP,可以很完美的封锁掉QQ。
以下链接是从微软网站上找到的,常用的网络应用程序的签名项,不过,新版本的软件可能会修改这个签名项。