Firewalls und Connection Tracking

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • nft list ruleset — Firewallregeln und Richtlinien lesen.
  • conntrack -L — gespeicherten Flow-Zustand untersuchen.

Befehle und Optionen

Befehl oder Option Bedeutung
sudo nft -a list ruleset Das Ruleset mit numerischen Regel-Handles auflisten; sudo liefert Administratorrechte.
sudo conntrack -L -p tcp Verfolgte Flows auflisten, beschränkt auf TCP.

-a ergänzt Handles, keine Paketaufzeichnung. -L listet Zustand, statt ihn zu löschen. Die Firewallrichtlinie bleibt unverändert.

Die entscheidenden Konzepte

1. Eine Firewall bewertet Verkehr an einer bestimmten Stelle

Ein Paketfilter prüft etwa Adressen, Ports, Protokoll, Schnittstelle oder verfolgten Zustand und fällt eine Entscheidung. Unter Linux betrifft input lokal zugestellten Verkehr, output lokal erzeugten und forward Verkehr durch die Maschine hindurch.

Ein geöffneter Input-Port erlaubt nicht automatisch Weiterleitung durch einen Router. Bestimme zuerst den Paketweg und prüfe dann die dort geltenden Regeln.

2. Zustand verbindet Pakete zu einem Flow

Connection Tracking ordnet Pakete einer Kommunikation zu. new kennzeichnet den Beginn eines verfolgten Flows. established betrifft Flows, in denen Verkehr beider Richtungen gesehen wurde. related umfasst erkannte zugehörige Nachrichten, etwa manche ICMP-Fehler.

Das sind Firewallzustände, keine Anmeldezustände der Anwendung. Auch UDP-Flows werden verfolgt. Eine Established-Regel kann Antworten zulassen, ohne jeden Clientport einzeln freizugeben.

3. Reihenfolge und Standardrichtlinien zählen

Regeln werden in Chains ausgewertet. Eine abschließende Entscheidung beendet diese Chain-Verarbeitung; nicht abschließende Aktionen wie Zähler können die Auswertung fortsetzen. Die Policy einer Base-Chain behandelt Pakete, die ohne andere Entscheidung ihr Ende erreichen.

Bei nftables umgeht Accept in einer Base-Chain nicht zwingend spätere Chains oder Hooks. Ein späteres Drop kann weiterhin blockieren. Eine einzelne scheinbare Freigabe erklärt deshalb nicht die gesamte Richtlinie.

4. Erlaubte Pakete erzeugen keinen Dienst

Eine Freigabe startet keinen Listener, repariert kein Routing, authentifiziert keinen Benutzer und garantiert keine gesunde Anwendung. Ebenso identifiziert ein Timeout keine bestimmte blockierende Firewall.

Kombiniere Regeln, Zähler, Zustand und Endpunktbeobachtungen. Steigende Zähler zeigen Treffer an einer Regel, keine erfolgreichen Anwendungstransaktionen. Weitere Geräte oder Cloud-Kontrollen können außerhalb des sichtbaren Gast-Rulesets eingreifen.

Ein kleines Beispiel

Optional: Führe die lesenden Befehle auf einer Linux-Lab-VM aus, deren Firewallzustand du einsehen darfst.

sudo nft -a list ruleset
sudo conntrack -L -p tcp

Lies Tabellenfamilie (ip, ip6, inet), Hook, Priorität, Policy und Reihenfolge. Handles identifizieren Regeln und sind keine Prioritäten. Vorhandene Paket- und Bytezähler summieren seit Initialisierung oder Zurücksetzen.

Conntrack zeigt Protokoll, Timeout in Sekunden, Zustand und Endpunkte beider Richtungen. Ein Eintrag belegt einen gespeicherten Flow, keine Anwendungsantwort. Leere Listen können korrekt sein. Fehlende Rechte oder Kernelunterstützung sind davon zu unterscheiden.

Das sind lokale Beobachtungen. Es werden keine Regeln gelöscht oder Verbindungen unterbrochen. Aufräumen ist nicht erforderlich.

Merke dir: Bestimme den Paketweg und verfolge die gesamte Richtlinie. Netzwerkzustand beweist keinen Anwendungserfolg.