Startseite > Netzwerkverwaltung > iptables

iptables: Verwaltung von Linux-Firewall-Regeln

iptables ist ein Befehlszeilenprogramm, das das Netfilter-Framework des Linux-Kernels verwendet, um Regeln für die IPv4-Paketfilterung und NAT (Network Address Translation) einzurichten und zu verwalten. Damit können Sie den Netzwerkverkehr steuern und die Systemsicherheit erhöhen. iptables verwendet die Konzepte von Chains (Ketten) und Tables (Tabellen), um Regeln für die Paketverarbeitung zu definieren.

Übersicht

iptables implementiert die Sicherheitspolitik eines Systems, indem es Regeln für ein- und ausgehende Netzwerkpakete definiert. Jede Regel gibt eine Aktion (Target) wie ACCEPT (zulassen), DROP (ignorieren) oder REJECT (ablehnen) für Pakete an, die bestimmten Bedingungen entsprechen. Hauptsächlich werden die Chains INPUT, OUTPUT und FORWARD verwendet, und für NAT-Funktionen werden auch die Chains PREROUTING und POSTROUTING genutzt.

Hauptfunktionen

  • Paketfilterung (Firewall)
  • Network Address Translation (NAT)
  • Portweiterleitung und -umleitung
  • Steuerung des Datenverkehrs basierend auf spezifischen IP-Adressen, Ports und Protokollen

Wichtige Optionen

Der Befehl iptables wird mit verschiedenen Optionen verwendet, um spezifische Regeln hinzuzufügen, zu löschen, zu ändern oder um die aktuellen Regeln abzufragen.

Regelverwaltung

Abgleichbedingungen

Targets (Aktionen)

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`iptables` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Beispiele für die Konfiguration gängiger Firewall-Regeln mit iptables. Es wird empfohlen, die aktuellen Regeln immer zu sichern, bevor Sie neue Regeln hinzufügen.

Alle aktuellen Regeln anzeigen

sudo iptables -L -v -n

Zeigt Regeln mit detaillierten Informationen und numerischen IP-Adressen an.

SSH (Port 22) zulassen

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Erlaubt eingehende SSH-Verbindungen von außen.

Bestimmte IP-Adresse blockieren

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

Blockiert den gesamten eingehenden Datenverkehr von einer bestimmten IP-Adresse (z. B. 192.168.1.100).

Allen ausgehenden Datenverkehr zulassen

sudo iptables -P OUTPUT ACCEPT

Legt die Standardrichtlinie der OUTPUT-Kette so fest, dass der gesamte ausgehende Datenverkehr des Systems erlaubt wird.

Portweiterleitung für Webserver (80 -> 8080)

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Leitet eingehende Anfragen an Port 80 auf den lokalen Port 8080 um. (Verwendet die NAT-Tabelle)

Masquerading für interne Netzwerke (NAT)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ändert die Quell-IP für den Datenverkehr aus dem internen Netzwerk, wenn er über die externe Schnittstelle (z. B. eth0) ausgeht. (Verwendet die NAT-Tabelle)

Installation

iptables ist auf den meisten Linux-Distributionen standardmäßig installiert. Wenn es nicht installiert ist, können Sie es mit den folgenden Befehlen installieren.

Debian/Ubuntu

sudo apt update
sudo apt install iptables

CentOS/RHEL/Fedora

sudo dnf install iptables

Tipps & Hinweise

iptables-Regeln können nach einem Systemneustart verloren gehen. Daher ist es wichtig zu wissen, wie Regeln dauerhaft gespeichert werden. Achten Sie auch auf die Reihenfolge der Regeln und die Standardrichtlinien.

Regeln dauerhaft speichern

iptables-Regeln sind standardmäßig flüchtig und müssen gespeichert werden, damit sie nach einem Neustart erhalten bleiben. Die empfohlene Methode variiert je nach Distribution.

  • **Debian/Ubuntu**: Installieren Sie `sudo apt install iptables-persistent` und speichern Sie die Regeln mit dem Befehl `sudo netfilter-persistent save`. Die Regeln werden in `/etc/iptables/rules.v4` und `/etc/iptables/rules.v6` gespeichert.
  • **CentOS/RHEL/Fedora**: Installieren Sie `sudo dnf install iptables-services`, aktivieren Sie den Dienst mit `sudo systemctl enable iptables && sudo systemctl start iptables` und speichern Sie die Regeln mit dem Befehl `sudo iptables-save > /etc/sysconfig/iptables`.
  • **Allgemeine Methode**: Speichern Sie die Regeln mit `sudo iptables-save > /pfad/zu/rules.v4` in einer Datei und erstellen Sie ein Skript, das diese Datei beim Booten mit `sudo iptables-restore < /pfad/zu/rules.v4` lädt.

Wichtigkeit der Regelreihenfolge

iptables-Regeln werden in einer Kette von oben nach unten sequenziell angewendet. Wenn ein Paket mit einer bestimmten Regel übereinstimmt, wird die Aktion dieser Regel ausgeführt und nachfolgende Regeln werden nicht mehr geprüft. Daher ist es wichtig, spezifischere Regeln (z. B. Blockieren einer bestimmten IP) über allgemeinere Regeln (z. B. Zulassen von HTTP) zu platzieren.

Vorsicht bei der Festlegung der Standardrichtlinie

Seien Sie sehr vorsichtig, wenn Sie die Standardrichtlinie einer Kette festlegen (z. B. `iptables -P INPUT DROP`). Bevor Sie die Standardrichtlinie auf DROP ändern, müssen Sie zuerst Zulassungsregeln für wesentliche Dienste wie SSH-Verbindungen hinzufügen. Andernfalls können alle Netzwerkverbindungen zum System blockiert werden, was den Zugriff unmöglich macht.

Umstellung auf nftables

Neuere Linux-Distributionen verwenden oft `nftables` als primäres Firewall-Framework anstelle von iptables. `nftables` integriert die Funktionen von iptables und bietet eine verbesserte Syntax. Der Befehl `iptables` kann intern als Kompatibilitätsschicht fungieren, die `nftables` verwendet. Daher ist es ratsam, das Standard-Firewall-Tool Ihres Systems zu überprüfen.


Gleiche Kategorie Befehle