Was ist der richtige Weg, um eine Reihe von Ports in iptables zu öffnen?

56

Ich bin auf Artikel gestoßen, die Folgendes empfehlen:

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

Und andere, die angeben, dass das oben Genannte nicht funktioniert und iptables nur mehrere Portdeklarationen mit der --multiportOption unterstützt.

Gibt es eine korrekte Möglichkeit, viele Ports mit iptables zu öffnen?

Paul Whalley
quelle
Verwandte Frage: iptables und mehrere Ports
Cristian Ciupitu

Antworten:

60

Das ist der richtige Weg:

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

Als Beispiel. Quelle hier .

Nathan C
quelle
5
Wenn Sie den Status des Regelsatzes nicht kennen, -Iist er etwas sicherer als -A.
user9517 unterstützt GoFundMonica
@Iain, können Sie bitte die Gründe dafür erläutern?
Jayhendren
2
@jayhendren Bei vielen Regelsätzen wird standardmäßig die Regel drop everything verwendet, z. B. -A INPUT -j REJECT --reject-with icmp-host-prohibitedam Ende der INPUT-Tabelle und anderer Tabellen. Mit -Ader Option " Hinzufügen" wird die Regel am Ende der Tabelle nach der letzten Regel eingefügt, sodass sie niemals berücksichtigt wird, da "netfilter" bei einem ersten Spiel als Sieger gewertet wird. Wenn Sie -Idie Regel am Anfang der Tabelle einfügen, wird sie immer als solche betrachtet.
user9517 unterstützt GoFundMonica
4
@Iain Einige Regelsätze haben jedoch auch am Anfang Regeln zum Filtern oder Ratelimitieren von Paketen. Es lohnt sich daher, darauf hinzuweisen, dass dies -Inicht immer sicherer ist, wenn Sie den Regelsatz nicht kennen.
Jayhendren
3
@jayhendren Ich denke, du hast es gerade getan und auch bemerkt, dass ich nicht immer etwas gesagt habe .
user9517 unterstützt GoFundMonica
54

Was Ihnen gesagt wurde, ist richtig, obwohl Sie es falsch geschrieben haben (Sie haben es vergessen --dport).

iptables -A INPUT -p tcp --dport 1000:2000 Ermöglicht eingehenden Datenverkehr zu den TCP-Ports 1000 bis 2000 (einschließlich).

-m multiport --dportsist nur erforderlich , wenn der Bereich , den Sie öffnen wollen , ist nicht kontinuierlich, zum Beispiel -m multiport --dports 80,443, die HTTP öffnen wird und HTTPS nur - nicht die , die dazwischen liegt .

Beachten Sie, dass die Reihenfolge der Regeln wichtig ist, und (wie ich in seinem Kommentar an anderer Stelle erwähne) Sie müssen sicherstellen, dass alle Regeln, die Sie hinzufügen, an einem Ort sind, an dem sie wirksam werden.

MadHatter
quelle
1
Ich könnte auch hier
anspielen,
1
Hee hee hee! Weiter, dann lohnt es sich, die Nachricht zu wiederholen!
MadHatter
2
Das ist die richtige Antwort; es ist gründlicher.
Andrew Kozak
10

TL; DR aber ...

Reiner Portbereich ohne Multiport-Modul: iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

Äquivalentes Multiport-Beispiel: iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

... und Variation über Multi Port mit Multi Range (ja, das ist auch möglich): iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

... und gleichwertiges Multiport-Multibereichsbeispiel mit Negation: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Phun haben.

BloodMan
quelle