squid 的ACL訪問控制

ACL訪問控制

ACL是squid提供的一個強大的控制機制,通過合理的設置ACL(Access Control List)並進行限制,可以針對源地址、目標地址、訪問的URL 路徑、訪問的時間等各種條件進行過濾。通過allow 和deny 進行控制。

在squid中設置ACL分爲兩步
1、定義ACL
2、調用ACL

定義ACL格式:
格式: acl 列表名稱 列表類型 列表內容……
列表名稱:自己設定

列表類型:
src              源地址,
dst              目標地址,

port            目標端口
dstdomain  目標域名
time            訪問時間
maxconn     最大併發量
url_regex    目標URL
urlpath_regex  整個目標URL 路徑

列表內容:要控制的具體對象,可以是多個值,以空格分號,“或”的關係
例如:
定義:
來自200網段和100網段的acl,(這裏只是定義還沒有調用不能做到範文控制,允許或者拒絕這兩個網段使用squid代理要在調用的時候設置通過allow、deny來決定)
acl IP src 192.168.100.0/24 192.168.200.0/24

時間的ACL定義:
acl work time 8:30-17:30

目標或者源地址等的控制也可以是一個文件。把ip寫在這個文件裏面然後調用
acl IPBLOCK dst “/etc/squid/ipblock.list”

URL路徑的定義可以是具體的也可以使用通配符來限制範圍的url
acl MP3 urlpath_regex .*\.mp3$

通過上面大概知道的ACL定義的方法了吧!現在只是定義了但是並不能啓動控制的效果,還需要調用這些定義的ACL來實現訪問控制。
格式:
格式:
http_access allow 或deny 列表名…….
例如以上面幾個ACL爲例
允許100網段200網段在8:30-17:30使用squid進行上網,且不能聽歌(MP3結尾的url路徑拒絕
http_access deny MP3
http_access allow IP work

注意些的時候要注意邏輯思維,ACL匹配時從上往下匹配,匹配到就不在往下繼續,以此爲例如果先寫允許的,那麼squid一匹配到100網段或者200網段就直接允許了不在往下匹配,那麼禁止MP3的url路徑講不在匹配此條就會失效。

沒有設置任何規則時,squid 服務將拒絕客戶端的請求。有規則但是找不到匹配項時,squid 將採用與最後一條規則相反的權限,即如果最後一條規則是allow,就會拒絕客戶端的請求,否則允許該請求。

定義的ACL 要全部用上否則啓動時會報錯,如果不用的話可以先註銷掉。




發佈了38 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章