Jaki jest właściwy sposób na otwarcie szeregu portów w iptables

56

Natknąłem się na artykuły dotyczące następujących kwestii:

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

Inni twierdzą, że powyższe nie będzie działać, a iptables obsługuje tylko wiele deklaracji portów z tą --multiportopcją.

Czy istnieje poprawny sposób otwierania wielu portów za pomocą iptables?

Paul Whalley
źródło
Powiązane pytanie: iptables i wiele portów
Cristian Ciupitu

Odpowiedzi:

60

To jest właściwy sposób:

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

Jako przykład. Źródło tutaj .

Nathan C.
źródło
5
Jeśli nie wiesz, stan zestawu reguł -Ijest nieco bezpieczniejszy niż -A.
user9517 obsługuje GoFundMonica
@Iain, czy mógłbyś wyjaśnić uzasadnienie tego?
jayhendren
2
@jayhendren wiele zestawów reguł będzie miało domyślną regułę upuszczania wszystkiego, np. -A INPUT -j REJECT --reject-with icmp-host-prohibitedna końcu WEJŚCIA i innych tabel. Użycie -Adodaje regułę na końcu tabeli, po ostatniej regule, aby nigdy nie była uważana za działającą przy pierwszym wygranym filtrze. Użycie -Iwstawia regułę na początku tabeli i jako takie zawsze będzie brane pod uwagę.
user9517 obsługuje GoFundMonica
4
@Iain jednak, niektóre zestawy reguł mają również na początku reguły, które filtrują lub ratelimitują pakiety, więc warto zauważyć, że -Inie zawsze jest bezpieczniej, jeśli nie znasz zestawu reguł.
jayhendren
3
@jayhendren Myślę, że właśnie to zrobiłeś, a także zauważyć, że powiedziałem nieco nie zawsze .
user9517 obsługuje GoFundMonica
54

To, co ci powiedziano, jest słuszne, chociaż źle to napisałeś (zapomniałeś --dport).

iptables -A INPUT -p tcp --dport 1000:2000 otworzy ruch przychodzący na porty TCP od 1000 do 2000 włącznie.

-m multiport --dportsjest potrzebne tylko wtedy, gdy zakres chcesz otworzyć nie jest ciągły, np -m multiport --dports 80,443, który otworzy HTTP i HTTPS tylko - nie te pomiędzy.

Pamiętaj, że kolejność reguł jest ważna i (jak wspomina Iain w swoim komentarzu w innym miejscu) Twoim zadaniem jest upewnić się, że każda dodana reguła będzie w miejscu, w którym będzie skuteczna.

Szalony Kapelusznik
źródło
1
Mógłbym tu również
nawiązać,
1
Hee hee hee! Dalej, wiadomość jest warta powtórzenia!
MadHatter
2
To jest poprawna odpowiedź; jest dokładniejszy.
Andrew Kozak,
10

TL; DR ale ...

Zakres czystych portów bez modułu wieloportowego: iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

Równoważny przykład wieloportowy: iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

... i wariant dotyczący wielu portów z wieloma zakresami (tak, jest to również możliwe): iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

... i równoważny przykład wielu portów z wieloma zakresami z negacją: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Odwal się.

BloodMan
źródło