Besser Filtern mit IP Tables

Netfilter, der Firewall-Code des Linux-Kernels 2.4, bietet die Möglichkeit, die Firewall mit Filtermodulen zu ergänzen, die weit über die Leistungsfähigkeit traditioneller Paketfilter hinausgehen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 13 Min.
Von
  • Daniel Bachfeld
Inhaltsverzeichnis

Der Linux-Kernel 2.4 enthält mit Netfilter viele Funktionen zur Manipulation von IP-Paketen. Darauf setzen die IP Tables auf, ein System zum Filtern von IP-Paketen, das der Anwender mit dem Programm iptables steuert. Auch Masquerading beziehungsweise Network Address Translation (NAT) ist möglich, um den Linux-Rechner zum Router und Internet-Gateway zu machen.

Die INPUT-Chain endet beim lokalen Prozess, die OUTPUT-Chain beginnt dort. In der PREROUTING- ,POSTROUTING- und FORWARD-Chain gehen die Pakete an lokalen Diensten vorbei.

Der Paketfilter besteht aus einem Satz von Regeln. Jede dieser Regeln zeichnet sich durch zwei Eigenschaften aus: Wann sie zur Anwendung kommt und was sie machen soll. Diese Eigenschaften bildet die Netfilter-Architektur auf Chains und Tables ab. Die Chain zu der eine Regel gehört, bestimmt, wann sie zum Einsatz kommt. Je nachdem, woher ein Paket stammt und wohin es soll, durchläuft es verschiedene Zustände im Kernel, die Netfilter in fünf vordefinierten Chains verwaltet: PREROUTING, INPUT, OUTPUT, FORWARD und POSTROUTING. In jeder dieser Chains kann man Regeln definieren.

Verschiedene Arten von Aktionen fasst Netfilter hingegen in den Tabellen NAT, MANGLE und FILTER zusammen. Diese definieren, was mit dem Paket gemacht wird: NAT-Regeln ändern die Quell- oder Zieladressen der IP-Pakete (Network Address Translation), während man mit mangle (fast) beliebige Modifikationen vornehmen kann. Hauptsächlich hat der Firewall-Administrator jedoch mit der Filter-Tabelle zu tun, die darüber entscheidet, ob ein Paket passieren darf oder verworfen wird. Das Programm iptables arbeitet deshalb standardmäßig mit der Tabelle filter, -- die anderen lassen sich über die Option -t anwählen.

Filter-Regeln sind dabei nur innerhalb von INPUT, OUTPUT und FORWARD möglich, "mangeln" kann man überall und NAT erfolgt ausschließlich beim PRE- und POSTROUTING. Anders als bei ipchains durchlaufen übrigens Pakete von oder zu lokalen Prozessen nur die INPUT- beziehungsweise OUTPUT-Filter; weiterzuleitende Pakete filtert nur die FORWARD-Chain.