2. 一个访问列表可以又多条规则组成。
3. 如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。
4. 一个访问条目中的所有元素将用逻辑与运算连接:
http_access Action 声明1 AND 声明2 AND 声明 OR.
http_access Action 声明3
多个 http_access 声明间用或运算连接,但每个访问条目的元素间用与运算连接。
5. 请记住列表中的规则总是遵循由上而下的顺序。
我们具体来看看如何运用acl和http_access。首先把squid.conf的配置改回原状,即修改http_access allow all为http_access deny all。下面给出几种常用访问控制:
根据IP鉴权
只有地址为192.168.100.10和192.168.100.100的终端可以使用代理
在squid.conf的ACCESS CONTROL配置部分添加
acl authorizedip src 192.168.100.10
acl authorizedip src 192.168.100.100
然后到http_access部分
在http_access deny all这一行前面添加
http_access allow authorizedip
如果需要设置的IP地址非常多,又不连续,是不是要写上一大堆的acl xxx xxx x.x.x.x?有一个简单的方法,把这些IP地址写在一个文件里,比如/etc/squid/authorizedip.txt,每行一个。然后在squid.conf里这样写
acl authorizedip src "/etc/squid/authorizedip.txt"
根据时间控制
关于时间段的设置,可以参见squid.conf中的说明,具体是S - Sunday, M - Monday, T - Tuesday, W - Wednesday, H - Thursday, F - Friday A - Saturday,如果七天都允许,也可以不写。时间格式是H1:M1-H2:M2,要求是前面的要小于后面的。
# 定义一个访问时间段:每周星期一到星期五的上午八点到下午五点,允许alloweduser用户在这个时间段内上网
acl accept_time time MTWHF8:00-17:00
http_access allow alloweduser accept_time
http_access deny alloweduser
访问特定URL地址
虽然我们不希望所有的人都使用代理自由的访问Internet,但有几个网站是可以让内部终端都能访问的。在squid.conf里添加访问控制:
acl alloweddomain dstdomain .linuxforum.net .linuxaid.com.cn
http_access allow alloweddomain
同样的,如果参数很多的情况,也可以把这些允许的地址名写到一个文本里:
acl alloweddomain dstdomain "/etc/squid/alloweddomain.txt"
alloweddomain.txt里是允许访问站点的列表,每行一个。
根据关键字过滤网址
有些网站(色情网站,广告网站)很令人讨厌,通过设置acl可以很容易屏蔽掉这些站点:
acl denyurl url_regex sex boylink xxx city69 asiaadult sehu
http_access deny denyurl
这个设置将过滤带有sex boylink xxx city69 asiaadult sehu这些关键字的URL地址。
和前面一样,也可以把这些关键字写到一个文本里
acl denyedurl url_regex "/etc/squid/sex.txt"








