访问控制(ACL)
1.ACL元素
语法定义如下:
acl aclname acltype string1
acl aclname acltype "file"
//acltype可以是(src、dst、srcdomain、dstdomain、url_regex、urlpath_regex、time、port、proto、method)
(1) src:源地址。定义如下:
acl aclname src ip-address/netmask ... 客户ip地址
acl:aclname src addr1-addr2/netmask ... 地址范围
(2)dst:目标地址
acl aclname dst ip-address/netmask ...
(3)srcdomain:客户所属的域
acl aclname srcdomain foo.com ...
(4)dstdomain:请求服务器所属的域
acl aclname dstdomain foo.com ...
(5)time:访问时间
acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]
1 S:指代Sunday
2 M:指代Monday
3 T:指代Tuesday
4 W:指代Wednesday
5 H:指代Thursday
6 F:指代Friday
7 A:指代Saturday
(6)port:访问端口。可以指定多个端口
acl aclname port 80 70 21 ...
acl aclname port 0-1024 ... 指定一个端口范围
(7)proto:使用协议
acl aclname proto HTTP FTP ...
(8)method:请求方法
acl aclname method GET POST ...
(9)url_regex:URL规则表达式匹配
acl aclname url_regex[-i] pattern
(10)urlpath_regex:URL-path规则表达式匹配
acl aclname urlpath_regex[-i] pattern
2.http_access访问控制列表
根据访问控制列表允许或禁止某一类用户访问。最后的条目设为“deny all”或“allow all”来避免安全性隐患。http_access Action声明1 AND 声明2 AND多个,http_access声明间用或运算连接,但每个访问条目的元素间用与运算连接,列表中的规则总是遵循由上而下的顺序。
3.实例应用
(1)禁止IP地址为192.168.8.200的客户机上网
acl client src 172.16.1.2
http_access deny client
(2)禁止网段10-50上网
acl client src 172.16.1.10-172.16.1.50/32
http_access deny client
(3)拒绝访问web的ip
acl client dst 192.168.1.2
http_access deny client
(4)限制URL以 某些内容 开头
acl client url_regex index
http_access deny client
(5)限制URL 以 某些内容 结尾
acl client urlpath_regex .html
http_access deny client
(6)限制时间段
acl client time MTWHFA 9:00-18:00
http_access deny client
(7)限制443端口上网
acl http port 443
http_access deny http
(8)限制用户并发连接数为:5
acl clientsrc 172.16.1.15
acl conn5 max 5
http_access deny client conn5
(9)禁止下载*.mp3$ *.exe$ *.zip$ *.rar$ *.doc$类型的文件
acl client urlpath_regex -i .mp3$ .exe$ .zip$ .rar$ .doc$
http_access deny client