Как правильно открыть диапазон портов в iptables?

Как правильно открыть диапазон портов в iptables?

Я наткнулся на статьи, в которых даются следующие советы:

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

Другие утверждают, что вышеизложенное не сработает, и iptables поддерживает только несколько объявлений портов с этой --multiportопцией.

Есть ли правильный способ открыть много портов с помощью iptables?

решение1

Вот правильный способ:

iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT

В качестве примера. Источникздесь.

решение2

То, что вам сказали, верно, хотя вы написали неправильно (вы забыли --dport).

iptables -A INPUT -p tcp --dport 1000:2000откроет входящий трафик на TCP-порты с 1000 по 2000 включительно.

-m multiport --dportsнеобходимо только в том случае, если диапазон, который вы хотите открыть, не является непрерывным, например -m multiport --dports 80,443, который откроет HTTP и HTTPSтолько- а не те, что между ними.

Обратите внимание, что порядок правил важен, и (как упоминает Иэн в своем комментарии в другом месте) ваша задача — убедиться, что любое добавляемое вами правило находится в том месте, где оно будет эффективным.

решение3

Короче говоря, но...

Чистый диапазон портов без многопортового модуля: iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

Эквивалентный пример многопортового соединения: iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

...и вариация на тему многопортов с несколькими диапазонами (да, это тоже возможно): iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

...и эквивалентный пример многопортового многодиапазонного интерфейса с отрицанием: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Есть фун.

решение4

есть другой способ добавить запись непосредственно в файл Iptables. местоположение/etc/sysconfig/iptables

-A INPUT -p tcp -m multiport --dports 1024:3000 -m state --state NEW -j ACCEPT

после этого перезапустите службу iptable

Связанный контент