0

所以我正在尝试设置一个不会在网站上显示为代理的 squid 代理,我在 squid.conf 上尝试了不同的设置,但它不起作用。我对透明代理和匿名代理这两个术语感到困惑,所以我不确定我在寻找什么设置。除了我允许自己使用代理以及我想使用的端口之外,我目前在我的 conf 中的设置是:

via off
forwarded_for off

header_access From deny all
header_access Server deny all
header_access WWW-Authenticate deny all
header_access Link deny all
header_access Cache-Control deny all
header_access Proxy-Connection deny all
header_access X-Cache deny all
header_access X-Cache-Lookup deny all
header_access Via deny all
header_access Forwarded-For deny all
header_access X-Forwarded-For deny all
header_access Pragma deny all
header_access Keep-Alive deny all

我不确定所有这些都做了什么,但是在添加这些之后它确实影响了http://www.whatsmyip.org/more-info-about-you/页面显示的信息较少,所以我想这是一个开始。更具体地说,我希望代理在网络上看起来像普通用户。

任何帮助将不胜感激,谢谢。

4

1 回答 1

1

首先,我认为这将有助于理解 HTTP 请求标头和回复标头之间的区别。请求标头主要由您的浏览器构建,并标识浏览器的类型、其功能、被请求的对象、它准备请求的响应,有时还提供身份验证凭据和 cookie 等内容。响应头由 Web 服务器返回给客户端,也可以由中间系统添加/更改,通常是负载均衡器和代理。要获得一个想法,请使用 Firefox 或 Chrome 中的 Inspect Element 工具,切换到网络选项卡,然后浏览您最喜欢的网站。单击已请求的对象并查看响应和请求标头以了解其中的典型信息。一个很好的指南在这里

为了澄清另一个混淆点,透明代理和匿名代理之间的区别:

透明代理是内联连接的,通常是为了避免在客户端上需要任何特定配置。一种常见的方法是在同样执行 NAT 的 Linux 机器上运行 Squid,并使用iptables将出站 Web 请求重定向到 Squid 进程。另一种方法是设置 Cisco 路由器以使用 WCCP 将流量传送到 Squid. 在这两种情况下,客户端只会通过检查 HTTP 响应标头(通常通过查看 Via: 行)知道它已通过代理路由。每个为请求提供服务的代理都会在将请求传递回客户端时将其主机名附加到此标头字段。可以将 Squid 配置为不将其自身附加到此标头,或者避免将特定标头数据完全传递回客户端,从而至少将自身“隐藏”在客户端的视图之外。有关更多信息,请参阅 Squid 的 reply_header_access 文档。

与上述对响应的关注(即,返回给客户端的内容)相反,匿名代理只是一个代理,其配置目的是不将有关上游客户端的任何信息传递给外国网站。与上述 Via: HTTP 回复标头类似,默认情况下,代理将包含一个“X-Forwarded-For”HTTP 请求标头,以标识发起请求的客户端的本地 IP。通常,这会将私有 IP 地址发送到远程网站,一些网络管理员认为这会带来安全风险。出于这个原因,Squid 包含一个关闭它的选项 (forwarded_for),您的配置片段可以利用该选项。

您的配置片段的其余部分只是识别一堆 HTTP 标头并阻止 Squid 将它们发送到上游。如果目的是防止信息从本地网络泄漏到外部网站,那么防止其中一些信息被发送是有意义的(Forwarded-For、X-Forwarded-For)。省略其他标题可能会干扰浏览器和网络服务器之间的有效协调,例如链接、编译指示和保持活动,应该避免。而且我不确定为什么 Via: 在那里,因为它是一个回复(不是请求)标头。

让我们翻转它。从基础开始:通过指定 forwarded_for off(您已经完成)来防止 Squid 发送 X-Forwarded-For 标头。然后识别您不信任的网站以及您不想发送给他们的标头,并将该行为限制在这些域中,例如:

acl untrusted-domains dstdomain .baddomain.com .anotherbaddomain.net
header_access X-Cache-Lookup deny untrusted-domains

如果您不信任某些网站,我可以理解阻止它们传输到特定目的地,但就目前而言,您的配置会从通过您的代理传输的每个请求中删除所有这些标头,并且可能会导致很多兼容性问题,没有在隐私或安全方面提供任何明显的好处。

于 2017-03-27T02:21:02.930 回答