Я встречал статьи, в которых говорится о следующем:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
И другие заявляют, что вышеуказанное не будет работать, и iptables поддерживает только несколько объявлений портов с --multiport
вариант.
Есть ли правильный способ открыть много портов с помощью iptables?
Это правильный способ:
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.
tcp
Эти расширения можно использовать, если указан параметр --protocol tcp. Он предоставляет следующие возможности:
[!] --destination-port, - dport port [: port]
Порт назначения или порт спецификация диапазона. Флаг --dport - удобный псевдоним для этой опции.
Таким образом, это также указывает диапазон портов:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT