我有一台计算机,其用途是:
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