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ą --multiport
opcją.
Czy istnieje poprawny sposób otwierania wielu portów za pomocą iptables?
linux
iptables
linux-networking
Paul Whalley
źródło
źródło
Odpowiedzi:
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 .
źródło
-I
jest nieco bezpieczniejszy niż-A
.-A INPUT -j REJECT --reject-with icmp-host-prohibited
na końcu WEJŚCIA i innych tabel. Użycie-A
dodaje 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-I
wstawia regułę na początku tabeli i jako takie zawsze będzie brane pod uwagę.-I
nie zawsze jest bezpieczniej, jeśli nie znasz zestawu reguł.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 --dports
jest 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.
źródło
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ę.
źródło