Open Source im professionellen Einsatz
Linux-Magazin 01/2014
© Wattana Tasanart, 123RF.com

© Wattana Tasanart, 123RF.com

Packet Filtering mit NFtables

Neue Türpolitik

Seit knapp 13 Jahren macht IPtables den Türsteher für Linux und kontrolliert den Fluss der ein- und ausgehenden Netzwerkpakete mit Hilfe der Netfilter-Module. Mit dem anvisierten Einzug von NFtables in den Kernel bahnt sich jedoch eine Wachablösung an, die IPtables womöglich den Job kostet.

787

Firewalls sind keine Software, sondern ein umfassendes Konzept – das beteuern jedenfalls die Konstrukteure von Sicherheitslösungen immer wieder. Und ein gewichtiger Bestandteil dieses Konzepts sind die Paketfilter (Packet Filter): Das sind Werkzeuge, die es Administratoren ermöglichen, auf Kernelebene bestimmten Netzwerkpaketen den Zutritt zum System zu erlauben oder zu verbieten, was sie gewissermaßen zu Türstehern von Linux macht.

Startschuss: Kernel 3.13

Jene Tools haben eine wechselhafte Geschichte hinter sich – zwischen den Linux-Versionen 2.0 und 2.4 wechselte der Kernel gleich zweimal das Standardwerkzeug zum Filtern von Paketen: Kam in Linux 2.0 noch IPfwadm zum Einsatz, setzte Version 2.2 lieber auf IPchains. In Linux 2.4 hielt dann schließlich IPtables (Abbildungen 1 und 2) Einzug in den Kernel, das die Entwickler seither kontinuierlich verbessert und funktional ausgebaut haben. Bis heute bewährt sich IPtables als alleiniger Standardfilter für Pakete unter Linux.

Abbildung 1: IPtables heißt schon seit Jahren der Standardpaketfilter von Linux. Aus einer tabellarischen Anordnung wie dieser generiert IPtables …
Abbildung 2: … im Stile eines Stateful-Filters Regeln, aufgrund derer er dann Netzwerkpaketen eine Aufenthaltsgenehmigung erteilt oder eben nicht.

Mit der Linux-Version 3.13 könnte sich jedoch eine Wachablösung anbahnen: Die Maintainer des Paketfilters NFtables [1] haben offiziell beantragt [2], ihre Lösung in den Mainline-Kernel aufzunehmen. Zwar steht der Erfolg dieser Bestrebung bei Redaktionsschluss noch nicht fest, weil der Release-Zyklus für Linux 3.13 noch nicht begonnen hat. Doch dass Linux-Chef Torvalds dem Ansinnen Folge leisten könnte, gilt als ziemlich wahrscheinlich. Sollte NFtables den Einzug in den Kernel schaffen, dürfte IPtables keine glorreiche Zukunft mehr haben: Nicht nur kann NFtables die bisherige Lösung vollständig ersetzen, es hat sogar deutlich mehr drauf.

Frappierend ist, dass selbst viele eingefleischte Admins noch nichts von NFtables gehört haben. Dieser Artikel fragt darum, was die Software ausmacht und wieso sie besser als IPtables ist.

Revolution auf Raten

Ein Rückblick auf den Werdegang der diversen Paketfilter unter Linux führt schnell vor Augen, dass jeder neu eingeführte Filter stets das direkte Resultat einer Unzufriedenheit mit der bestehenden Lösung war. Der Paketfilter IPchains bietet sich dafür wunderbar als Beispiel an. Sein Vorgänger IPfwadm war im Grunde eine Portierung des IPfw-Werkzeugs aus dem BSD-Universum und verfügte nicht über besonders ausgefeilte Fähigkeiten. Welche Netzwerkpakete rein und wieder raus durften, ließ sich noch einstellen, aber nach diversen fortgeschrittenen Features suchten Administratoren damals vergeblich.

Der Einsatz von Konditionen blieb in der Ägide von IPfwadm beispielsweise Wunschdenken – Konstrukte wie "Falls ein Paket von der IP 192.168.0.1 kommt, springe zur Kette XYZ" waren daher nicht umsetzbar. Auch Quality of Service, also eine eingebaute Kontrolle der Bandbreite, hatte IPfwadm schlicht nicht implementiert. Und wer etwas anderes als TCP, UDP oder ICMP filtern wollte, der stand auf verlorenem Posten.

Der Nachfolger IPchains räumte mit diesen Schwierigkeiten auf, doch waren die Entwickler und Admins auch mit diesem Produkt nicht wirklich zufrieden. Wie IPfwadm beherrschte auch IPchains diverse Funktionen nicht, die einen ordentlichen Packet Filter ausmachen: So arbeitete die Lösung durchgehend stateless (Details im Kasten "Stateful und stateless"), beherrschte nur eingeschränktes D-NAT (das so genannte Masquerading) und kämpfte mit einer ganzen Reihe weiterer Unzulänglichkeiten.

Stateful und stateless

Im Bereich der Paketfilter unterscheidet man üblicherweise die Stateful- von den Stateless-Filtern. Beide Systeme haben ihre spezifischen Vor- und Nachteile. Eine Stateless-Firewall zeichnet sich dadurch aus, dass sie eingehende Netzwerkpakete einzeln analysiert und für jedes Paket auf der Grundlage der festgelegten Regeln eine Entscheidung trifft – aber ohne den Zusammenhang zwischen den einzelnen Paketen zu beachten. Bei einer Stateless-Firewall merkt die Firewall sich also nicht, ob eingehende Pakete möglicherweise zu einer bereits aufgebauten und legitimen Verbindung gehören.

Der Vorteil einer solchen Lösung ist der sehr geringe Ressourcenbedarf: Weil für jedes einzelne Paket im Grunde nur eine Hopp-oder-Top-Entscheidung nötig ist, arbeiten Stateless-Firewalls sehr genügsam. Der Nachteil liegt darin, dass solche Lösungen keine Einzelverbindungen verfolgen können und daher nicht wissen, welche Pakete zu einer aktiven Verbindung gehören.

Zustandsvolle Feuerwände

Stateful-Firewalls kennen hingegen den Zusammenhang zwischen einzelnen Paketen und ordnen die eingehenden Pakete den vom System bereits aufgebauten Verbindungen zu. Das geschieht mittels diverser Memory-Mechanismen innerhalb des Paketfilters selbst, der einen Überblick aller Systemverbindungen hat. Einerseits ist das vorteilhaft, weil der Paketfilter so viel flexibler funktioniert, andererseits birgt eine solche Lösung auch einen unschönen Nachteil: Stateful-Filter sind in aller Regel sehr viel anspruchsvoller bei den Systemressourcen als die Stateless-Systeme.

Trotzdem haben sich in den vergangenen Jahren die Stateful-Tools in der IT weitgehend durchgesetzt. Angesichts der immer größer werdenden Hardwarekapazitäten und der immer sparsamer arbeitenden Programme scheint es keinen Grund zu geben, die Ressourcen des Paketfilters zu beschneiden. Die Vorteile eines gezielten Filterns nach Verbindungen überwiegen für die meisten Admins offenbar den produzierten Overhead.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • NFtables landet in Linus' Kernel-Tree

    NFtables könnte in naher Zukunft IPtables als Standardpaketfilter für Linux ablösen. Nun ist der zugehörige Code in Linus' Hauptzweig gelandet.

  • Wiedergeborener Wächter

    Auch für einen weisen Hüter der Netzwerkeingänge ist es irgendwann an der Zeit, den Stab weiterzugeben. Das Netfilter-Team bereitet gerade den Firewall-Umstieg von IP-Tables zu NF-Tables vor. Der Kernel profitiert von schlankeren Strukturen, Anwender dürfen sich auf eine echte Filtersprache freuen.

  • Firewall-Nachfolger Nftables stellt sich dem Kernel vor

    Schon seit längerem diskutiert das Netfilter-Team über eine weitere Renovierung des Firewall-Codes im Linux-Kernel. Jetzt hat der Teamleiter Patrick McHardy die Ergebnisse monatelanger Arbeit unter dem Namen Nftables vorgestellt.

  • Debian Stretch ohne Secure Boot, mit NFtables

    Die Release von Debian 9 "Stretch" ist auf dem Weg. Secure Boot wird allerdings doch nicht in der neuen Version landen, dafür ist NFtables einsatzbereit.

  • In eigener Sache: Artikel-Bundle "Netzwerk total" für echte Profis

    Effiziente Netzwerke betreiben ist die Domäne von Linux schlechthin - da macht ihm kein anderes System etwas vor. Offen und pragmatisch, effizient und anpassbar sind seine Tools und Protokolle. Dieser Schwerpunkt widmet sich dem Klassiker und nimmt Neues und Nützliches unter die Lupe.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.