现在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不能登录。
但是这个客户使用Windows Messenger的HTTP代理,
于是就可以登录了。
Greg Mulholland通过在HTTP协议中配置签名,
(注意,下图是重点)Windows Messenger连接HTTP代理服务的时候,发送的数据包的请求头中的User-Agent字段,关键字为MSMSGS,
通过勾选这个定义项,ISA Server 2004会阻止具有这个特性的HTTP数据包。
于是,这个客户不能登录了。
QQ通过HTTP代理服务连接时,发送的数据包同样具有关键字特性,我通过sniffer分析了一下,注意看下图,这是我监听到的数据包的一部分,这个地方,显示了QQ通过HTTP代理服务连接到的QQ服务器URL。
同样的,我做了一个完整的测试:
首先我在ISA Server 2004中设置防火墙策略,只允许192.168.0.41访问外部的HTTP和HTTPS服务。
这时QQ不能通过UDP方式来连接了,于是我设置QQ的HTTP代理,
QQ通过ISA Server 2004的HTTP代理服务成功登录。
现在我来配置HTTP策略,
在“Signatures”页,我添加了一个名为QQ的签名项,指定在Request URL里面搜索“tencent.com”,如果匹配则ISA Server 2004会丢弃该数据包。
此时,QQ已经不能通过代理服务器登录了。
需要注意的是,只有QQ通过HTTP代理服务器登录的时候,才会在数据包内包含“Request URL”,如果是QQ直接通过HTTP协议连接服务器,那么是不会包含这个字段的,所以,这个HTTP签名项只能针对QQ使用HTTP代理登录时使用。不过使用这个HTTP过滤,结合封锁QQ的服务器IP,可以很完美的封锁掉QQ。
以下链接是从微软网站上找到的,常用的网络应用程序的签名项,不过,新版本的软件可能会修改这个签名项。