Squid3 阻止除受限站点之外的所有站点

Squid3 阻止除受限站点之外的所有站点

我有一个配置文件,在允许和限制站点的行中,我有以下内容:

acl AllowedSites dstdomain "/home/john/squid3_sites/allowed-sites.squid"
acl RestrictedSites dstdomain "/home/john/squid3_sites/restricted-sites.squid"

在我的http_access清单上,我有

http_access allow AllowedSites
http_access deny RestrictedSites

我的 allowed-sites.squid 的内容只有一个 *,表示允许所有站点。而我的 restricted-sites.squid 上只有“www.facebook.com”。代理限制除 facebook.com 之外的所有站点。当我访问我能想到的任何站点时,都会出现“访问被拒绝”的错误站点。如果有帮助,以下是我的完整http_access列表:

http_access allow AllowedSites
http_access deny RestrictedSites
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

以及我的所有 acl:

acl SSL_ports port 443 563
acl AllowedSites dstdomain “/usr/local/etc/allowed-sites.squid”
acl RestrictedSites dstdomain “/usr/local/etc/restricted-sites.squid”
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
acl all src all

答案1

就像许多基于允许/拒绝规则的系统一样,一旦规则匹配,就会应用该规则,并且不会进一步处理该规则链。因此,一旦您允许 *,它甚至不会到达该链的任何后续拒绝规则。或者如文档所述:

访问列表规则按照其写入的顺序进行检查。只要有一条规则匹配,列表搜索就会终止。

deny all一旦您将 * 替换为实际列表,它就会起作用。如果您在拒绝站点列表后面跟着一个,那么您也不需要拒绝站点列表。

相关内容