Neue Türpolitik Nftables
Total Page:16
File Type:pdf, Size:1020Kb
01/2014 Packet Filtering mit NFtables Know-how Neue Türpolitik NFtables 84 Seit knapp 13 Jahren macht IPtables den Türsteher für Linux und kontrolliert den Fluss der ein- und ausge- henden 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. Martin Loschwitz www.linux-magazin.de 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 einge- führte Filter stets das direkte Resultat ei- ner Unzufriedenheit mit der bestehenden Lösung war. Der Paketfilter IPchains bie- tet 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. © Wattana Tasanart, 123RF.com Tasanart, © Wattana Welche Netzwerkpakete rein und wieder raus durften, ließ sich noch einstellen, Firewalls sind keine Software, sondern Kernel, das die Entwickler seither konti- aber nach diversen fortgeschrittenen Fea- ein umfassendes Konzept – das beteuern nuierlich verbessert und funktional aus- tures suchten Administratoren damals jedenfalls die Konstrukteure von Sicher- gebaut haben. Bis heute bewährt sich vergeblich. heitslösungen immer wieder. Und ein IPtables als alleiniger Standardfilter für Der Einsatz von Konditionen blieb in gewichtiger Bestandteil dieses Konzepts Pakete unter Linux. der Ägide von IPfwadm beispielsweise sind die Paketfilter (Packet Filter): Das Mit der Linux-Version 3.13 könnte sich Wunschdenken – Konstrukte wie „Falls sind Werkzeuge, die es Administratoren jedoch eine Wachablösung anbahnen: ein Paket von der IP 192.168.0.1 kommt, ermöglichen, auf Kernelebene bestimm- Die Maintainer des Paketfilters NFtables springe zur Kette XYZ“ waren daher nicht ten Netzwerkpaketen den Zutritt zum [1] haben offiziell beantragt [2], ihre Lö- umsetzbar. Auch Quality of Service, also System zu erlauben oder zu verbieten, sung in den Mainline-Kernel aufzuneh- eine eingebaute Kontrolle der Bandbreite, was sie gewissermaßen zu Türstehern men. Zwar steht der Erfolg dieser Bestre- hatte IPfwadm schlicht nicht implemen- von Linux macht. bung bei Redaktionsschluss noch nicht tiert. Und wer etwas anderes als TCP, fest, weil der Release-Zyklus für Linux UDP oder ICMP filtern wollte, der stand Startschuss: Kernel 3.13 3.13 noch nicht begonnen hat. Doch dass auf verlorenem Posten. Linux-Chef Torvalds dem Ansinnen Folge Der Nachfolger IPchains räumte mit die- Jene Tools haben eine wechselhafte leisten könnte, gilt als ziemlich wahr- sen Schwierigkeiten auf, doch waren die Geschichte hinter sich – zwischen den scheinlich. Sollte NFtables den Einzug Entwickler und Admins auch mit diesem Linux-Versionen 2.0 und 2.4 wechselte in den Kernel schaffen, dürfte IPtables Produkt nicht wirklich zufrieden. Wie der Kernel gleich zweimal das Standard- keine glorreiche Zukunft mehr haben: IPfwadm beherrschte auch IPchains di- werkzeug zum Filtern von Paketen: Kam Nicht nur kann NFtables die bisherige verse Funktionen nicht, die einen ordent- in Linux 2.0 noch IPfwadm zum Einsatz, Lösung vollständig ersetzen, es hat sogar lichen Packet Filter ausmachen: So arbei- setzte Version 2.2 lieber auf IPchains. In deutlich mehr drauf. tete die Lösung durchgehend stateless Linux 2.4 hielt dann schließlich IPtables Frappierend ist, dass selbst viele ein- (Details im Kasten „Stateful und state- (Abbildungen 1 und 2) Einzug in den gefleischte Admins noch nichts von less“), beherrschte nur eingeschränktes 01/2014 Know-how D-NAT (das so genannte Masquerading) und kämpfte mit einer ganzen Reihe wei- terer Unzulänglichkeiten. Defizite von IPtables NFtables Auch die aktuelle Filter-Implementierung hat Nachteile. Aus den Diskussionen der 85 Entwickler in den letzten Jahren kristal- lisierten sich gleich mehrere Probleme heraus. Derzeit besteht der auf IPtables aufbauende Stack aus vier Teilen: www.linux-magazin.de n IPtables selbst fungiert als Stateful- Abbildung 1: IPtables heißt schon seit Jahren der Standardpaketfilter von Linux. Aus einer tabellarischen Filter für Verbindungen nach dem Anordnung wie dieser generiert IPtables … IPv4-Standard. n IP6tables tut das Gleiche wie IPtables, allerdings für IPv6-Verbindungen. n ARPtables setzt im Stack weiter unten an und filtert bereits auf ARP-Ebene unerwünschte Pakete. n EBtables kümmert sich als Sonderfall um Pakete, die Linux über Netzwerk- brücken (Bridges) empfängt und die so dem normalen IPtables entgehen. Der Haken an der Sache: Es gibt kaum IPtables-Bestandteile, die sich von den vier Abteilungen gemeinsam nutzen las- Abbildung 2: … im Stile eines Stateful-Filters Regeln, aufgrund derer er dann Netzwerkpaketen eine Aufent- sen. Vielmehr existieren jeweils eigene haltsgenehmigung erteilt oder eben nicht. Unterbereiche im Code, die weitgehend Duplikate sind. Einige Admins werfen teile beseitigen und den Linux-Kernel mit lerteam auch Pablo Neira Ayuso, doch IPtables zudem eine miserable Usability einem Framework zum Filtern von Pake- dann tat sich ein paar Jahre lang gar und ein mangelhaftes Error Reporting ten ausstatten, das den Anforderungen nichts: 2009 verschwand die Projektweb- vor. Da es aber der Standard im Kernel der Zeit besser gewachsen ist als IPtables seite und die meisten Interessenten hiel- ist, haben sich die meisten mit der Situ- (siehe Kasten „Unter der Haube“). ten die Lösung bereits für tot. ation arrangiert. Ins Leben gerufen hat das NFtables- Zu Unrecht wie sich herausstellte, denn Projekt ursprünglich Patrick McHardy: im Oktober 2012 zeigte sich, dass mit Scheintot Bereits im September 2008 stellte er es NFtables noch zu rechnen war. Der auf dem Netfilter-Workshop in Paris der zweite Core-Entwickler Ayuso stellte auf Genau hier bringt sich NFtables ins Spiel: Öffentlichkeit vor (Abbildung 3). Zwi- der Netfilter-Mailingliste [3] einen Ent- Die Lösung möchte die erwähnten Nach- schenzeitlich gesellte sich zum Entwick- wurf für einen NFtables-Layer vor, der Stateful und stateless Im Bereich der Paketfilter unterscheidet man zelne Paket im Grunde nur eine Hopp-oder- Einerseits ist das vorteilhaft, weil der Paketfil- üblicherweise die Stateful- von den Stateless- Top-Entscheidung nötig ist, arbeiten Stateless- ter so viel flexibler funktioniert, andererseits Filtern. Beide Systeme haben ihre spezifischen Firewalls sehr genügsam. Der Nachteil liegt birgt eine solche Lösung auch einen unschönen Vor- und Nachteile. Eine Stateless-Firewall darin, dass solche Lösungen keine Einzelver- Nachteil: Stateful-Filter sind in aller Regel sehr zeichnet sich dadurch aus, dass sie eingehende bindungen verfolgen können und daher nicht viel anspruchsvoller bei den Systemressourcen Netzwerkpakete einzeln analysiert und für je- wissen, welche Pakete zu einer aktiven Verbin- als die Stateless-Systeme. des Paket auf der Grundlage der festgelegten dung gehören. Trotzdem haben sich in den vergangenen Jah- Regeln eine Entscheidung trifft – aber ohne ren die Stateful-Tools in der IT weitgehend Zustandsvolle Feuerwände den Zusammenhang zwischen den einzelnen durchgesetzt. Angesichts der immer größer Paketen zu beachten. Bei einer Stateless- Stateful-Firewalls kennen hingegen den Zu- werdenden Hardwarekapazitäten und der im- Firewall merkt die Firewall sich also nicht, ob sammenhang zwischen einzelnen Paketen mer sparsamer arbeitenden Programme scheint eingehende Pakete möglicherweise zu einer und ordnen die eingehenden Pakete den vom es keinen Grund zu geben, die Ressourcen des bereits aufgebauten und legitimen Verbindung System bereits aufgebauten Verbindungen zu. Paketfilters zu beschneiden. Die Vorteile eines gehören. Das geschieht mittels diverser Memory-Mecha- gezielten Filterns nach Verbindungen überwie- Der Vorteil einer solchen Lösung ist der sehr nismen innerhalb des Paketfilters selbst, der gen für die meisten Admins offenbar den pro- geringe Ressourcenbedarf: Weil für jedes ein- einen Überblick aller Systemverbindungen hat. duzierten Overhead. 01/2014 Know-how Programme Rule- Sets NFtables NFtables- Parser Compiler Tool »nftables« Userspace Kernel- NF-Lib 86 Kommunikation Abbildung 4: Hilfswerkzeuge wie Firehol sorgen dafür, dass Benutzer die kompli- NFtables- Filter- Netlink- zierte Syntax von IPtables etwas einfacher nutzen können. Core Engine Interface www.linux-magazin.de lichen Funktionen Freilich ist NFtables kein Quasi-Nachbau »INPUT« »OUTPUT« Netfilter- ... anbieten. von KVM & Co., der neue Paketfilter be- API »FORWARD« Kernelspace Das ist gut, weil nötigt deren Funktionen größtenteils gar Network- Systemcalls NFtables auf diese nicht. Aber das Grundprinzip ist dem der Stack Interfaces Netz Weise jede Menge gängigen Virtualisierer sehr ähnlich: Ein duplizierten Code Paket landet im Netzwerkstack, wo es Abbildung 3: Im Jahre 2009 stellte Patrick McHardy erstmals seine Ideen für vermeidet und die der Bytecode-Interpreter analysiert, um NFtables vor, eine neue Art von Paketfilter. Pflege des ganzen dann zu entscheiden, was mit dem Paket Projekts deutlich passieren soll. vollständige Kompatibilität zu IPtables erleichtert. Zugleich macht sich die Ver- Letztlich versprechen sich die Entwickler herstellt und dieses damit faktisch über- zahnung mit dem Netzwerkstack des Li- von NFtables dank der beschriebenen flüssig macht. Nach dem üblichen Hick- nux-Kernels auch in Sachen Performance Architektur massive