Unbefugter Zugriff und das Kompromittieren von Servern sind ernste Bedrohungen. Deshalb sollten Sie eine Firewall als Teil Ihrer Netzwerksicherheitsstrategie einsetzen. Der sichere Umgang mit Iptables-Regeln gehört zu den wichtigsten Maßnahmen, um diese Risiken auf Ihren Linux-Systemen zu reduzieren. Dieses Tutorial führt Sie in grundlegende Firewall-Konzepte ein, etwa das Anzeigen von Regeln mit iptables show rules und das Entfernen von Regeln mit iptables rules remove, Ubuntuund zeigt Ihnen einfache Befehle, um diese Aufgaben umzusetzen. Bevor wir besprechen, wie Sie Iptables-Regeln auflisten oder löschen, klären wir zunächst: Was sind Iptables-Regeln, und wozu werden sie verwendet?
- Was ist Iptables?
- Ein vollständiger Leitfaden zu Iptables in Ubuntu
- Iptables-Regeln entfernen
- Wie setzt man alle Regeln zurück, löscht alle Chains und akzeptiert den gesamten Traffic?
- Wie richtet man iptables in Ubuntu ein?
- Wie unterscheidet sich iptables von firewalld?
- Fazit: iptables-Regeln anzeigen
- Häufig gestellte Fragen
Was ist Iptables?
iptables ist ein Kommandozeilen-Firewall-Tool, das Traffic über Policy-Chains zulässt oder blockiert. Wenn auf Ihrem System eine Verbindung aufgebaut werden soll, durchsucht iptables die Regelliste nach einem passenden Eintrag und unterstützt Sie so zuverlässig bei der Netzwerksicherheit. Wird kein passender Eintrag gefunden, greift die Standardaktion.
iptables ist auf nahezu jeder Linux-Distribution vorinstalliert. Mit folgendem Befehl können Sie es aktualisieren oder installieren:
sudo apt-get install iptables
Wozu wird Iptables verwendet?
Als Kommandozeilen-Firewall für Linux ermöglicht iptables Systemadministratoren, ein- und ausgehenden Traffic über konfigurierbare Tabellenregeln zu steuern. iptables verwendet Tabellen mit Chains, die integrierte oder benutzerdefinierte Regeln enthalten.
Wie im vorherigen Abschnitt beschrieben, spielt iptables in der Netzwerksicherheit der meisten Linux-Systeme eine zentrale Rolle. Der restliche Artikel konzentriert sich auf die Verwaltung von iptables-Regeln: wie man sie anzeigt, auflistet und entfernt.
Konkret behandelt dieser Artikel die wichtigsten iptables-Aufgaben: Regeln auflisten, Paket- und Byte-Zähler zurücksetzen, iptables-Regeln entfernen, Chains leeren sowie alle Chains löschen und den gesamten Traffic akzeptieren.
Ein vollständiger Leitfaden zu Iptables in Ubuntu
Bevor Sie mit der Anzeige von iptables-Regeln beginnen, stellen Sie sicher, dass Sie einen Linux-Server mit installiertem iptables-Befehl verwenden. Außerdem benötigen Sie sudo-Rechte. Achten Sie beim Arbeiten mit Firewalls darauf, sich nicht selbst auszusperren, indem Sie SSH-Traffic blockieren (standardmäßig Port 22). Verlieren Sie den Zugriff aufgrund Ihrer Firewall-Einstellungen, müssen Sie möglicherweise über eine Out-of-Band-Konsole eine Verbindung herstellen, um das Problem zu beheben.
Mehr dazu: Den SSH-Port in Linux ändern: Schritt-für-Schritt-Anleitung
Regeln nach Spezifikation auflisten
Sie können Ihre aktiven iptables-Regeln als Tabelle oder als eine Liste von Regelspezifikationen. Beide Methoden liefern im Wesentlichen dieselben Informationen, nur in unterschiedlichen Formaten. Um alle Regeln der aktiven iptables als Spezifikation aufzulisten, führen Sie den iptables-Befehl mit der -S-Option:
sudo iptables -S
Nach der Ausführung dieses iptables-Befehls zum Anzeigen der Regeln erhalten Sie eine Ausgabe wie diese:

Eine bestimmte Chain auflisten
Wenn Sie die Ausgabe von iptables auf eine bestimmte Chain wie INPUT, OUTPUT oder TCPbeschränken möchten, können Sie den Chain-Namen direkt nach der -S-Option angeben. Der folgende Befehl zeigt beispielsweise die Regeln der TCP-Chain:
sudo iptables -S TCP

Wie bereits erwähnt, gibt es noch eine weitere Möglichkeit, iptables-Regeln anzuzeigen: als Tabelle. Im Folgenden gehen wir auf diese Methode ein.
Regeln als Tabellen anzeigen
Die tabellarische Darstellung der iptables-Regeln erleichtert den Vergleich einzelner Regeln. Führen Sie dazu den folgenden Befehl mit der -L-Option aus, um alle aktiven Regeln in einer Tabelle auszugeben:
sudo iptables -L
Dieser Befehl zeigt alle aktuellen Regeln, nach Chains sortiert. Sie können die Ausgabe auf eine bestimmte Chain wie INPUT, OUTPUT oder TCP einschränken, indem Sie den Chain-Namen direkt nach der -L-Option angeben. Das folgende Beispiel begrenzt die Ausgabe auf die INPUT-Chain:
sudo iptables -L INPUT

Die erste Zeile der obigen Ausgabe zeigt den Chain-Namen (hier: INPUT) und die zugehörige Standardrichtlinie (DROP). Die folgende Zeile enthält die Spaltenüberschriften der Tabelle sowie die Regeln der Chain. Wir gehen sie nacheinander durch:
- Target: Entspricht ein Paket der Regel, legt der Target fest, was damit geschehen soll. Ein Paket kann akzeptiert, verworfen, protokolliert oder zur weiteren Prüfung an eine andere Chain weitergeleitet werden.
- prot: Das Protokoll (z. B. TCP, udp, ICMP oder all)
- opt: Gibt IP-Optionen an (selten verwendet)
- source: Zeigt die Quell-IP-Adresse bzw. das Quellsubnetz des Datenverkehrs
- destination: Zeigt die Ziel-IP-Adresse bzw. das Zielsubnetz des Datenverkehrs
Die Spalte ohne Bezeichnung enthält Regeloptionen, die in keiner der vorherigen Spalten erfasst sind. Das können unter anderem Quell- und Zielports oder der Verbindungsstatus eines Pakets sein.
Mehr dazu: OpenVPN auf VPS installieren – OpenVPN-Client einrichten 🔑
Paketanzahl und Gesamtgröße anzeigen
Beim Auflisten von iptables-Regeln lässt sich auch die Anzahl der Pakete sowie deren Gesamtgröße in Bytes anzeigen, die auf eine bestimmte Regel zutreffen. Das ist hilfreich, um nachzuvollziehen, welche Regeln tatsächlich greifen. Verwenden Sie dazu die -L und -v-Optionen zusammen, um dies zu erreichen dies.
Hier ist ein Beispiel, in dem wir die INPUT-Kette erneut mit der Option -v verwenden:
sudo iptables -L INPUT -v

Die Liste enthält jetzt zwei zusätzliche Spalten: pkts und bytes. Wir haben verschiedene Methoden kennengelernt, um alle iptables-Regeln anzuzeigen. Jetzt ist es an der Zeit, Paketanzahl und Gesamtgröße zurückzusetzen.
Paketanzahl und Gesamtgröße zurücksetzen
Mit der Option -Z können Sie die Paket- und Byte-Zähler Ihrer Regeln auf null setzen. Die Zähler werden auch bei einem Neustart zurückgesetzt, was hilfreich ist, wenn Sie prüfen möchten, ob der Server neuen Traffic empfängt, der Ihren bestehenden Regeln entspricht.
Mit der Option -Z allein setzen Sie die Zähler aller Chains und Regeln zurück:
sudo iptables -Z
Um die Zähler aller Regeln einer bestimmten Chain zurückzusetzen, verwenden Sie die Option -Z zusammen mit dem Chain-Namen. Der folgende Befehl setzt beispielsweise die Zähler der INPUT-Chain zurück:
sudo iptables -Z INPUT
Um die Zähler einer einzelnen Regel zurückzusetzen, geben Sie den Chain-Namen und die Regelnummer genau an. Der folgende Befehl setzt beispielsweise die Zähler der ersten Regel in der INPUT-Chain zurück:
sudo iptables -Z INPUT 1
Neben den Befehlen zum Anzeigen aller iptables-Regeln und dem Zurücksetzen der Paket- und Byte-Zähler ist es sinnvoll zu wissen, wie man eine iptables-Regel entfernt.
Mehr dazu: So installieren Sie einen PPTP VPN-Server auf Ihrem VPS
Iptables-Regeln entfernen
Es gibt mehrere Befehle, um iptables-Regeln zu entfernen oder alle Regeln einer Chain zu löschen. Hier stellen wir diese Methoden vor:
Regeln nach Spezifikation entfernen
Eine Möglichkeit, iptables-Regeln zu entfernen, ist die Angabe der Regelspezifikation. Dabei führen Sie den iptables-Befehl mit der Option -D und der Regelspezifikation aus. Als Hilfe können Sie die Ausgabe von iptables -S nutzen.
Um beispielsweise die Regel zu löschen, die ungültige eingehende Pakete verwirft (-A INPUT -m conntrack –ctstate INVALID -j DROP), führen Sie den folgenden Befehl aus:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Beachten Sie, dass die Option -A die Position der Regel zum Erstellungszeitpunkt angibt und hier weggelassen werden muss.
Regeln nach Chain und Nummer entfernen
Eine weitere Methode zum Entfernen von iptables-Regeln ist die Angabe von Chain und Zeilennummer. Mit dem folgenden Befehl zeigen Sie die Regeln im Tabellenformat an und fügen die Option –line-numbers:
sudo iptables -L --line-numbers

Nach der Ausführung dieses Befehls hat jede iptables-Regel eine Zeilennummer, die in der Spalte num angezeigt wird.
Wenn Sie wissen, welche Regel Sie löschen möchten, merken Sie sich die zugehörige Chain und Zeilennummer. Verwenden Sie den Befehl iptables -D zusammen mit der Chain und der Regelnummer. Wenn Sie zum Beispiel die INPUT-Regel löschen möchten, die ungültige Pakete verwirft, sehen Sie, dass es sich um Regel 3 der INPUT-Chain handelt. Führen Sie dann diesen Befehl aus:
sudo iptables -D INPUT 3
Wie leert man Chains?
Es gibt eine Möglichkeit, alle iptables-Regeln einer Chain auf einmal zu entfernen. Diesen Vorgang nennt man Chain leeren (Flushing). Im Folgenden zeigen wir die verschiedenen Methoden dafür. Beachten Sie dabei: Wenn Sie eine Chain mit der Standardrichtlinie "drop" oder "deny" leeren, riskieren Sie, sich über SSH vom Server auszusperren. In diesem Fall müssten Sie sich über die Konsole verbinden, um den Zugriff wiederherzustellen.
Eine einzelne Chain leeren
Um eine bestimmte Chain zu leeren, also alle Regeln darin zu löschen, können Sie den Befehl -F oder die gleichwertige Option –flush zusammen mit dem Namen der gewünschten Chain verwenden. Möchten Sie zum Beispiel alle Regeln der INPUT-Chain entfernen, führen Sie einfach folgenden Befehl aus:
sudo iptables -F INPUT
Alle Chains leeren
Um alle Chains zu leeren, verwenden Sie die Option -F oder die gleichwertige Option –flush ohne weitere Argumente:
sudo iptables -F
Wie setzt man alle Regeln zurück, löscht alle Chains und akzeptiert den gesamten Traffic?
Im nächsten Schritt erklären wir, wie Sie alle Firewall-Regeln, Tabellen und Chains zurücksetzen und den gesamten Netzwerkverkehr zulassen. Beachten Sie, dass dabei die Firewall vollständig deaktiviert wird. Folgen Sie diesem Abschnitt daher nur, wenn Sie Ihre Firewall-Konfiguration von Grund auf neu aufsetzen möchten.
Setzen Sie zunächst die Standardrichtlinien jeder eingebauten Chain auf ACCEPT. Das ist wichtig, damit Sie sich nicht über SSH vom Server aussperren:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Leeren Sie anschließend die nat- und mangle-Tabellen, leeren Sie alle Chains (-F)und löschen Sie alle nicht standardmäßigen Chains (-X) wie folgt:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Nach Ausführen dieser Befehle lässt die Firewall den gesamten Netzwerkverkehr durch. Wenn Sie Ihre Regeln jetzt auflisten, werden keine angezeigt - es verbleiben nur die drei Standard-Chains INPUT, FORWARD und OUTPUT.
Wie richtet man iptables in Ubuntu ein?
Wie bei jeder Firewall werden iptables-Regeln in der Reihenfolge verarbeitet, in der sie in der jeweiligen Chain aufgelistet sind. Daher müssen die Regeln in der richtigen Reihenfolge gesetzt werden. Neue Regeln werden beim Anhängen ans Ende der Liste gesetzt. Um eine Regel an einer bestimmten Position einzufügen, verwenden Sie iptables -I <index> -command. Die <index> steht für die Position, an der die Regel eingefügt werden soll. Mit folgendem Befehl können Sie die passende Indexnummer ermitteln:
sudo iptables -L --line-numbers
Die Zahl am Anfang jeder Regelzeile gibt die Position in der Chain an. Um eine neue Regel vor einer bestehenden Regel einzufügen, verwenden Sie die Indexnummer dieser Regel. Wenn Sie zum Beispiel eine Regel ganz an den Anfang der Chain setzen möchten, verwenden Sie folgenden Befehl mit dem Index 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Wie unterscheidet sich iptables von firewalld?
Sowohl iptables als auch firewalld sind bewährte Werkzeuge zur Verwaltung von Firewalls auf verschiedenen Linux-Systemen, die speziell für die Paketfilterung (statische Filterung) ausgelegt sind. Paketfilterung ist eine Firewall-Strategie, mit der Benutzer den Zugriff auf ein bestimmtes Netzwerk kontrollieren können, indem sie ein- und ausgehende Datenpakete steuern. Pakete werden entweder durchgelassen oder blockiert - basierend auf vordefinierten Firewall-Regeln zu Quell- und Zielprotokollen, Ports sowie IP-Adressen. Diese Regeln bieten effektive Sicherheitsmechanismen und machen die Paketfilterung zu einer zuverlässigen Schutzmaßnahme gegen Geräte, die von außerhalb des lokalen Netzwerks (LAN) auf das System zugreifen.
Wichtig zu wissen: firewalld wurde ursprünglich entwickelt, um die Verwaltung von iptables zu vereinfachen und die Bedienung für den Nutzer zugänglicher zu machen. Mit diesem Hintergrund schauen wir uns beide Tools genauer im Vergleich an.
iptables vs firewalld: Systemkonfiguration
Firewalld und iptables verwenden unterschiedliche Konfigurationen und Standardspeicherorte. Bei iptables erfordert jede Änderung, dass alle bestehenden Regeln verworfen und neu eingelesen werden – dafür ist ein Neustart des Systems nötig. Firewalld hingegen erstellt die Regeln nicht neu: Es werden nur die tatsächlichen Unterschiede und Anpassungen auf die vorhandenen Regeln angewendet, sodass Änderungen sofort zur Laufzeit wirksam werden.
iptables vs firewalld: Benutzeroberfläche
Firewalld bietet eine grafische Benutzeroberfläche (GUI), während iptables auf eine Kommandozeilenschnittstelle (CLI) setzt. Der direkte Zugriff auf die Linux-Kernel-Firewallregeln über iptables kann dabei für manche Nutzer eine Hürde darstellen, weshalb firewalld oft die einfachere Wahl ist. Ein Vorteil von iptables: Durch die kurzen Befehle sind die Reaktionszeiten geringer. Letztlich haben beide Tools ihre Stärken. Verwende das, mit dem du besser zurechtkommst.
Fazit: iptables-Regeln anzeigen
Iptables ist ein äußerst flexibles Firewall-Tool, das speziell für Linux-Betriebssysteme entwickelt wurde. Ob Einsteiger oder erfahrener Systemadministrator – iptables-Regeln bieten für jeden einen praktischen Nutzen. Dieser Artikel behandelt grundlegende Befehle für dieses Firewall-Tool, darunter das Anzeigen und Entfernen von iptables-Regeln, um einen kompakten Überblick über die Linux-Funktionen zu geben. Außerdem können Sie unsere Linux VPS Hosting-Lösungen um das volle Potenzial dieses Betriebssystems auszuschöpfen. Bei Cloudzy bieten wir verschiedene KVM-basierte Linux VPS Pläne an, die sich für zahlreiche Anwendungsfälle eignen - etwa Web-Hosting, das Deployen einer Web-App oder das Einrichten einer Umgebung zum Entwickeln, Testen und Automatisieren von Code.
Häufig gestellte Fragen
Wie listet man alle Linux iptables-Regeln nach Spezifikation auf?
Wenn du alle aktuell aktiven iptables-Regeln nach ihrer Spezifikation oder Funktion auflisten möchtest, kannst du den iptables-Befehl gefolgt von dem -S Flag. Achten Sie auf die Verwendung des sudo Schlüsselwort in diesem Fall:
sudo iptables -S
Wie entfernt man iptables-Regeln?
Um eine bestimmte Chain zu entfernen – und damit alle darin enthaltenen Regeln zu löschen – müssen Sie Verwende die Option -F oder –flush zusammen mit dem Namen der Chain. Angenommen, wir möchten alle Regeln in der OUTPUT-Kette löschen – wie geht das? Ganz einfach, folgenden Befehl ausführen:
sudo iptables -F OUTPUT
Wie funktioniert iptables in Ubuntu?
Die iptables-Firewall vergleicht den Netzwerkverkehr mit einem Regelwerk. Jede Regel legt fest, welche Paketeigenschaften zutreffen müssen und welche Aktion bei einer Übereinstimmung ausgeführt wird. Für die Trefferkriterien stehen dabei zahlreiche Optionen zur Verfügung.
Gelten iptables-Regeln sofort? Warum?
Ja, iptables-Regeln greifen sofort; da dein Skript Regeln an die INPUT- und OUTPUT-Chains anhängt, werden sie am Ende dieser Chains eingefügt.