Squid:如何阻止 plus.google.com,允许访问 google.com

Squid:如何阻止 plus.google.com,允许访问 google.com

1.我在squid中有以下block.acl文件:

.*

默认情况下它禁止访问所有内容。

2.white.acl允许访问google:

google\..*

我想plus.google.com通过将其添加到 block.acl 来禁止访问:

plus\.google\.com

3.squid.conf中文件包含的顺序是这样的:

acl good_url url_regex "/etc/squid/white.acl"
http_access allow good_url

acl bad_url url_regex "/etc/squid/block.acl"
http_access deny bad_url

坏的包含在好之后。

但我仍然可以访问plus.google.com。我怎样才能阻止它,保持对谷歌主域的访问?

答案1

您的允许google\..*与每个匹配网址google.其中。首先匹配允许,以便允许访问。

您的规则还将允许google.URL 中任意位置的任何请求,例如http://example.com/google.asp

此外,Google 尝试通过 SSL 执行大多数请求,因此拒绝通过url_regex在这些请求中不起作用(https 中没有 URL)。你可以做一些中间人与鱿鱼的恶作剧解密 SSL 通信以便能够通过 URL 进行过滤。或者,dstdom_regex可以仅匹配 URL 的域部分,这也会拒绝 SSL 连接到该域。

重组您的配置以明确拒绝,然后明确允许,然后默认拒绝(使用all而不是列表)

acl bad_domain dstdom_regex "/etc/squid/block.acl"
acl good_domain dstdom_regex "/etc/squid/allow.acl"

http_access deny bad_domain 
http_access allow good_domain
http_access deny all

然后将以下内容包含在不良列表中:

(.+\.)?plus\.google\..+$

在好清单中:

(.+\.)?google\.

这并不完美,因为您仍然允许google.名称中包含一些其他域(google.blah.com)。这(.+\.)?只是任何子域的特定匹配。如果您想更具体地了解允许这篇关于 google 域的 wiki 文章应该有帮助。

相关内容