Zurück zum Blog

Auflisten und Löschen von Iptables-Firewall-Regeln

Auflisten und Löschen von Iptables-Firewall-Regeln

Iptables ist die primäre Firewall, die standardmäßig mit den meisten Linux-Distributionen ausgeliefert wird. Sie ist für die Netzwerksicherheit zuständig. Sie funktioniert, indem sie die Datenpakete mit einem Satz von Regeln abgleicht und das System anweist, eine Verbindung gemäß den Regeln zu akzeptieren, abzulehnen oder weiterzuleiten. In diesem Tutorial zeigen wir Ihnen, wie Sie Regeln auflisten und löschen, Paket- und Byte-Zähler überprüfen und löschen sowie Chains leeren. Bereit? Fangen wir an!

Voraussetzungen

Bevor wir mit dem Tutorial beginnen, möchten wir etwas klarstellen. Alle in dieser Anleitung gezeigten Tipps und Tricks werden auf einer separaten virtuellen Maschine durchgeführt. Es ist eine gute Idee, wenn Sie das auch tun, da dies jede Möglichkeit ausschließt, Ihr System in ein völliges Chaos zu stürzen. Erst wenn Sie diese Prozesse beherrschen, sollten Sie versuchen, sie in realen Situationen anzuwenden.

Für dieses Tutorial verwenden wir Ubuntu, um alle Schritte zu demonstrieren. Sie sollten jedoch unabhängig von der Distribution auf ähnliche Weise funktionieren.

Regeln auflisten

Regeln nach Spezifikation auflisten

Werfen wir zunächst einen Blick auf alle aktiven Regeln nach Spezifikation. Führen Sie den folgenden Befehl aus:

iptables list

Wenn Sie bereits mit der Erstellung von iptables-Regeln gearbeitet haben, ist Ihnen vielleicht die Ähnlichkeit aufgefallen. Die Ausgaben ähneln den Befehlen, mit denen sie erstellt wurden, mit Ausnahme des Teils „iptables“. Sie weisen auch eine ähnliche Struktur wie die Konfigurationsdateien für iptables-Regeln auf.

Spezifische Chain auflisten

Versuchen wir etwas Präziseres. Anstatt alle iptables-Regeln auszugeben, weisen Sie iptables an, die Regeln einer bestimmten Chain auszugeben. Zum Beispiel TCP, INPUT, OUTPUT usw. Geben Sie dazu den Namen der Chain nach dem Flag „-S“ an:

list specific chain

Regeln als Tabellen auflisten

Die Tabellenansicht ist nützlich, wenn Sie verschiedene Regeln vergleichen möchten. Verwenden Sie das Flag „-L“, um iptables anzuweisen, alle aktiven Regeln in einem Tabellenformat auszugeben:

list rules as table iptables

Die Ausgabe enthält alle aktuellen Regeln, sortiert nach der Chain. Ähnlich wie im vorherigen Abschnitt ist es auch möglich, die Listenausgabe nach einer bestimmten Chain wie INPUT, TCP und OUTPUT usw. zu filtern. Geben Sie dazu die Chain nach dem Flag „-L“ an:

filter by chain

Lassen Sie uns die Ausgabe ein wenig aufschlüsseln. In unserem Fall wird die Ausgabe aufgrund der Regeln etwas unübersichtlich erscheinen. Die erste Zeile der Ausgabe deklariert den Namen der Chain (INPUT) mit ihrer Standard-Policy (DROP). Die nächste Zeile gibt die Kopfzeilen der Tabellenspalten an. Der Rest sind die Regeln der Chain. Werfen wir einen Blick darauf, was die Kopfzeilen bedeuten:

  • target: Wenn ein Paket mit der Regel übereinstimmt, definiert dieser Abschnitt, welche Aktion ausgeführt werden soll. Dies kann das Akzeptieren des Pakets, das Verwerfen, das Protokollieren oder das Senden an eine andere Chain sein.
  • prot: Definiert das Protokoll, zum Beispiel udp, tcp, icmp oder all.
  • opt: Diese Spalte zeigt IP-Optionen an. Sie wird selten verwendet.
  • source: Herkunft des Pakets (IP-Adresse oder Subnetz). Der Wert kann spezifisch oder „anywhere“ sein.
  • destination: Ziel des Pakets (IP-Adresse oder Subnetz). Der Wert kann spezifisch oder „anywhere“ sein.

Wie Sie vielleicht bemerkt haben, ist die letzte Spalte nicht beschriftet. Das liegt daran, dass sie zur Angabe der Optionen einer Regel dient. Sie enthält alle Teile der Regel, die nicht in die vorherigen Felder gepasst haben. Sie kann alles enthalten, von den Quell-/Zielports bis hin zum Verbindungsstatus des Pakets usw.

Paketzähler und Gesamtgröße

Paket- und Byte-Zähler löschen

Wenn wir die iptables-Regeln auflisten, können wir auch die Anzahl der Pakete und die Gesamtgröße der Pakete in Byte überprüfen, die mit der jeweiligen Regel übereingestimmt haben. Dies ist eine nützliche Metrik, wenn Sie sich ein grobes Bild davon machen wollen, welche Regeln auf Pakete angewendet werden.

In diesem Beispiel verwenden wir die INPUT-Chain. Fügen Sie dieses Mal das Flag „-v“ hinzu, das für den Verbose-Modus steht:

package and byte counters iptables

Sie werden feststellen, dass die Tabellenausgabe nun zwei zusätzliche Felder enthält: pkts und bytes.

Paketzähler und Gesamtgröße zurücksetzen

In manchen Situationen möchten Sie vielleicht die zuvor demonstrierten Zähler zurücksetzen. Wenn das System neu gestartet wird, werden die Zähler automatisch gelöscht. Sie können ein Zurücksetzen auch manuell erzwingen. Wir verwenden das Flag „-Z“, um die Paketzahlen und die Gesamtgröße zurückzusetzen:

Reset packet counts and aggregate size

Beachten Sie, dass dieser Befehl die Zähler aller Chains zurücksetzt. Wie bei anderen Befehlen ist es möglich, den Zähler für bestimmte Chains zurückzusetzen. Der nächste Befehl setzt beispielsweise die Zähler für die INPUT-Chain zurück:

reset particular counter

Es ist möglich, das Zurücksetzen des Zählers präziser zu gestalten. Sie können den Zähler für eine bestimmte Regel unter einer bestimmten Chain zurücksetzen. Fügen Sie dazu die Regelnummer unter dem Chain-Namen hinzu:

reset specific rule

Regeln löschen

Regeln nach Spezifikation löschen

Es gibt mehrere Möglichkeiten, iptables-Regeln zu löschen. Die erste Methode zum Löschen von Regeln ist die Angabe der Regelspezifikation. Zum Löschen verwenden wir das Flag „-D“, gefolgt von der Regelspezifikation:

Delete rules by specification

Wenn Sie zuvor bereits eine iptables-Regel hinzugefügt haben, werden Sie die Ähnlichkeit bemerken. Das Einzige, was sich hier geändert hat, ist das Flag „-D“ anstelle des Flags „-A“.

Regeln nach Chain und Nummer löschen

Das Löschen von Regeln nach ihrer Spezifikation erfordert etwas mehr Aufwand, oder? Was wäre, wenn wir sie löschen könnten, ohne uns an die Regelspezifikation erinnern zu müssen? Löschen wir die Regeln nach ihrer Chain und Nummer! Im Vergleich zur ersten Methode (Löschen nach Spezifikation) ist diese relativ einfacher, da Sie nicht die gesamte Spezifikation parat haben müssen.

Diese Methode erfordert die Chain und die Zeilennummer der Zielregel. Woher bekommen wir die Zeilennummer? Führen Sie den folgenden Befehl aus, um dies zu ermitteln:

Delete rules by chain and number - get line number

Sie erhalten eine große Ausgabe mit allen Regeln und ihren Zeilennummern. Um die Ausgabe einzugrenzen, verwenden Sie den Chain-Namen nach dem Flag „-L“:

Delete rules by chain and number - filter

In der Ausgabe werden Sie die zusätzliche Spalte „num“ bemerken. Sie gibt die Zeilennummer für jede Regel an. Sobald wir die Zielnummer ermittelt haben, führen Sie den Löschvorgang durch:

delete iptables rule

Chains leeren

Was bedeutet das Leeren (Flushing) einer Chain im Fall von iptables? Es ist der Vorgang des Löschens aller Regeln unter einer bestimmten Chain. Wenn Sie Regeln in großen Mengen löschen müssen, können Sie diese Methode verwenden. Vor dem Leeren der Chain empfehlen wir dringend, ein Backup der vorhandenen Regeln mit iptables-save zu erstellen. Dies ist ein integriertes iptables-Tool, das alle aktuellen Chains und Regeln ausgibt. Die Ausgabe kann in eine Textdatei exportiert werden:

iptables rules export

Eine einzelne Chain leeren

Sehen wir uns an, wie man eine Chain leert. Verwenden Sie das Flag „-F“, gefolgt von der Ziel-Chain:

flush a single chain

Alle Chains leeren

Bevor Sie alle Chains leeren, stellen Sie sicher, dass Sie verstehen, was Sie tun. Dadurch werden alle Regeln für die iptables-Firewall gelöscht. Sie sollten vorher unbedingt ein Backup der iptables-Regeln erstellen.

Bereit? Leeren Sie alle iptables-Chains, indem Sie den folgenden Befehl ausführen:

flush all changes

Regeln leeren, Chains löschen und alle akzeptieren

Das Ausführen der in diesem Abschnitt beschriebenen Schritte deaktiviert die Firewall effektiv und ermöglicht uneingeschränkten Netzwerkverkehr. Ähnlich wie im vorherigen Abschnitt empfehlen wir, vor dem Fortfahren ein iptables-Backup zu erstellen. Zuerst ändern wir die Standardrichtlinie (Default Policy) jeder der integrierten Chains auf ACCEPT. Dadurch wird sichergestellt, dass iptables Sie nicht über SSH von Ihrem Server aussperrt:

Flush rules, delete chains and accept all

Leeren Sie nun die nat- und mangle-Tabellen:

 flush nat and mangle tables

 mangle tables

Leeren Sie alle Chains und löschen Sie alle nicht standardmäßigen Chains:

Flush all the chains

 delete all the non-default chains

Sehen wir uns als Nächstes das Ergebnis an:

iptables result

Fazit

Iptables ist eine leistungsstarke Firewall. Hoffentlich war diese Anleitung hilfreich, um Ihnen zu zeigen, wie Sie Iptables-Firewall-Regeln auflisten und löschen. Und vergessen Sie nicht, diese zu üben, bevor Sie sie in der Praxis anwenden.

Viel Spaß beim Computing!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.