Linux als Perimeter-Firewall

Network Address Translation

Bei NAT gaukelt der Router den Gegenstellen im Internet vor, dass allein er der Absender aller aus dem lokalen Netz stammenden Daten ist. Dazu setzt er seine ihm vom Provider zugeteilte dynamische IP-Adresse als Absenderangabe in jedes ins Internet gehende Datenpaket ein.

Damit die von dort zurück kommenden Antworten auch wieder den richtigen Rechner im LAN erreichen, muss also bei eintreffenden Paketen erst die richtige Empfängeradresse gesetzt werden. Anderenfalls würde der Router die Pakete lokal bearbeiten, anstatt sie wie gewünscht an den Empfänger im lokalen Netz weiter zu leiten.

Es sind also je nach Ziel der Daten zwei unterschiedliche Arbeitsschritte erforderlich: Bei eintreffenden Daten muss die Zieladresse auf den korrekten Empfänger umgestellt werden, bevor entschieden wird, ob das Paket für den lokalen Rechner bestimmt ist. Bei ausgehenden Paketen ist nach allen Verarbeitungsschritten die Absender-Adresse auf die des Routers zu setzen.

Damit auch auf diese Verarbeitungsschritte Zugriff besteht, bietet iptables neben den Ketten der Standardtabelle zusätzlich die Filter der Tabelle nat, die neben den Chains Input, Out und Forward noch die beiden Regelketten Prerouting und Postrouting enthält.