Как правильно открыть диапазон портов в 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