Iptables: Wie kann ich nur eine IP über einen bestimmten Port zulassen?


Antworten:


48

Einzeiler:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

Eine elegantere Lösung:

iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777

Weißt du, ob ich dies auch zum OUTPUT hinzufügen soll?
Anonymous12345

@Camran: Du musst genauer sein. In diesem speziellen Fall würden Sie beim Ersetzen INPUTdurch OUTPUTeinige Pakete blockieren, die unter Verwendung einiger Adressen des Servers selbst gesendet wurden (und nicht weitergeleitet / weitergeleitet wurden). Ich bezweifle, dass dies sinnvoll ist, es sei denn, Sie möchten Programme blockieren, die an bestimmte Schnittstellen gebunden sind.
Cristian Ciupitu

1
Vergessen Sie nicht, dass Sie Ihre Quellen auch in einer Kette wie der folgenden angeben können:--src 1.2.3.4/30
deed02392

Wie würde ich der Kette später eine neue erlaubte IP hinzufügen? Muss ich zuerst den DROP entfernen, dann den neuen Benutzer eingeben und den DROP erneut einfügen oder gibt es eine bessere Lösung?
maddo7

2
@Matthias:iptables -I xxx --src 7.8.9.10 -j ACCEPT
Cristian Ciupitu

0

Hier ist ein Beispiel von einem meiner CentOS-Systeme (Adressen wurden verschleiert):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT

Auf Centos, wo diese Konfiguration dauerhaft zu machen? (In Ubuntu können wir /etc/network/if-up.d/anyfile verwenden)
Kokizzu

auf CentOS ist es: service iptables save.
Martin Zeitler

0

Ich verwende eine Shorewall, um die IP-Tabelle zu konfigurieren. Verwenden Sie eine Regel, die von einem Host bis Port 123 akzeptiert werden soll.

ACCEPT netto: 192.0.2.1 $ FW bis 1234

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.