如何在同时托管 Squid 代理的网关上设置 iptables?

如何在同时托管 Squid 代理的网关上设置 iptables?

我有一台计算机,其用途是:

a) 无线网络 (WLAN0) 和连接到互联网的 LAN (ETH0) 之间的网关

b) 仅执行 Web 过滤(无缓存)的 Squid3 代理服务器

我已经像这样设置了 iptables:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

当我配置 WLAN 上的客户端通过代理访问互联网时,它可以按照 Squid 中指定的规则正常工作。

但是,未配置为使用代理的 WLAN 客户端仍然可以访问互联网。现在我想通过在 iptables 中设置正确的规则来拒绝不是来自代理的 WLAN 流量,从而强制这些 WLAN 客户端使用代理。

我尝试了以下方法:

iptables -A INPUT -i wlan0 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i wlan0 -j DROP

但它无法阻止这些不使用代理的 WLAN 客户端。

由于网关和代理位于同一台计算机上,我不知道应该使用哪个 iptables 链来阻止这些客户端。我应该使用 INPUT(如何使用?)还是应该以其他方式执行?

答案1

我认为你应该把规则放在正向下巴而不是输入下巴,因为请求目的地不是服务器而是另一个服务器ip

相关内容