iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT
有两个规则的快捷方式 – 一个用于TCP和一个用于udp – 每个地址? 我的意思是我可以做这样的事情:
iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
创build一个新的链,它将接受任何TCP和UDP数据包,并从各个IP /端口允许规则跳转到该链:
iptables -N ACCEPT_TCP_UDP iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP
这增加了一些额外的行开销,但减less了一半的TCP / UDP规则。
我不会忽略-p参数,因为你不仅打开ICMP的防火墙,还打开任何其他协议。 从iptables手册页上-p :
指定的协议可以是tcp,udp,icmp或all之一,也可以是数字值,表示这些协议之一或不同的协议。 / etc / protocols中的协议名称也是允许的。
除了TCP,UDP和ICMP之外,您可能不会听任何协议,但是谁知道将来会怎样。 不必要地打开防火墙是不好的做法。
免责声明:iptables命令是我的头顶; 我没有访问一个盒子来testing他们的ATM。
如果你真的不关心ICMPstream量(你可以用规则全局阻止),你可以省略-p标志,它将覆盖所有的协议。