在“使用ISA Server 2004禁止P2P软件”一文中,Greg Mulholland只是禁止了Windows messenger,而因为我没有使用msn,所以只是研究了qq的,msn只是依照Greg Mulholland,然后使用微软提供的标志项(Greg Mulholland原文即如此,我只是根据中国的国情添加了QQ的部分)
来禁止。不过flag在论坛里面说使用这篇文章里面介绍的方法不能禁止MSN, 于是下了个MSN,彻底研究了一下。
我使用的是“All Open”策略,即允许所有内部客户访问外部的所有服务。所以,安装好MSN后,登录是可以的,注意看下图,是使用的NAT连接登录的。
然后在“All Open”策略前加了一条禁止该客户使用msn的策略,规则中协议使用的是ISA Server
2004自带的MSN Messenger(TCP 1863),如图:
msn也很聪明,自动使用我的HTTP代理来登录:
注意看,是使用的HTTP代理服务器登录的。此时是通过的“All Open”策略来的。
我现在配置“All Open”策略的HTTP过滤:
在配置HTTP策略中标志页,我添加了User-Agent:MSN Messenger,
但是没有作用,MSN Messenger一样可以登录。
(后来据shenxu分析,不能阻拦的朋友恐怕都是直接从网页上拷贝下来的关键字直接拷贝到空栏里面的吧,我直接拷贝,结果拦截失败,仔细看,从微软网页上拷贝下来的关键字带了一个回车符,就是这个回车符导致了拦截失败,用back space键删到r后面就可以成功拦截了。我就是从网页上直接复制下来的:()
于是我只有使用sniffer来分析了...
抓到一些数据包,其中有个:
如图,确实在User-Agent里面有MSN Messenger,但是不知道为什么,ISA Server 2004不能禁止MSN。
不过可以看见MSN通过代理连接的服务器URL,呵呵,和封锁QQ一样的办法,禁止这个URL。
我添加了这个标志:
现在MSN真的不能上了...
另外需要注意的是,MSN登录会使用HTTPS来进行身份验证,虽然在监控中没有发现它使用TCP 443端口。所以你可以通过禁止HTTPS来禁止MSN,不过这样有点得不偿失。