iptables 规则强制所有浏览器使用代理

iptables 规则强制所有浏览器使用代理

我已经安装了 squid 作为我的代理服务器Ubuntu 10.04 单机系统它有一个网卡。我之所以在独立系统中安装 Squid,是因为我的朋友使用我的系统浏览网站和下载文件。所以我安装了 Squid 来阻止色情网站和下载。但他们只是通过在浏览器中禁用代理设置来绕过代理设置。我知道有某种方法可以强制所有浏览器使用 iptables 通过代理。但怎么做呢?我到处寻找答案,但还没有找到正确的答案。有人能帮我吗?

答案1

首先阻止除 root 和 squid 之外的所有用户直接访问端口 80。(root 需要它来获取系统更新)。(我假设 squid 作为用户代理运行 - 根据需要进行编辑)。

iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner proxy -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP

然后,您可以像往常一样设置 Firefox 使用 squid 作为代理。如果您的朋友更改了设置,他们将被阻止。

请注意,squid 无法代理 https 流量,因此我没有将这些详细信息放入这些规则中。如果您只想进行过滤而不进行代理或缓存,那么您可以使用 DansGuardian。这是使用 dansguardian 的指南一些用户被排除在过滤之外。该指南意味着 https (端口 443) 将被 DansGuardian 过滤,http (端口 80) 也是如此。

答案2

或者,你可以将代理链的 LD_PRELOAD 选项放入 .profile 中 - 如果你想要代理 https,你可以使用 3proxy

相关内容