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

kar*_*k87 5 iptables proxy

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

Ham*_*ner 4

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

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
Run Code Online (Sandbox Code Playgroud)

然后你就可以设置 Firefox 来正常使用鱿鱼作为代理。如果您的朋友更改设置,他们将被阻止。

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