In diesem Kapitel werden die Grundlagen der Paketfilterung beschrieben, wobei die Unterschiede zwischen ipchains und iptables definiert und die verschiedenen, mit den iptables-Befehlen zur Verf�gung stehenden Optionen erkl�rt werden. Es wird au�erdem gezeigt, wie Filterungsregeln zwischen den Bootvorg�ngen des Systems erhalten bleiben.
18.1. Paket-Filterung
Der Linux-Kernel enth�lt die integrierte F�higkeit, Pakete zu filtern und erm�glicht einigen der Pakete vom System empfangen oder weitergeleitet zu werden, w�hrend andere gestoppt werden. Der Netzfilter des 2.4-Kernels enth�lt 3 eingebaute Tabellen oder Regellisten. Dabei handelt es sich um Folgende:
filter — Die Standardtabelle zum Verwalten von Netzwerkpaketen.
nat — Mithilfe dieser Tabelle werden Pakete ge�ndert, die eine neue Verbindung herstellen, wie f�r Network Address Translation (NAT) verwendet.
mangle — Diese Tabelle wird f�r spezielle Arten der Paket�nderung verwendet.
| Tipp |
---|
| Zus�tzlich zu diesen eingebauten Tabellen, k�nnen spezifische Tabellen erstellt und im Verzeichnis /lib/modules/<kernel-version>/kernel/net/ipv4/netfilter/ gespeichert werden ( wobei <kernel-version> der Version des Kernel entspricht. |
Jede dieser Tabellen verf�gt �ber eine Gruppe integrierter Chains (Ketten), die den Aktionen entsprechen, die vom Netzfilter f�r das Paket durchgef�hrt werden.
Die f�r die filter-Tabelle integrierten Chains sind folgende:
INPUT — Gilt f�r �ber eine Netzwerkschnittstelle empfangene Pakete.
OUTPUT — Gilt f�r Pakete, die �ber dieselbe Netzwerkschnittstelle versendet werden, die die Pakete empfing.
FORWARD — Gilt f�r Pakete, die auf einer Netzwerkschnittstelle empfangen, aber �ber eine andere versendet werden.
Die f�r die nat-Tabelle integrierten Chains sind folgende:
PREROUTING — �ndert �ber eine Netzwerkschnittstelle empfangene Pakete beim Empfang.
OUTPUT — Modifiziert lokal-generierte Netzwerk-Pakete, bevor diese gesendet werden.
POSTROUTING — �ndert Pakete vor dem Senden �ber eine Netzwerkschnittstelle.
Die f�r die mangle-Tabelle integrierten Chains sind folgende:
INPUT — �ndert f�r den Host bestimmte Netzwerk-Pakete.
OUTPUT — Modifiziert lokal-generierte Netzwerk-Pakete, bevor diese gesendet werden.
FORWARD — �ndert �ber den Host gesendete Netzwerk-Pakete.
PREROUTING — �ndert �ber eine Netzwerkschnittstelle empfangene Pakete vor dem Routen.
POSTROUTING — �ndert Pakete vor dem Senden �ber eine Netzwerkschnittstelle.
Jedes Netzwerk-Paket, das von einem Linux System empfangen oder ausgesendet wird, wird von zumindest einer Tabelle beansprucht. Ein Paket kann allerdings in allen Tabellen auf mehrere Regeln hin �berpr�ft werden, bevor es am Ende des Ablaufs auftritt. Struktur und Zweck dieser Regeln k�nnen unterschiedlich sein, sie versuchen jedoch normalerweise ein Paket, das von einer oder an eine IP-Adresse bzw. mehrere IP-Adressen gesendet wurde, zu identifizieren, wenn dieses ein bestimmtes Protokoll und einen bestimmten Netzwerkdienst benutzt.
| Anmerkung |
---|
| Benutzen Sie keine v�llig qualifizierten Domain-Namen in Firewall-Regeln, die in /etc/sysconfig/iptables- oder /etc/sysconfig/ip6tables-Dateien gespeichert sind. Im folgenden Beispiel: iptables -A FORWARD -s example.com -i eth0 -j DROP example.com ist ung�ltig, da der iptables-Dienst vor jeglichen mit DNS in Beziehung stehenden Diensten zur Bootzeit startet, was zu einem Fehler f�hrt. Nur IP-Adressen sind beim Erstellen von Firewall-Regeln g�ltig. |
Unabh�ngig von ihrem Ziel sind Pakete, sobald sie einer bestimmten Regel einer Tabelle entsprechen, f�r ein bestimmtes Ziel bzw. f�r eine auf sie anzuwendende Aktion bestimmt. Wenn in der Regel f�r das Ziel eines entsprechenden Pakets ein ACCEPT (AKZEPTIEREN) angegeben ist, �berspringt das Paket die restlichen Regelkontrollen und darf somit seinen Weg in Zielrichtung fortsetzen. Wenn aber in einer Regel f�r das Ziel DROP (AUSLASSEN) angegeben ist, wird das Paket "ausgelassen", d.h. das Paket erh�lt keinen Zugriff auf das System, und es wird nichts an den Host-Rechner zur�ckgesendet, von dem das Paket stammt. Wenn eine Regel QUEUE (WARTESCHLANGE) als Ziel angibt, wird das Paket zum Benutzerplatz geleitet. Wenn in einer Regel f�r das Ziel REJECT (ABLEHNEN) angegeben ist, wird das Paket ausgelassen und als Fehlerpaket wieder zu seinem Ursprungsort zur�ckgeschickt.
Jede Chain hat eine Default-Policy zu ACCEPT, DROP, REJECT, oder QUEUE. Wenn das Paket keiner der Regeln in der Chain entspricht, wird auf dieses Paket die standardm��ige Policy angewandt.
Der Befehl iptables erm�glicht Ihnen diese Tabellen zu konfigurieren, und, falls n�tig, neue Tabellen zu erzeugen.