您的位置:首页 > 运维架构 > 反向代理

squid服务的ACL访问控制

2013-12-28 15:57 288 查看
squid服务的ACL访问控制
简介:
squid服务提供了强大的访问控制功能,
通过定义各种ACL(Access Control List,访问控制列表),
这些列表中包含了一定的过滤和控制条件,
然后只要对这些列表设置时allow(允许)或deny(拒绝)就可以实现访问控制了。
在squid.conf配置文件中,
HTTP的访问控制主要由acl和http_access配置项共同实现,
两个配置项分别用来定义控制的条件(列表)和实施控制。
1.定义ACL列表
acl配置项用于设置访问控制列表的内容,
可以为每组特定的控制目标制定一个名称。
格式:
acl 列表名称 列表类型 列表内容 ...
列表名称:用户自定义名称即可
列表类型:必须使用squid预定义的值
列表内容:即控制的对象
常见的squid预定义列表类型:
类型1:src
列表内容示范:
192.168.1.1/32
192.168.1.0/255.255.255.0
192.168.1.0-192.168.3.0/24
用途:
客户端IP地址或网络段、地址范围
类型2:dst
列表内容示范:
www.playboy.com
216.163.137.3/32
用途:
用户访问的目标主机名或者IP地址
类型3:port
列表内容示范:
80 8080 21
用途:
用户访问的端口
类型4:srcdomain
列表内容示范:
.linuxfan.cn
.llfa.cn
用途:
客户端来源域名(根据ip地址作反向解析)
类型5:dstdomain
列表内容示范:
.qq.com .msn.com .verycd.com
用途:
用户访问的目标域,匹配域内所有站点
类型6:time
列表内容示范:
MTWHF 8:30-17:30
12:30-13:30
AS
用途:
用户上网的时间段
字母表示一星期各天的英文缩写
M-monday
T-tuesday
W-wednesday
H-thursday
F-friday
A-saturday
S-sunday
列表类型7:Maxcon
列表内容示范:
15
用途:
客户端的并发HTTP连接数
列表类型8:url_regex
列表内容示范:
url_regex -i ^rtsp:// ^mms://
url_regex -i ^emule://
用途:
用户访问的整个URL网址,
可以使用正则表达式,
加-i表示忽略大小写
列表类型9:urlpath_regex
列表内容示范:
urlpath_regex -i sex adult nude
urlpath_regex -i \.mp3$ \.rar$
用途:
匹配用户访问的URL路径(部分),
可以使用正则表达式
2.设置acl访问权限
针对定义的各种acl列表,
使用http_access配置项控制其访问权限,
允许(allow)或者拒绝(deny)。
http_access配置行必须在对应的acl列表定义之后。
每一行http_access配置确定一条权限控制规则。
在每一条http_access规则中,
可以同时包含多个acl列表名,
各个列表之间使用“与”的关系,
只有满足所有acl列表对应的条件才会进行限制,
可以使用“!”符号设置相反条件
格式:
http_access allow或deny 列表名.....
生效的顺序:
在squid.conf中http_access各条规则按顺序进行匹配,
匹配即停止;
没有任何规则是:squid访问将拒绝客户端的请求。
有规则但找不到匹配项是:
采用与最后一条相反的权限,
即如果最后一条是allow,则拒绝,否则允许。
通常情况下把最常用的控制规则放在最前面,以减小squid的负载。
在访问控制的总体策略上采用:先拒绝后允许或先允许后拒绝,
在最后添加一条“http_access allow all”或者“http_access deny all”

3.实现步骤:
定义列表
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl LAN1 src 192.168.1.0/24
acl LAN2 src 192.168.2.0/24
acl PC1 src 192.168.1.66/32
acl lan_Domain .linuxfan.cn .benet.com
acl to_localhost dst 127.0.0.0/8
acl Black_IP dst 61.143.79.86/32 217.23.45.77/32
acl Black_host dst www.xxxx.comwww.adult.com ##squid启动时会尝试解析
acl Black_Domain dstdomain .qq.com .msn.com j.gamezone.net
acl Max10_Conn maxconn 10
acl Max20_Conn maxconn 20
acl Black_URL url_regex -i ^rtsp:// ^mms:// ^emule://
acl Illegal_words urlpath_regex -i sex adult fake
acl MediaFile urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ \.rm$ \.mov$ \.mpg$
acl Lunch_Hours time MTWHF 12:30-13:30
acl Work_Hours time MTWHF 08:30-17:30
实现权限控制
http_access deny LAN1 Black_IP
http_access deny LAN1 Black_Host
http_access deny LAN1 Black_Domain
http_access deny LAN2 Black_URL
http_access deny LAN2 Illegal_words
http_access deny LAN2 MediaFile
http_access deny PC1 Max10_conn
http_access deny LAN1 Max20_conn
http_access allow LAN_Domain Work_Hours
http_access allow LAN1 Work_Hours
http_access allow LNA2 Work_Hours
http_access deny all

本文出自 “沈工鬼斧” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: