在一个运用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