Який правильний спосіб відкрити діапазон портів в iptables


56

Я натрапив на статті, які порадили наступне:

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

А інші заявляють, що вищезгадане не працюватиме, а iptables підтримує лише кілька декларацій портів із --multiportможливістю вибору.

Чи є правильний спосіб відкрити багато портів за допомогою iptables?


Питання, пов’язані з цим: iptables та декілька портів
Cristian Ciupitu

Відповіді:


60

Це правильний спосіб:

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

Як приклад. Джерело тут .


5
Якщо ви не знаєте, стан набору правил -Iдещо безпечніший -A.
user9517 підтримує GoFundMonica

@Iain, чи не могли б ви пояснити мотивування цього?
jayhendren

2
@jayhendren для багатьох наборів правил буде встановлено за замовчуванням правило все, наприклад -A INPUT -j REJECT --reject-with icmp-host-prohibitedнаприкінці INPUT та інших таблиць. Використання -Aдодає правило в кінці таблиці, після остаточного правила, тому воно ніколи не буде розглядатися як netfilter працює на основі виграшу першого матчу. Використовуючи -Iправило, вставлене на початку таблиці та як таке, воно завжди буде враховано.
user9517 підтримує GoFundMonica

4
@Iain, але деякі набори правил також мають на початку правила, які фільтрують або рателімітують пакети, тому варто зазначити, що -Iне завжди безпечніше, якщо ви не знаєте набір правил.
jayhendren

3
@jayhendren Я думаю, що ви щойно зробили, а також зауважте, я говорив дещо не завжди .
user9517 підтримує GoFundMonica

54

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

iptables -A INPUT -p tcp --dport 1000:2000 відкриє вхідний трафік до портів TCP від ​​1000 до 2000 включно.

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

Зауважте, що впорядкування правил є важливим, і (як натякає Ієйн у своєму коментарі в іншому місці) ваша робота - переконатися, що будь-яке додане вами правило знаходиться в тому місці, де воно буде дієвим.


1
Я міг би натякнути і тут, якщо хочете;)
user9517 підтримує GoFundMonica

1
Хі-хі-хі! Далі, тоді повідомлення варто повторити!
MadHatter

2
Це правильна відповідь; вона більш ретельна.
Андрій Козак

10

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

Майте фун.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.