在不使用代理身份验证的情况下允许一个 Squid 目标
在 Squid 中围绕有意设置的身份验证例外保留来源和目标限制。
监控页面需要在没有代理登录的情况下工作。显而易见的规则是 http_access allow status_site。若把它放在身份验证之前,它也可能把例外授予你从未打算服务的客户端。
对于 Squid 6 或 7,请把例外条件放在一起。在现有的管理、不安全端口、CONNECT 和本地服务防护之后,相关部分可以如下所示:
acl office_clients src 192.0.2.0/24
acl status_site dstdomain status.example.net
acl signed_in proxy_auth REQUIRED
http_access allow office_clients status_site
http_access allow office_clients signed_in
http_access deny all
网络和主机名是占位符。身份验证仍然需要其现有的辅助配置。这是访问策略中的例外部分,而不是完整的代理配置。
第一行在不评估登录 ACL 的情况下允许选定客户端访问该目标。下一行只允许这些客户端在通过身份验证后访问其他地方。较早的宽松允许或较晚的替代路径可能改变结果,因此请阅读完整的有序策略,包括被包含的文件。
不要仅仅为了避免提示就把例外移到目标端口防护之上。位于非预期端口上的已授权站点仍然是不同的路由。还要决定是精确主机还是其子域应当符合条件,而不是添加不必要的宽泛后缀。
主机名例外覆盖匹配的目标,而不覆盖其页面加载的每个依赖项。重定向和第三方资源可能合法地遇到正常的登录要求。
对于纯 HTTP,代理可以在适当的情况下使用更精细的 URL 信息。普通的 HTTPS CONNECT 请求不会暴露页面路径,因此无法从整台主机的隧道例外推断出“仅一个页面”的规则。