Squid

Squid:如何阻止 plus.google.com,允許訪問 google.com

  • September 10, 2013

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

.*

預設情況下,它不允許訪問所有內容。

2.white.acl 允許訪問google:

google\..*

我想plus.google.com通過將其添加到 block.acl 來禁止訪問:

plus\.google\.com
  1. 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. 我怎樣才能阻止它,保持對主要Google域的訪問?

您的允許google\..*匹配其中的每個URLgoogle.。首先匹配允許,因此允許訪問。

您的規則還將允許google.URL 中任何位置的任何請求,例如http://example.com/google.asp

此外,Google 嘗試通過 SSL 處理大多數請求,因此拒絕通過url_regex在這些請求中不起作用(https 中沒有 URL)。你可以用 squid 做一些中間人的惡作劇來解密 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 文章應該會有所幫助。

引用自:https://unix.stackexchange.com/questions/90068