Назад | Перейти на главную страницу

Уменьшите количество правил брандмауэра вдвое - одно правило iptables для tcp и udp

На моем брандмауэре есть несколько правил 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, и он охватит все протоколы.