![Squid:禁用 X-Forwarded-For,但仅限于特定的 ACL](https://linux22.com/image/626139/Squid%EF%BC%9A%E7%A6%81%E7%94%A8%20X-Forwarded-For%EF%BC%8C%E4%BD%86%E4%BB%85%E9%99%90%E4%BA%8E%E7%89%B9%E5%AE%9A%E7%9A%84%20ACL.png)
我知道,我可以通过全局使用指令“forwarded_for off”或“forwarded_for delete”来完全关闭 Squid 中的 X-Forwarded-For 标头。我希望能够仅针对特定 ACL 禁用该标头,这样我就可以仅针对给定的 URL 禁用此标头,而针对其他 URL 启用它。有什么办法吗?
答案1
您可以基于外部文件创建 ACL 来存储 URL(我认为这样更容易管理):
acl NoXForwardedFor dstdomain "/etc/squid/NoXForwardedFor.txt"
的内容/etc/squid/NoXForwardedFor.txt
可能是这样的:
.serverfault.com
.superuser.com
.stackoverflow.com
X-Forwarded-From
然后从给定 ACL 的标题中删除:
request_header_access X-Forwarded-For deny NoXForwardedFor
注意:您可以使用dst
指令代替指令dstdomain
。但它需要 URL 主机的 IP 地址,因此请确保目标域具有固定的 IP 地址。
也许有一些有用的链接可以加深理解:
答案2
我尝试了同样的方法,正确的语法是
acl NoXForwardedFor dst "/usr/pbi/squid-amd64/etc/squid/NoXForwardedFor.txt"
request_header_access X-Forwarded-For deny NoXForwardedFor
其中NoXForwardedFor.txt
包含域名。