Iptables:在多个接口的路由器上仅过滤一个接口

以下是我的防火墙规则。 eth1是WAN接口,其他都是LAN接口。 我只想在eth1 (WAN接口)上过滤INPUT和FORWARD链。 所有其他interfces不需要防火墙。 我的代码示例如下工作正常。 但是我觉得我不需要这么多的规则就可以在eth1启用过滤function。 那么我怎么能只使用less量的iptables规则在eth1上启用过滤呢?

 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i br0 -j ACCEPT iptables -A INPUT -i tap0 -j ACCEPT iptables -A INPUT -i eth5 -j ACCEPT iptables -A INPUT -i eth5.20 -j ACCEPT iptables -A INPUT -i eth5.21 -j ACCEPT iptables -A INPUT -i eth5.22 -j ACCEPT iptables -A INPUT -i eth5.23 -j ACCEPT iptables -A INPUT -i eth5.24 -j ACCEPT iptables -A INPUT -i eth5.25 -j ACCEPT iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i lo -j ACCEPT iptables -A FORWARD -i br0 -j ACCEPT iptables -A IFORWARD -i tap0 -j ACCEPT iptables -A FORWARD -i eth5 -j ACCEPT iptables -A FORWARD -i eth5.20 -j ACCEPT iptables -A FORWARD -i eth5.21 -j ACCEPT iptables -A FORWARD -i eth5.22 -j ACCEPT iptables -A FORWARD -i eth5.23 -j ACCEPT iptables -A FORWARD -i eth5.24 -j ACCEPT iptables -A FORWARD -i eth5.25 -j ACCEPT iptables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT # Webserver Ports iptables -A INPUT -i eth1 -p tcp --match multiport --dports 80,443 -j ACCEPT # NAT for my local network iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source my.pub.ip.add # ICMP Protection iptables -A INPUT -i eth1 -p icmp -m icmp --icmp-type address-mask-request -j DROP iptables -A INPUT -i eth1 -p icmp -m icmp --icmp-type timestamp-request -j DROP iptables -A INPUT -i eth1 -p icmp -m icmp -m limit --limit 1/second -j ACCEPT iptables -A INPUT -i eth1 -j DROP iptables -A FORWARD -i eth1 -j DROP 

你可以在每个内置链的顶部做这样的事情:

 iptables -I INPUT -i eth1 -j eth1chain iptables -I INPUT -i eth1 -j DROP 

然后将任何你想要的规则都eth1chaineth1chain来允许stream量(你也可以跳过将-i eth1放入这些链中!),并且将策略放在主​​链上作为ACCEPT。

但是,我不会推荐这个。 你真的最好使用默认的拒绝策略,只指定你真正想要的stream量。 使用体面的防火墙pipe理工具,而不是直接编写iptables命令,可以帮助显着的工作。