Netfilter/iptables
Iptables ist ein Userpace Programm zu Einstellen des Paketfilters im Linux-Kernel. Der Filter-Code im Kernel heißt netfilter. Zusätzlich übernimmt dieser dort die Aufgabe des Network Address Translation. Im Gegensatz zu seinem Vorgänger ist netfilter verbindungsoriniert und kann mit Protokollen wie FTP umgehen. Iptables fügt diverse Filter in den Kernel ein, löscht andere und verwaltet bestehende Filterregeln.
Geschichte/Herkunft
Linux hatte ungefähr seit der Version 1.0 einen Paketfilter. Dieser stammte zunächst von BSD ab und wurde in der Linuxversion 2.0 erweitert. Rusty Russell überarbeite den Paketfilter und stellte diesen als ipchains zur Verfügung. Gegen 1999 wurde der Kernel und damit auch ipchains komplett überarbeitet. Aus ipchains ging dann iptables hervor. Dies wird vom Netfilter-Team gepflegt und weiter entwickelt.
Aufbau
Im Kernel gibt es drei sog. Ketten (engl. chains) namens
- INPUT
- OUTPUT
- FORWARD
Wenn ein IP-Paket von außen eintrifft, wird es an die INPUT-Kette weitergegeben. Dort können nun diverse Regeln stehen, die festlegen, was mit dem Paket zu tun ist. Falls dieses Paket gar nicht für diesen Rechner bestimmt ist, wird es evtl. an die FORWARD-Kette weiter gegeben. Ein Paket, das vom eigenen Rechner kommt, wird an die OUTPUT-Regel weiter geleitet.
Man kann mittels iptables festlegen, was nun mit diesen einzelnen Paketen passieren soll. Dabei gibt es folgende Optionen:
- "ACCEPT"
- Das Paket wird akzeptiert
- "DROP"
- Das Paket wird verworfen. Für den Sender des Paketes sieht es so aus, als wäre es niemals angekommen.
- "REJECT"
- (bei Kerneln unter 2.4.x "DENY") Das Paket wird, wie unter DROP, nicht akzeptiert. Der Unterschied ist nur, dass hier der Sender benachrichtigt wird, dass sein Paket verworfen wurde.
Stelle dir vor, du möchtest alles, was von der IP-Adresse 1.2.3.4 kommt verwerfen. Dann müsstest du folgende Regeln angeben:
iptables -A INPUT -s 1.2.3.4 -j DROP
Mit iptables kann man die IP-Adressen mehrerer Computer maskieren, so dass diese gemeinsam über einen Computer Zugang zum Internet erlangen können.
Durch den modularen Aufbau lassen sich sehr komplexe Regeln erstellen, die höchsten Anforderungen genügen. Aus diesem Grund ist iptables in vielen Firmennetzwerken im Einsatz.
Weblinks
Ausführliche Dokumentation zu iptables und NAT ist auf der NetFilter Homepage erhältlich.