IPTables Befehle

Aus Dirk's Wiki
Zur Navigation springen Zur Suche springen

Allgemeines

Folgende Tabellen werden durch die iptables bereitgestellt:

  • Filter - Standard Tabelle für das filtern von Paketen.
  • Nat - Wird für Network Adress Translation genutzt.
  • Mangle - Um IP Header upzudaten. Es kann z.B. das TTL angepasst werden.
  • Raw - Stellt einen Mechanismus bereit um Verfolgung von Verbindungen abzulehnen.
  • Security - Ein Set um interne SELinux Kontext Markierungen auf Pakete zu setzen.

Benutzt man den Befehl iptables ohne eine Angabe der Tabelle wird standardmäßig die Filter Tabelle ausgewählt.


In der unteren Tabelle eine Übersicht welche Kette in welcher Tabelle enthalten ist. Von oben nach unten gelesen beschreibt sie auch wie Pakete die Firewall passieren. Die Nat Tabelle ist hier in zwei Teile unterteilt. DNAT -> welches die Zieladresse anpasst und SNAT -> welches die Quelladresse anpasst.

Tabelle↓/Kette→ Prerouting Input Forward Output Postrouting
Raw x x
Mangle x x x x x
Nat(DNAT) x x
Filter x x x
Security x x x
Nat(SNAT) x x


Folgende Reihenfolge ergibt sich daraus für die Pakete:

  • Eingehende Pakete für das lokale System: Prerouting -> Input
  • Eingehende Pakete für andere Systeme: Prerouting -> Forward -> Postrouting
  • Lokal generierte Pakete: Output -> Postrouting

Für ein eingehendes Paket ergibt sich folgende Reihenfolge: Prerouting in den Tabellen Raw, Mangle, Nat gefolgt von Input in den Tabellen Mangle, Filter, Security, Nat

Iptables Regeln anzeigen

$ iptables -S [CHAIN]

Zeigt alle Regeln am Stück an. Bei der optionalen Angabe der Kette (CHAIN) wird nur diese ausgegeben.

$ iptables -L [CHAIN]

Zeigt alle Regeln tabellarisch an. Bei der optionalen Angabe der Kette wird nur diese ausgegeben.

$ iptables -L --line-numbers [CHAIN]

Zeigt alle Regeln tabellarisch an und gibt zusätzlich noch die Regelnummer mit aus. (Für späteres löschen einzelner Regeln von Vorteil)

$ iptables -L -v -n [CHAIN]

Zeigt alle Regeln tabellarisch an und gibt detailierte Counterinformationen (-v = verbose) mit Paketen und Bytes aus. Zusätzlich wird mit der -n Option kein reserve DNS Lookup für Adressen ausgeführt was die Geschwindigkeit erhöht.

$ iptables -L -t [[Filter][Nat][Mangle][Raw][Security]]

Zeigt die Tabellen Filter Nat Mangle Raw und Security der iptables an. Ohne Angabe wird, wie oben beschrieben, als default die Filter Tabelle angezeigt.

Zurücksetzen des Counters

$ iptables -Z [CHAIN] [Rulenumber]

Löscht den Counter (-Z = zero) der iptables. Optional, nur für eine bestimmte Kette und Regelnummer. Ansonsten werden alle Counter resettet.

Beispiel:

$ iptables -Z 			# löscht alle Counter
$ iptables -Z INPUT 	# löscht alle Counter der Kette (CHAIN) INPUT
$ iptables -Z INPUT 3 	# löscht den Counter der Regel 3 der Kette INPUT

Iptables Regeln hinzufügen

$ iptables -I CHAIN [Rulenumber] Regel-Spezifikation

Fügt eine Regel (-I = insert) in der Kette mit genannter Spezifikation hinzu.

Beispiel Blocken einer IP Adresse:

$ iptables -I INPUT -s 192.168.5.55 -j DROP

Fügt der Kette INPUT mit der Quelle (-s = syntaxhighlight) 192.168.5.55 als Ziel (-j = target) DROP hinzu als Regel hinzu.

$ iptables -N [CHAIN]

Erstelle eine Kette mit dem im [CHAIN] angegeben Namen.

$ iptables -N SSH

Beispiel: Erstellen der Kette SSH

Iptables Regeln löschen

$ iptables -D CHAIN Rulenumber

Löscht eine bestimmte Regel in einer bestimmten Kette. Die Regelnummern können vorher mit der Option --line-numbers angezeigt werden. (siehe Anzeigen von Regeln) Beispiel:

$ iptables -D INPUT 3

Löscht Regel Nummer 3 in der Kette INPUT.

$ iptables -S
...
-A INPUT -m state --state INVALID -j DROP
...

$ iptables -D INPUT -m state --state INVALID -j DROP

Löscht eine Regel mit vorheriger Anzeige. Zu beachten ist das das -A nicht beim Löschbefehl mit angegeben wird.

$ iptables -F [CHAIN]

ACHTUNG! Löscht ALLE Regeln. Mit Verwendung der Kette, löscht dieser Befehl nur die Regeln in dieser.

$ iptables -X [CAHIN]

Löscht eine Kette mit angegeben Namen.

$ iptables -X SSH

Beispiel: Löschen der SSH Kette

Iptables exportieren

$ iptables-save > dateiname

Regeln werden nach "dateiname" exportiert.


Iptables importieren

$ iptables-restore < dateiname

Regeln werden von "dateiname" importiert.