iptables - Die Firewall des Kernels 2.4
Auswahl von Paketen
-p [!] <protokoll> | Spezifiziert ein zu testendes Protokoll (tcp, udp, icmp) bzw. einen numerischen Wert gemäß /etc/protocols. |
-s [!] <adresse>[/<maske>] | Angabe einer Quell-IP Adresse wahlweise mit Maske. Die Maske kann als Anzahl der gültigen Bits (0-32) oder als Subnetzmaske der Form 255.255.255.0 o.ä. angegeben werden. |
-d [!] <adresse>[/<maske] | Angabe der Ziel-IP Adresse. Syntax genau wie bei -s |
-i [!] <interface> | Spezifiziert die Schnittstelle, durch die das Paket gekommen ist. Endet der Name mit einem "+", so werden alle Schnittstellen, die mit dem vorangehenden Namen beginnen, getestet. |
-o [!] <interface> | Spezifiziert die Schnittstelle, durch die das Paket gehen wird. Endet der Name mit einem "+", so werden alle Schnittstellen, die mit dem vorangehenden Namen beginnen, getestet. |
[!] -f | Fragmente von IP-Paketen treffen. Da es sich um Fragmente von IP-Paketen handelt, gibt es keine Möglichkeit, deren Quell- oder Ziel-IP oder -Port zu bestimmen. Deswegen greifen andere Bedingungen nicht. |
Aktionen bei erfolgreicher Maskierung:
-j <ziel> | Bestimmt, was nach Erfüllung der vorher spezifizierten Regel passieren soll. Fehlt dieser Parameter, hat die zugrunde liegende Regel keine Auswirkung. | |
ACCEPT | Paket annehmen. | |
DROP | Paket vernichten, keine Benachrichtigung des Absenders. | |
QUEUE | Einreihen des Pakets in eine Warteschlange für einen Benutzerprozeß. | |
RETURN | diese Chain verlassen und beim Aufrufer fortsetzen bzw. die Policy der Chain ausführen. | |
zusätzlich als Module realisiert (extra Hilfe mit -h): | ||
LOG | Paketdaten in das System-Log eintragen, Regeln in dieser Chain normal fortsetzen. | |
MARK | Das Paket mit einer optional anzugebenden Zahl markieren. Dies kann in nachfolgenden Regeln getestet werden. | |
MASQUERADE | Dieses geroutete Paket bekommt als Absende-Adresse die IP-Nummer und einen beliebigen Port des ausgehenden Interfaces. Damit lassen sich bei Wählverbindungen mit nur einer IP-Adresse mehrere Rechner über einen Router an nur eine Wählverbindung koppeln. Beim Löschen des Interfaces mit der "Leih-IP Nummer" werden alle gemerkten Daten vergessen. | |
REJECT | Ähnlich DROP wird das Paket abgewiesen, jedoch erhält der Absender eine Antwort auf das Paket. | |
TCPMSS | Bietet spezielle Optionen, die Datenmenge je Paket zu beschränken. Leider fand ich keine vernünftige Doku dazu. | |
TOS | Mit diesem Ziel läßt sich das 8-bit breite Type of Service Feld des IP-Headers setzen. | |
MIRROR | Experimentelles Ziel, das Quelle und Ziel vertauscht. Damit scannt ein "Bösewicht" sich selbst. | |
REDIRECT | Dieses Ziel sorgt dafür, daß das Paket an den lokale Rechner zugestellt wird. Hiermit lassen sich Pakete an "Phantasie-Ziele" abfangen und lokal behandeln. | |
SNAT | Dieses Ziel ändert die Quell-IP Adresse (und evtl. den Port) eines Paketes. Alle nachfolgenden Pakete dieser Verbindung werden genauso geändert. Dieses Ziel erfüllt fast die gleiche Aufgabe wie MASQUERADE, doch sollte SNAT bei festen IP-Nummern verwendet werden. | |
DNAT | Mit diesem Ziel wird die Ziel-IP Adresse eines Paketes und allen nachfolgenden Paketen dieser Verbindung geändert. |
Welche Ziele sind wo erlaubt?
Das wohl Verwirrendste an iptables ist, sich aus jeder Menge Fließtext zusammenzureimen, welche "table" aus welchen "chains" besteht und welche "targets" nun gerade in welcher Kombination aus "table" und "chain" erlaubt bzw. möglich sind. Ich habe versucht, alle Kombinationen zu finden, die sinnvoll sind, bzw. im Fließtext der man-pages herauszulesen waren. Sollte diese Tabelle nicht ganz korrekt sein, bin ich dankbar für eine kurze Nachricht.
Die mit (*) gekennzeichneten "targets" sind jeweils die default-Option.
filter | nat | mangle | |
INPUT | ACCEPT (*)<br />DROP<br />QUEUE<br />RETURN<br />LOG<br />REJECT<br />MIRROR | - | - |
PREROUTING | - | ACCEPT (*)<br />MIRROR<br />DNAT<br />REDIRECT | ACCEPT (*)<br />MARK<br />TOS |
FORWARD | ACCEPT (*)<br />DROP<br />QUEUE<br />RETURN<br />LOG<br />REJECT<br />MIRROR | - | - |
POSTROUTING | - | ACCEPT (*)<br />SNAT<br />MASQUERADE | - |
OUTPUT | ACCEPT (*)<br />DROP<br />QUEUE<br />RETURN<br />LOG<br />REJECT | ACCEPT (*)<br />DNAT<br />REDIRECT | ACCEPT (*)<br />MARK<br />TOS |