在配置文章squid.conf中,ACL訪問控制經過如下兩個步驟來實現:
1:使用acl配置項定義須要控制的條件
2:經過http_access 配置對已定義的列表作出"容許" 或者 "拒絕" 訪問的控制web
定義控制列表: acl 列表名 列表類型 列表內容 容許訪問權限: http_access allow 列表名 拒絕訪問權限: http_access deny 列表名
src :源IP地址、網段、IP範圍vim
acl zkc1 src 192.168.100.50/32 http_access deny zkc1 //禁止zkc列表的IP進行訪問
dst :目標IP、網段、主機名windows
acl zkc2 dst 192.168.100.11/32 http_access deny zkc2 //禁止訪問zkc2列表的IP
maxconn :每一個客戶機的併發鏈接數後端
acl MC20 maxconn 20 // 最大併發鏈接 http_access deny MC20 //客戶機的併發鏈接超過20將被阻止
url_regex :目標資源的URL地址 -i:表示忽略大小寫緩存
acl BURL url_regex -i ^rtsp:// ^emule:// //以rtsp:// 等 開頭的URL http_access deny BURL //拒絕列表內URL
urlpath_regex :目標資源的整個URL路徑 -i:表示忽略大小寫服務器
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ //以mp三、mp四、rmvb結尾的URL路徑 http_access deny PURL //禁止客戶機下載mp三、mp4等文件
M—Monday 、T—Tuseday、W—Wednesday、H—Thursday、F—Friday、A—Saturday、S—Sunday併發
acl work time MTWHF 08:30-17:30 //時間爲週一至週五 8點30到17點30 http_access allow work //容許客戶機在工做時間上網
port : 目標端口dom
acl ABC port 443 //目標端口443 http_access deny ABC //禁止訪問443端口
dstdomain : 目標域,匹配域內的全部站點ide
acl CBA dstdomain .qq.com //以.qq.com結尾的網站 http_access deny CBA //禁止訪問 .qq.com 結尾的網站
當須要限制的同一類對象較多時,能夠使用獨立的文件夾來存放,在acl配置行指出對應文件位置。測試
# mkdir /etc/squid # vim /etc/squid/dest.list 192.168.100.11 192.168.100.12 192.168.100.13 #目標web # vim /etc/squid.conf acl destionhost dst "/etc/squid/dest.list" http_access deny destionhost #拒絕列表(注意置頂)
客戶機上須要作域名解析代理服務器的IP 爲www.yun.com
# vim /etc/squid.conf http_port 192.168.100.10:80 accel vhost vport (// 本地地址 accel:加速代理 虛擬主機 虛擬端口) cache_peer 192.168.100.11 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.100.12 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 (//指定負向服務器 ICP端口不開啓設爲0 不進行查詢 指向真實服務器 輪詢 最大鏈接30 權重1 名字) cache_peer_domain web1 web2 www.yun.com (//指定web1,web2的域名爲www.yun.com ) # service squid restart //重啓服務