ACL访问控制
/etc/squid/squid.conf
定义语法:
acl aclname acltype string
acl aclname acltype "file"
src 定义来源地址 (即用户的客户机IP地址);
acl aclname src ip-address/netmask
acl aclname src addr1-addr2/netmask
dst定义目标地址 (即用户请求的网站IP地址):
acl aclname dst ip-address/netmask
port用于指定访问端口
acl aclname port 80 1024
acl aclname port 0-1024
url-regex 用于限制网址中的关键词:
acl aclname url_regex [-i] pattern
proto 用于定义要代理的协议:
acl aclname proto HTTP FTP
method 用于制定请求的方法:
acl aclname method GET POST
访问控制列表有多个规则条目组成,根据指定的条件来允许或限制访问请求,匹配顺序会由上至下,一旦匹配则立即结束,通常会在控制列表的最下面写上 " deny all " 或者 " allow all " 来避免安全隐患。
实战操作:
仅允许192.168.0.10的主机使用本笃 Squid 服务 ,拒绝其余主机
acl client src 192.168.0.10
http_access allow client
http_access deny all
拒绝客户机使用代理服务器访问带有关键词 " linux " 的网站
acl deny_keyword url_regex -i linux
http_access deny deny_keyword
拒绝客户机使用代理服务器访问 " 京东 " 网站
acl deny_url url_regex https://www.jd.com
http_access deny deny_url
禁止客户机代理服务器下载 MP3 与 rar 为后缀的文件
acl badfile urlpath_regex -i \.mp3$ \.rar$
http_access deny badfile