- 论坛徽章:
- 0
|
先请看彭大<<Squid权威指南>>的6.3.4节
-----------------------------------------
6.3.4 在工作时间的受限使用某些公司喜欢在工作时间限制web使用,为了节省带宽,或者是公司政策禁止员工在工作时做某些事情。关于这个最难的部分是,所谓合适的和不合适的internet使用之间的区别是什么。不幸的是,我不能对这个问题作出回答。在该例子里,假设你已收集了一份web站点域名列表,它包含已知的不适合于你的站点名,那么这样配置squid:
acl NotWorkRelated dstdomain "/usr/local/squid/etc/not-work-related-sites"
acl WorkingHours time D 08:00-17:30
http_access deny !WorkingHours NotWorkRelated
请注意在该规则里首先放置!WorkingHours ACL。相对于字符串或列表,dstdomain ACL产生的性能代价较大,但time ACL检查却很简单。
下面的例子,进一步理解如何结合如下方法和前面描述的源地址控制,来控制访问。
acl All src 0/0
acl MyNetwork src 172.16.5.0/24 172.16.6.0/24
acl NotWorkRelated dstdomain "/usr/local/squid/etc/not-work-related-sites"
acl WorkingHours time D 08:00-17:30
http_access deny !WorkingHours NotWorkRelated
http_access allow MyNetwork
http_access deny All
上面的方法可行,因为它实现了我们的目标,在工作时间内拒绝某些请求,并允许来自你自己网络的请求。然而,它也许有点低效。注意NotWorkRelated ACL在所有请求里被搜索,而不管源IP地址。假如那个列表非常长,在列表里对外部网络请求的搜索,纯粹是浪费CPU资源。所以,你该这样改变规则:
http_access deny !MyNetwork
http_access deny !WorkingHours NotWorkRelated
http_access Allow All
这里,将代价较大的检查放在最后。试图滥用squid的外部用户不会再浪费你的CPU资源。
-----------------------------------------
彭san的意思就是说如果是工作时间访问与工作无关的网站是禁止的,但是这个条件应该是匹配http_access allow MyNetwork这一条的啊?应该是允许的呀?
(访问控制后面有多个ACL的时候这几个ACL需要同时满足.)
请高手解读.
谢过.
其实我知道彭san肯定是对的,我是错的,但是我脑子转不过来,不知道哪里出问题.
[ 本帖最后由 dong_kof 于 2009-8-11 16:37 编辑 ] |
|