这份配置适用于 Squid 6.13,包括 Debian 13 的软件包。用 squid -v 确认已安装版本:Squid 指令参考将 http_access 标记为在版本 8 中不可用。

先选好地址

监听端需要服务器已分配的地址。客户端规则需要的是Squid 实际观察到的来源地址,它可能是 NAT 网络的公网出口,而不是笔记本的私有地址。

替换下面的文档示例地址。客户端限制是一个地址,以 /32 表示。

http_port 192.0.2.10:3128
acl proxy_client src 198.51.100.27/32
acl Safe_ports port 80 443
acl SSL_ports port 443
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny manager
http_access deny to_localhost
http_access deny to_linklocal
http_access allow proxy_client
http_access deny all

替换软件包配置中相应的监听端、ACL 定义和访问规则,同时保留日志及文件系统设置。如果将这些规则追加到较早的客户端放行规则之后,限制可能被绕过。重复定义列表型 ACL 也可能追加值。

请求如何经过这些规则

开头的拒绝规则会拦截不需要的目标端口、管理请求,以及本地或链路本地目标。已知客户端在这些检查后才获准通过;其余所有请求都会到达最后的拒绝规则。目标保护仍然必需,因为仅有来源允许名单并不限制目标。

开放监听端之前,先将主机或网络防火墙限制为预期来源。绑定决定 Squid 在哪里接受连接,访问规则则决定它允许哪些请求。

sudo squid -k parse -f /etc/squid/squid.conf

修复解析错误后,再重新加载受管理的服务。从获准客户端,以及另一个受你控制、应被拒绝的来源测试。确认目标仅收到授权请求:仅有 TCP 连接,并不能证明获准转发。

相关文章