IPtables:阻止接口上除选定端口之外的所有流量

IPtables:阻止接口上除选定端口之外的所有流量

我的系统上有四个接口(eth0、eth1、eth2 和 eth3)。我想阻止 eth2 上除端口 80 和 443 之外的所有传入和传出流量,尽管我现在只担心 80。我使用的 IPtables 命令如下:

/sbin/iptables -A FORWARD -i eth2 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -o eth2 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p udp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth2 -j DROP
/sbin/iptables -A FORWARD -o eth2 -j DROP

很简单,这不起作用。eth2 上的所有流量(包括端口 80 上的流量)都被阻止了。有什么想法或方法可以探测问题所在吗?我对 IPtables 的经验很少,所以我不知道从哪里开始。谢谢!

答案1

现在看起来您一直在允许流量。

答案2

考虑使用 Shorewall 之类的防火墙构建器。它将有助于确保一切正确,并可以转储规则以便您检查它们。它提供了大量文档和针对一个、两个或三个接口(外部区域)的示例配置。这样您就可以获得三个外部接口,而无需将两个接口放在同一个区域中。

假设您已分配启用 HTTP 和 HTTPSeth2的区域,net可以使用其中之一启用rules。您需要哪种规则取决于您希望流量流动的方向。

Web(ACCEPT)   $FW    net
Web(Accept)   net    $FW

相关内容