Squid
Squid 訪問控制
我們應該對Squid代理服務從理論上有了一定的認識,接下來通過應用實例的學習,希望能夠使大家對Squid代理服務有一個更為深入的理解。在學習實例之前有必要強調一下,Squid訪問控制列表是順序讀取的,應將配置文件squid.conf中的以下兩個規則始終放置在acl語句的最后,否則這兩條規則會覆蓋其他的acl語句。
acl all src 0.0.0.0/0.0.0.0 |
同樣的道理,當配置文件中配置多條訪問控制規則時,必須注意其順序,避免規則相互覆蓋或屏蔽。另外,每次修改完配置文件后,若想使修改后的規則生效就必須重新載入配置文件,即運行命令"/etc/rc.d/init.d/squid reload"。
【實例一】禁止IP地址為192.168.1.102的客戶機上網。
我們可以定義如下規則實現上述要求:
acl badclientip src 192.168.1.102 |
該規則定義了一條名為badclientip的acl,acl類型為src源IP地址方式,列表值為192.168.1.102,然后使用http_access參數禁止badclientip規則。也就是在IP地址為192.168.1.102的客戶機通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,該終端客戶訪問Internet資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息,如圖16-31所示。
(點擊查看大圖)圖16-31 拒絕訪問的錯誤提示信息 |
【實例二】禁止IP地址屬于192.168.1.0這個子網的所有客戶機上網。
我們可以定義如下規則實現上述要求:
acl badclientsubnet src 192.168.1.0/24 |
該規則定義了一條名為badclientsubnet的acl,acl類型為src源IP地址方式,列表值為192.168.1.0/24,然后使用http_access參數禁止badclientsubnet規則。也就是在IP地址為192.168.1.0子網的客戶機通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,當前定義子網的終端客戶訪問Internet資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。
【實例三】禁止所有終端用戶訪問IP地址為64.233.189.99(www.google.com)的網站。
我們可以定義如下規則實現上述要求:
acl badserverip dst 64.233.189.99 |
該規則定義了一條名為badserverip的acl,acl類型為dst目標IP地址方式,列表值為64.233.189.99,然后使用http_access參數禁止badserverip規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,當前所有終端客戶訪問IP地址為64.233.189.99的服務器資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。
【實例四】禁止所有終端用戶訪問域名為www.google.com的網站。
我們可以定義如下規則實現上述要求:
acl baddomain dstdomain -i www.google.com |
該規則定義了一條名為baddomain的acl,acl類型為dstdomain目標域名方式,列表值為www.google.com,然后使用http_access參數禁止baddomain規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,當前所有終端客戶訪問域名為www.google.com的服務器的Web資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。但需要大家注意的是,這個限制規則僅對google.com域的WWW服務進行了限制,而對于Mail服務等并未限制。
16.6 訪問控制應用實例(2)
【實例五】禁止所有終端用戶訪問域名包含為google.com的網站。
我們可以定義如下規則實現上述要求:
acl badurl url_regex -i google.com |
該規則定義了一條名為badurl的acl,acl類型為url_regex URL規則表達式匹配方式,列表值為google.com,然后使用http_access參數禁止badurl規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,當前所有終端客戶訪問服務器的URL中含有google.com的所有資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。例如,www.abc.com/google/test.index、www.google.com、mail.google.com等URL均被攔截。
【實例六】限制IP地址為192.168.1.102的客戶機并發連接的最大連接數為5。
我們可以定義如下規則實現上述要求:
acl clientip src 192.168.1.102 |
上述規則定義了一條名為clientip的acl,該acl類型為src源地址方式,列表值為192.168.1.102;還定義了一條名為clientmaxconn的acl,該acl類型為maxconn單一IP的最大連接數方式,列表值為5,然后使用http_access參數禁止clientip、clientmaxconn規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,終端用戶通過IP地址為192.168.1.102的客戶機同時訪問Internet資源的線程數不能超過5。這樣可以防止特定客戶開太多線程而占用服務器資源和帶寬。
【實例七】禁止客戶機IP地址在192.168.2.0子網的所有終端客戶在星期一到星期五的9:00到18:00訪問Internet資源。
我們可以定義如下幾條規則實現上述要求:
acl clientnet src 192.168.2.0/24 |
上述規則定義了一條名為clientnet的acl,該acl類型為src源地址方式,列表值為192.168.2.0/24;還定義了一條名為worktime的acl,該acl類型為time時間段方式,列表值為MTWHF 9:00-18:00,然后使用http_access參數禁止clientnet、worktime規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,終端用戶通過IP地址屬于192.168.2.0網段的所有客戶機不能在星期一到星期五的9:00到18:00期間訪問Internet資源。
【實例八】禁止終端用戶在任何客戶機上下載文件擴展名為mp3、exe、zip和rar類型的文件。
我們可以定義如下規則實現上述要求:
acl badfile urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ |
該規則定義了一條名為badfile的acl,該acl類型為urlpath_regex略去協議和主機名的URL規則表達式匹配方式,列表值為\.mp3$ \.exe$ \.zip$ \.rar$;同時使用-i參數是為了忽略列表值大小寫的檢查,然后使用http_access參數禁止badfile規則。也就是在終端用戶通過Squid代理服務上網的模式下,由于Squid服務器增加了如上規則,所有終端客戶訪問服務器的URL中以mp3、exe、zip和rar結尾的所有資源的請求將會被攔截,終端客戶的Web瀏覽器中會顯示拒絕訪問的錯誤提示信息。例如,http://www.abc.com/google/test.mp3、http://www.cqit.edu.cn/cs/123.zip、http://www.cqit.edu.cn/cs/siyanzhidao. rar等URL均被攔截。
轉載于:https://blog.51cto.com/tingting1/1435724
總結
- 上一篇: 矿区自动驾驶:异军突起的新赛道
- 下一篇: 家用路由器被攻击记