Squid控制MSN Messenger在公司的使用
扫描二维码
随时随地手机看文章
在一个使用ADSL或专线通过代理访问Internet的网络中,为了防止滥用网络资源,我们会在代理服务器上限制某些类型的数据访问,如icq, oicq, msn messenger, yahoo messenger等. 而Linux中的squid可以很好地让管理员控制这些应用的使用, 可以禁止所有人通过该服务器使用该服务,也可以开放该服务给部分需要的人使用.但squid的相关文档中都没有此类的信息. 这里以MSN Messenger为例,讲述如何只开放该服务给部分人(IP)使用.
软件:
squid 2.4.statble4(关于squid的安装请参考其使用说明)
Squid的默认配置是允许MSN Messenger通过使用该代理访问Internet.如果我们不做相应的改动,那么你就无法控制非授权用户使用MSN Messenger.
首先,我们在access.log文件中我们可以看到在登陆MSN Messenger时,返回的数据类型是application/x-msn-messenger。
1023959017.550 685 192.168.16.16 TCP_MISS/200 319 POST http://gateway.messenger.hotmail.com/gateway/gateway.dll? - DIRECT/64.4.13.170 application/x-msn-messenger
1023959018.741 1190 192.168.16.16 TCP_MISS/200 294 POST http://64.4.13.172/gateway/gateway.dll? - DIRECT/64.4.13.172 application/x-msn-messenger
那么,如果我们将application/x-msn- messenger拒绝,就可以将MSN Messenger阻挡在外了。 Squid在2.4版以后增加了对mime类型数据的支持,因此如果你的squid还是2.4以前的版本,那就只有升级你的squid了。
1,首先,我们来定义一个msn messenger的req_mime_type:
acl msnmessenger req_mime_type ^application/x-msn-messenger$
注意在application/x-msn-messenger的前后各有一个符号“^”“$”
2,然后我们在允许其它类别的数据通过前拒绝数据类型是msn messenge的请求。现在网内所有机器都不可以通过squid代理来使用msn messenger了。
http_access deny msnmessenger
3,但现在我们还不能允许指定的IP通过此代理使用MSN Messenger. 假设我们允许IP192.168.16.16可以该代理使用msn messenger,先定义所有可以使用msn messenger的IP,
acl msn_allow src 192.168.16.16/32
4,然后在http_access deny msnmessenger前加一句:
http_access allow msn_allow msnmessenger
注意: 这一句分为四部分:
1 http_access
2 allow
3 msn_allow
4 msnmessenger
http_access allow 是http_access的固定语法,而后面的msn_allow是在第三步中定义过的,msnmessenger是我们在第一步中定义的。如果想增加一些ip使用msn messenger,你可以在第三步的后面直接加上符合规定的ip地址即可。如192.168.10.13/32
如我的配置文件的部分内容如下:
acl msnmessenger req_mime_type ^application/x-msn-messenger$
acl msn_allow src 192.168.16.16/32
http_access deny manager !localhost
http_access deny !safe_ports
http_access deny CONNECT !SSL_ports
http_access deny Dangerous_ports
http_access deny Undesirable-Site
http_access deny Undesirable-Site1
http_access allow msn_allow msnmessenger
http_access deny msnmessenger