NAT

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • nft list ruleset — konfigurierte Übersetzungs- und Filterregeln untersuchen.
  • conntrack -L — aktuell verfolgte Flows untersuchen.

Befehle und Optionen

Befehl oder Option Bedeutung
sudo nft list ruleset Die nftables-Konfiguration mit Administratorrechten lesen.
sudo conntrack -L -p tcp Verfolgte TCP-Flows auflisten; -L bedeutet Liste und -p tcp wählt TCP.

Die Befehle sehen nur den Netzwerk-Namespace dieser Maschine, keine NAT-Übersetzung auf anderen Routern oder der Cloud-Plattform.

Die entscheidenden Konzepte

1. NAT schreibt Adressen an einer Grenze um

Network Address Translation (NAT) ändert IP-Adressen und manchmal Transportports beim Durchlaufen eines Geräts. Dadurch unterscheiden sich die auf beiden Seiten sichtbaren Adressen.

Mehrere private Clients können beispielsweise durch verschiedene übersetzte Ports eine gemeinsame ausgehende IPv4-Adresse nutzen. Der entfernte Dienst sieht die übersetzte Quelle; seine Logs identifizieren den internen Client daher nicht unbedingt.

2. Quell- und Zielübersetzung lösen unterschiedliche Aufgaben

SNAT ändert die Quelle, häufig für ausgehenden Verkehr. Masquerading leitet die Quelladresse von der Ausgangsschnittstelle ab. DNAT ändert das Ziel, häufig zur Weiterleitung einer eingehenden Adresse samt Port an einen internen Dienst.

Übersetzung ist nicht Routing. Das Paket benötigt weiterhin eine Route und eine Durchleitungserlaubnis. Eine Zieländerung kann die Routenwahl beeinflussen; eine Route erzeugt aber keine Übersetzung.

3. Zustand verbindet beide Richtungen

Bei gewöhnlichem zustandsbehaftetem NAT legt das erste Paket eine in Connection Tracking gespeicherte Zuordnung an. Spätere Pakete verwenden sie; passende Antworten werden zum ursprünglichen Endpunkt zurückübersetzt.

Zuordnungen haben eine Lebensdauer und verbrauchen Ressourcen. Inaktivitätsablauf, Porterschöpfung oder verlorener Zustand können gesunde Anwendungen stören. Auch UDP kann verfolgt werden, obwohl es keinen TCP-artigen Handshake besitzt.

4. Übersetzung ist keine Sicherheitsrichtlinie

NAT verändert Adressierung; eine Firewall entscheidet über erlaubten Verkehr. Eine ausgehende Zuordnung kann Antworten ermöglichen. Verborgene Adressen oder vorhandene Zuordnungen beweisen aber weder Autorisierung noch Verschlüsselung.

Vergleiche ursprüngliche und übersetzte Endpunkte sowie den Rückweg. Kläre auch, wo die Übersetzung stattfindet. Fehlende lokale NAT-Regeln in einer VM schließen ein übersetzendes vorgeschaltetes Gateway nicht aus.

Ein kleines Beispiel

Optional: Untersuche eine Linux-Lab-VM, deren Netzwerkkonfiguration du einsehen darfst. Es werden keine Regeln geändert.

sudo nft list ruleset
sudo conntrack -L -p tcp

Suche in nft nach snat, dnat oder masquerade und den zugehörigen Chains. Eine Regel zeigt beabsichtigtes Verhalten, keinen Nachweis für einen bestimmten Flow. Ein leeres Ruleset kann korrekt sein.

Conntrack beschreibt Original- und Antwortrichtung mit wiederholten Feldern src, dst, sport und dport. Vergleiche beide Paare: Bei Übersetzung sind sie möglicherweise nicht einfach vertauscht. Der Timeout ist die verbleibende Lebensdauer in Sekunden. Der TCP-Zustand beschreibt Transportverfolgung, keine Anwendungsgesundheit.

Keine Einträge können fehlenden passenden Verkehr oder fehlendes lokales Tracking bedeuten. Auch Kernelunterstützung kann fehlen. NAT an anderer Stelle ist damit nicht ausgeschlossen. Aufräumen ist nicht erforderlich.

Merke dir: NAT verändert Endpunktadressen. Connection Tracking speichert die Zuordnung; Routing und Filter gelten weiterhin.