在所有浏览器中强制使用代理

在所有浏览器中强制使用代理

我已经使用 squidguard 配置了 squid,在浏览器中使用代理时,它工作正常。但我想在所有浏览器中强制使用代理(可能在 iptables 中)。现在用户可以在浏览器设置中禁用它。

我的设置是:一台独立的 PC,装有 ubuntu,运行 squid 和 squidguard,我想在这台设备上以某种方式强制使用代理。Squid conf 文件已设置:

http_port 3128 transparent

谢谢

答案1

您正在寻找的是透明代理。上次我检查时发现使用 Squid 有两种方法可以做到这一点:

  1. 杠杆作用世界气候变化规划委员会,Squid 支持该功能。
  2. 通过 Squid 盒路由所有互联网流量,并通过 IPTables 拦截流量。Squid 称其为拦截缓存

第一个选项需要您的路由基础设施的支持。由于这是 Cisco 协议,因此 Cisco 之外的支持并不强。如果您有基础设施,这个方法有效,我已经尝试过了。

第二种选择更可行。为了实现这一点,您需要设置路由基础设施,以便通过 Squid 框发送所有 Internet 流量。Squid 可以编译为支持拦截,并且可能通过 Apt repos 提供。

答案2

按照 iptables 配方将 eth1(路由器上的内部网络设备)上的所有 HTTP 流量透明地路由到 Squid(和 vv)。

-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.110.0.1:3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

如果你碰巧使用联邦快递(正如我们所做的),您可以将该行添加到/etc/ufw/after.rules

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.110.0.1:3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT

您可以从以下位置找到更多示例和详细信息本文

相关内容