在介紹完 Squid 的正向、反向和通透式三種設定方式後。來介紹一些比較常用到的進階設定,可依個人需求在設定相關參數。
先介紹一些比較常用的進階設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
acl 設定格式 範例 : acl baddomain1 dstdomain -i www.test.com acl 列表名稱 列表類型 [-i] 列表值 列表名稱 : 主要用於區分 Suqid 設定列表。在設定列表名稱上是不能重覆的。雖然說此名稱可隨意定義。但為了日後管理方便,會建議盡量設定有意義的名稱。 列表類型 : 用於給 Squid 辨別所屬類型。 Squid 所支持的類別有很多種,例如像是 IP 位置、主機名稱、MAC 值、用戶/密碼認證、網域名稱、網域後綴、文件類型、時間區間、port 號和 URL 等種類。 [-i] : 忽略數值的大小寫( Squid 是有大小寫區分的)。 列表值 : 針對不同的類型,在數值的表示上是有差異的。例如,對於類型為 src 或 dst ,列表值的內容是某台主機的 IP 位置或子網域位置;對於類型為 time ,列表值的內容是時間;對於類型為 srcdomain 和 dstdomain ,列表值的內容是 DNS 域名。 其它說明 : src : IP 地址( Client 的 IP ) dst : 目標 IP 地址( Server 的 IP ) srcdomain : 名稱( Client 所屬的網域名稱) dstdomain : 目標名稱( Server 所屬的網域名稱) url_regex URL : URL 正規表達式 (字符串部分) urlpath_regex : URL-path 略去協議和主機名的 URL 正規表達式 proxy_auth : 通過外部程序進行用戶認證 maxconn : 單一 IP 的最大連接數 time : 時間段,語法為:[星期] [時間段]。 [星期]:可以使用這些關鍵字 M ( Monday 星期一)、 T ( Tuesday 星期二)、W ( Wednesday 星期三)、H ( Thursday 星期四)、F ( Friday 星期五)、A ( Saturday 星期六)和 S ( Sunday 星期天) [時間段]:可以表示為 10:00-20:00 http_access 基本格式 http_access [allow | deny] 訪問控制列表名稱 [allow | deny]:定義允許( allow )或禁止( deny )訪問控制列表定義的內容。 訪問控制列表名稱:需要 http_access 控制的 ACL 名稱。 |
範例1 :基本範例 :
禁止某IP或某範圍內IP的client不能使用Squid
1 2 3 4 5 6 7 8 |
[root@localhost ~]# vim /etc/squid/squid.conf #禁止特定IP acl rejectloginip src 192.168.100.100 http_access deny rejectloginip #禁止某範圍內的IP acl rejectloginiprange src 192.168.100.0/255.255.255.0 http_access deny rejectloginiprange |
範例2 :
禁止Client訪問某些網站、某ip或網域名稱含某關鍵字的URL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@localhost ~]# vim /etc/squid/squid.conf #禁止client訪問ip為220.133.192.160的網站 acl rejectwebip dst 220.133.192.160 http_access deny rejectwebip #禁止clinet 訪問特定網域www.faq-test.tk acl rejectdomain dstdomain -i www.faq-test.tk http_access deny rejectdomain #禁止 clinet 訪問網域內包涵有faq-test.tk網址的網站 acl rejecturl url_regex -i .faq-test.tk http_access deny rejecturl #禁止 client 訪問網域名稱含有sex和 shopping關鍵字的URL acl rejecturl2 url_regex -i sex shopping http_access deny rejecturl2 |
範例3 :
限制client端ip為192.168.100.123的最大連線數為10或是某網域內最大連線數為50
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# vim /etc/squid/squid.conf #限制client端ip為192.168.100.123的最大連線數為10 acl clientip src 192.168.100.123 acl OverConnLimit maxconn 10 http_access deny clientip OverConnLimit #限制某網域內最大連線數為50 acl clientiprange src 192.168.100.0/255.255.255.0 acl conn50 maxconn 50 http_access deny clientiprange conn50 |
範例4 :
禁止某ip client端的能上網時間或是某網段client端的能上網時間
簡單來說就是被設定在這個時間範圍內的IP是不能上網的
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# vim /etc/squid/squid.conf #禁止ip:192.168.100.250上網的時間為周一到周五的9:00到18:00 acl clientip1 src 192.168.100.250 acl times time MTWHF 9:00-18:00 http_access deny clientip1 times #禁止某網段上網的時間為周一到周五的9:00到18:00 acl clientip2 src 192.168.100.0/255.255.255.0 acl times1 time MTWHF 9:00-18:00 http_access deny clientip2 times1 |
範例5 :
禁止Client端下載*.mp3、*.exe、*.zip和*.rar類型的檔案
類型種類大概有 : .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
1 2 3 |
[root@localhost ~]# vim /etc/squid/squid.conf acl rejectfile urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ http_access deny rejectfile |
範例6 :
設置不被暫存的目錄或是檔案類型
1 2 3 |
[root@localhost ~]# vim /etc/squid/squid.conf acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe cache deny QUERY |
範例7 :
防止百度機器人一直搜尋伺服器
1 2 3 |
[root@localhost ~]# vim /etc/squid/squid.conf acl AntiBaidu req_header User-Agent Baiduspider http_access deny AntiBaidu |
評論
此文章尚無評論。