На моем брандмауэре есть несколько правил iptables, которые выглядят так:
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
Создайте новую цепочку, которая будет принимать любые пакеты 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 не в моей голове; У меня нет доступа к коробке, на которой можно было бы проверить их банкомат.
Если вас не волнует ICMP-трафик (который в любом случае можно заблокировать глобально с помощью правила), вы можете просто опустить флаг -p, и он охватит все протоколы.