Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2008506
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类:

2006-03-01 23:55:44

是*nix世界中鼎鼎有名的Proxy Cache软件,常常被用来做代理或者是Web加速。其灵活而强大的ACL(Access Control List)功能也常常令人称道。
Squid配置语言中相关的关键字主要有:
  • acl:定义一个条件,这个条件可能是一个或者是一端ip地址,也有可能是一个认证请求。
  • http_access:定义一条规则,当规则中的条件满足时执行指定的动作,其匹配方法是按照用户定义规则的方法从上到下匹配,直到匹配项结束,如果到最后仍然没有找到匹配项,择按照最后一条规则的逆来执行。
例1:
acl localhost src 127.0.0.1/32
acl all src 0.0.0.0./0.0.0.0
http_access allow localhost
http_access deny all
这个配置允许localhost访问,但是拒绝其它访问。
例2:
acl normal src 10.20.12.0/24
acl admin src 10.20.12.66/32
acl manager proto cache_object
acl all src 0.0.0.0/0.0.0.0
http_access allow manager admin
http_access allow normal
http_access deny all
这个配置添加了10.20.12.66用户对cache的管理权限。
例3:
acl localhost src 127.0.0.1/32
acl all src 0.0.0.0./0.0.0.0
acl admin src 10.20.12.66/32
acl user proxy_auth REQUIRED
acl normal src 10.20.12.0/24
http_access allow localhost
http_access allow user
http_access allow manager admin
http_access allow normal
http_access deny all
因为admin, normal都从user那行开始继承了需要认证的条件,所以两个都需要认证。
另外如果条件中有多于一个的条件,那么只有当这些条件都成立时条件才成立。如下:
http_access deny !SafePort !localhost
上式表明只有当非本地主机访问不安全端口时才拒绝访问。
通过以上的分析,你会发现acl控制方式可以实现复杂的访问控制,因为即使很复杂的访问控制也能分解成一条条的类似于以上的规则来实现!
BTW:acl的实现也一定相对很简单,发明这个方法的人真是NBA!
参考资料:




阅读(2938) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~