学习笔记,以备后用!

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 表示忽略大小写的检查;
  •  TTuesday)WWednesday)H(Thursday)

          FFriday)    A(Saturday)     SSunday);

reply_body_max_size 100 MB
  •  禁止下载超过100mb的文件
visible_hostname   **.com
  •  设置squid主机名称
cache_mgr   **@**.com
  •  设置管理员邮箱地址

未完待续。。。。。。