(三) 禁用通过Socks5代理登录
对于socks5代理来说,可以分两种情况来讨论:
1, socks5代理服务器使用常用的1080(或1813、3128)端口
对于这种情况,我们可以参照(一)部分禁用UDP 8000端口的方法来禁用UDP 1080、1813、3128端口;
2, Socks5代理服务器不是使用的周知端口1080、1813或3128
对于这种情况是较难控制的,但如果ISA server本身策略原则得当,即只为需要的协议创建了允许规则(比如只创建了允许访问外部的53和80端口),常规方式下QQ仍然不能登录,除非它使用开放的端口与外部通信(比如53或80等),下面将专门讲这种情况。
(四) 禁用HTTP代理登录
这是很多ISA Server 2000管理员碰到的一个难题,因为ISA Server 2000本身就有一个Web代理服务,客户端可以把QQ的HTTP代理服务器设为ISA Server 2000的地址,端口设为8080,这样就很容易地用上QQ了,但是只要你按上面(二)部分禁用TCP登录的方式进行了操作,那么QQ是无法通过这个HTTP代理的,因为这种方式的登录最终也是在图3中的服务器上进行登录,当QQ把数据包发送到ISA Server 2000代理服务时,代理服务会会检查到目标地址是图3中的服务器,所以访问会被禁止。但如果QQ不通过ISA Server 2000的代理而使用外面的代理情况会怎么样呢?这就与你建立的协议规则有关了,在这里仍然强调我们只应该为需要使用的协议创建规则,这样那些没有允许规则的协议就不能外出,比如通常我们不会创建允许TCP 8080端口开放的协议规则,这样QQ就不能使用那些端口为8080的HTTP代理服务器,但对QQ使用端口为80的代理服务器就不好管了,毕竟我们不可能不允许对80端口的访问。难道对于这种情况就没法管了,非也,因为使用HTTP代理服务的数据包有一个很明显的特征就是通常都会使用connect方法,这样只要禁止使用connect方法的HTTP协议数据包通过就行了,要检查HTTP数据包,此时就需要应用程序过滤器来工作了,但在ISA server 2000中,没有内置的Web filter,也就没有能够检查HTTP报头的Web filter了,不过所幸的是在ISA Server 2004中已经有了相应的Web filter,你可以配置Block掉使用connect方法的HTTP数据包,方法是:
1,右击相应规则,选择“configure HTTP”;
2,切换到“Methods”标签,选择“Block specified methods(allow all others)”项,然后点击“Add”按钮;
3,在窗口的“method”中输入connect即可。如图6。

(五)即使你禁止了上面QQ所用的一切登录方式,但是你所做的仍然可能只是竹篮打水一场空。因为客户机可以安装这样一种程序,这种程序本身可以作为一个Socks5服务器(此时需要把QQ的登录方式设置为使用此socks5代理服务器),并且它能够把socks数据包转化成http数据包,然后把转化后的数据包发送到外部一个开放80端口的HTTP服务器上,并在这个服务器上把收到的数据包还原成socks数据包,然后转发至目标服务器(这里是QQ的登录服务器),目标服务器则把响应信息通过原路返回,由于外出的数据包是标准的HTTP数据包(由于不是HTTP代理,所以没有connect语句),所以ISA是允许它外出的。对于这种登录方式,可以采取下面的方法进行处理。
1,禁止对相应HTTP服务器的访问
由于这种程序需要在外部提供额外的接收服务器,导致程序运行的成本较高,所以这种程序很少,或者都是收费服务,所以这种程序一出来,就会很快流行,当然也就“出名”了,正所谓人怕出名猪怕壮,枪打出头鸟,此时只要封掉这些程序使用的外部服务器就可以了。比如国内现在就有一个叫“通通通”的程序提供这种免费服务,它的原理就与上面所讲一样,通过它几乎可以让一切内网网络程序突破防火墙的限制,要禁止“通通通”,只要封掉其提供服务的HTTP服务器就行了,这里是service.tongtongtong.com、wt.tongtongtong.com和dx.tongtongtong.com三个服务器,禁止方法参照(二)部分。补充:以它们的IP为目标地址集。
2,扫描内网中的socks服务器
采用第一种方法不可避免地会漏掉一些服务提供者,所以可以采用扫描内网中的1080、1813、3128端口的方法来发现使用socks5服务器的人,常用的端口扫描工具有superscan,但是如果使用者更改了程序的服务端口这种方法又难行通了,并且这种工作还必须经常做,如有必要,可以把它列为一天的工作内容之一。
3,上面都是治标不治本的方法,最根本的方法应该对HTTP数据包进行内容检查,因为这种HTTP数据包中一定会有与QQ相关的数据在里面,比如通常都会有相关登录服务器的数据,只要检查到有这些内容,就可以block掉,不过这种内容检查的功能在ISA2000中是没有内置的,在ISA 2004中集成了这项功能,它可以禁止含有匹配字符的HTTP内容通过,比如禁止掉含有tencent.com的HTTP内容,这些内容可以位于request URL、request headers、request body、response headers和response body区域中,但这种方法有些副作用,最明显的就是会影响上网的响应速度,但它仍不失为一种较好的方法,不过如果http数据包是加密的,即HTTPS数据包,上述方法也将失效。这种方法在上面图6窗口的signatures标签中进行设置,如图7。

上面从防火墙的角度讨论了怎样来禁止内网用户使用QQ,其实我们还可以从另外一个方面来考虑,就是让客户端不能安装QQ,这样不就禁止QQ了吗?如果你的网络是以域的方式组织的,并且客户端用户只有users组的权限(默认情况下应该这样),文件系统也是NTFS格式,这样客户端是没有安装软件的权限的,也就自然不存在使用QQ的问题了。另外本文虽然是对QQ的讨论,但禁止原理对其他即时通信软件或网络游戏同样适用。(完)