学习笔记,以备后用!
Squid提供了强大的控制机制,通过合理设置ACL(Access Control Lists,访问控制列表),可以针对源地址、目标地址、URL路径、访问时间等各种条件进行控制。
ACL访问控制通过以下两个步骤来实现:
- 使用acl配置项定义控制条件;
- 通过http_access配置项对已定义的条件进行按需控制,如“允许”或“拒绝”。
每一行acl配置定义一条访问控制列表,语法格式如下:
acl 列表名称 列表类型 列表内容
设置acl访问权限,需放在对应的acl配置行之后:
http_access allow 列表名
http_access deny 列表名
- 禁止下载MP3,MP4等视频文件
- 禁止打开以rtsp://等开头的URL
- 禁止访问自定义路径黑名单中的IP地址
- 禁止访问自定义路径黑名单中的网站域名
- 允许在工作时间使用代理
- 默认禁止使用代理
acl localnet src 192.168.1.0/24 192.168.200.0/24
acl MEDIAFILE url_regex -i \.mp3$ \.mp4$
acl BlackURL url_regex -i ^rtsp:// ^emule://
acl IPBLACK dst "/etc/squid/ipblack.list"
acl DMBLACK dstdomain "/etc/squid/dmblack.list"
acl WORKTIME time MTWHF 08:30-17:30
http_access deny localnet MEDIAFILE IPBLACK DMBLACK BlackURL
http_access allow localnet WORKTIME
http_access deny all
重点:
- 多个列表名间 “与” 关系,空格分开;
- 若取反条件,在列表名前添加“!”符号,表”非”的意思;
- http_access 按先后顺序进行规则匹配,找到匹配就不再向后搜索;
没有设置规则时,Squid服务将拒绝客户端的请求;
有规则但找不到匹配项,squid将执行与最后一条规则相反的权限;
- 访问控制策略建议采用“先拒绝后允许”或“先允许后拒绝”的方式;
- -i 表示忽略大小写的检查;
- T(Tuesday)W(Wednesday)H(Thursday)
F(Friday) A(Saturday) S(Sunday);
reply_body_max_size 100 MB
- 禁止下载超过100mb的文件
visible_hostname **.com
- 设置squid主机名称
cache_mgr **@**.com
- 设置管理员邮箱地址
未完待续。。。。。。