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

Я сталкивался со статьями, советующими для следующего:

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

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

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

5 ответов

Решение

Это правильный путь:

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

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

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

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

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

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

TL;DR но...

Чистый диапазон портов без многопортового модуля: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

Имейте phun.

Согласно man iptables-extensions вы можете определить диапазон портов, просто используя ключ --dport.

ТСР
Эти расширения могут использоваться, если указан `--protocol tcp'. Он предоставляет следующие возможности:
[!] --destination-port, - dport port[:port]

Порт назначения или спецификация диапазона портов. Флаг --dport является удобным псевдонимом для этой опции.

Так что это также указывает диапазон портов:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

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

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

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

Другие вопросы по тегам