Squid 的 localport ACL 匹配 Squid 接收连接的那个端口。把它与合适的目标 ACL 组合,每个监听端口就只放行自己的列表。

对于已有客户端和安全端口限制的 Squid 6 或 7 配置:

http_port 3128
http_port 3129

acl approved_clients src 192.0.2.0/24
acl main_listener localport 3128
acl alternate_listener localport 3129
acl main_sites dstdomain "/etc/squid/main-sites.txt"
acl alternate_sites dstdomain "/etc/squid/alternate-sites.txt"

http_access allow approved_clients main_listener main_sites
http_access allow approved_clients alternate_listener alternate_sites
http_access deny all

把文档中的客户端网段换成实际获准的客户端,并准备两个域名列表文件。把成对的 allow 规则放在安装所需 deny 检查之后、最终 deny 之前。保留其不安全端口、CONNECT 和管理方面的限制。

同一条访问规则上的 ACL 名称以 AND 组合。分开的 allow 规则提供备选路径。若目标规则不带监听端口条件,任一列表都会从任一端口通过。

也要检查更早的规则:先匹配上的宽泛 allow 会让这些后续限制根本得不到评估。要验证边界,请通过每个监听端口测试允许与被拒的目标。

localport 不是网站的端口,也不是客户端的临时源端口。目标端口条件用的是 port ACL。

相关文章