Создайте новую цепочку, которая будет принимать любые пакеты 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
Это добавляет накладные расходы на несколько дополнительных строк, но вдвое уменьшает количество правил TCP / UDP.
Я бы не стал опускать -p
аргумент, потому что вы открываете не только брандмауэр для ICMP, но и любой другой протокол. Из справочной страницы iptables -p
:
Указанный протокол может быть одним из tcp, udp, icmp или all или может представлять собой числовое значение, представляющее один из этих протоколов или другой. Имя протокола из / etc / protocol также разрешено.
Вы не можете слушать на любых протоколов TCP, UDP и ICMP , за исключением прямо сейчас , но кто знает , что будущее может держать. Было бы плохой практикой оставлять брандмауэр открытым без необходимости.
Отказ от ответственности: команды iptables находятся на моей голове; У меня нет доступа к ящику для проверки их банкомата.