Iptables Allgemein
Die Verwendung von Firewalls mit iptables
- Der Linux-Kernel enthält fortgeschrittene Tools für Packet-Filtering
- Der Prozess für die Kontrolle von Netzwerkpaketen bei ihrem Versuch einzudringen
- Durch, in oder aus dem System.
- Iptables ist eine Stateful Firewall im Gegensatz zu Ihrem Vorgänger ipchains
- Iptables beinhaltet das englische Wort tables, was für Tabellen steht.
- Genauso kann man es sich auch vorstellen, denn in seinen 3 Tabellen sammeln sich die Ketten und dort die Regeln.
- Dort werden sie kontrolliert, manipuliert oder extrahiert.
Tabellen
- iptables besitzt standardmäßig drei Tabellen: mangle, nat und filter.
- mangle ermöglicht es dem Kernel, Daten im Paket-Header zu verändern.
- nat wird benutzt um interne und externe IP-Adressen zu übersetzen. Die IP und/oder der Port des Ziels oder der Quelle werden geändert.
- filter prüft alle für die Firewall ankommenden Pakete und entscheidet, ob sie durchgelassen oder geblockt werden.
Jede dieser Tabellen besitzt nun mehrere Ketten
- mangle (Paketmanipulationen): enthält alle Ketten
- nat (Network Adress Translation): enthält die Ketten PREROUTING, OUTPUT und POSTROUTING
- filter (Paketfilter): enthält die Ketten FORWARD, INPUT und OUTPUT
Ketten
Die Ketten sind eine Sammlung von Regeln. D.h., dass jede Kette mehrere Regeln besitzen kann um ein Paket durchzulassen oder zu blockieren. Es sind fünf Typen von Standardketten vorhanden. Manche dieser Ketten werden von allen Paketen und einige nur, je nachdem welches Ziel sie haben, durchlaufen. Man könnte auch sagen die Ketten unterscheiden wo welche Regeln angewendet werden. Die Regeln einer Kette werden nacheinander abgearbeitet und wenn eine zutrifft, ist die Bearbeitung in dieser Kette beendet (es gibt Ausnahmen):
- PREROUTING: alle Pakete kommen hier durch bevor eine Routing-Entscheidung getroffen wird
- FORWARD: für alle Pakete, die von der einen zu einer anderen Netzwerkschnittstelle weitergeleitet werden - also keine Pakete die an einen lokalen Dienst gerichtet sind
- INPUT: für Pakete die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen
- OUTPUT: für die über eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienst kommen
- POSTROUTING: alle Pakete kommen am Ende der Verarbeitung hier durch
Regeln
Mit einer Regel wird entschieden, was mit einem Paket passieren soll. Jede Regel besitzt bestimmte Parameter, nach denen sie überprüft, ob die Informationen eines Paketes auf sie zutreffen. Wenn die Parameter zutreffend sind, wird das Paket meist an ein neues Ziel verwiesen oder es wird eine Methode angewandt. Für die Bearbeitung der Pakete gibt es mehrere Ziele und Methoden. Häufig benutzte sind:
- ACCEPT: das Paket kann passieren
- REJECT: das Paket wird zurückgewiesen und ein Fehlerpaket wird gesendet
- LOG: schreibt einen Eintrag in die syslog
- DROP: das Paket wird ignoriert und keine Antwort gesendet
- REDIRECT: die Ziel-Adresse des Paketes wird hiermit so verändert, dass es zum lokalen Rechner gesendet wird
- MASQUERADE: die Quell-Adresse des Paketes wird durch die IP-Adresse der Schnittstelle ersetzt, auf dem es den Rechner verlässt
- SNAT
- DNAT
Funktion
- Somit funktioniert iptables wie eine Art Sammlung von Schablonen, die nacheinander auf ein Paket abgebildet werden und bei einem Treffer eine bestimmte Aktion auf das Paket ausführen.
- Falls keine der Schablonen passen sollte, wird eine Standard Aktion ausgeführt, die für alle Pakete gilt (Default Policy).
Konzept-Bild