Zum Lieferumfang eines jeden Linux-Kernels gehört auch eine recht mächtige Firewall. Ihre Einrichtung über die üblichen Kommandozeilenwerkzeuge wie iptables gestaltet sich jedoch recht kompliziert und fehleranfällig. Darüber hinaus kann sie nicht gezielt einzelne Programme in ihre Schranken verweisen und vergisst nach einem Systemneustart alle im laufenden Betrieb hinzugefügten Filterregeln.
Wer schließlich noch ihren Funktionsumfang der Firewall über spezielle Kernelmodule aufbohren möchte, den zwingt sie mitunter zu einem Neustart und kappt dabei alle aktuellen Verbindungen – was nur selten erwünscht sein dürfte. Aus diesen Gründen setzen viele Distributionen mittlerweile eigene Firewalls ein. Ubuntu-Nutzer dürfen sich beispielsweise an der "Uncomplicated Firewall" Ufw samt grafischem Frontend Gufw erfreuen [1].
Fedora bot bislang nur eine grafische Benutzeroberfläche für Iptables. Das soll sich jedoch schon im November mit Fedora 18 ändern: Es bekommt mit dem Firewall-Daemon oder kurz Firewalld ebenfalls eine eigene Firewall spendiert. Wie deren Name schon andeutet, läuft sie ständig als Dienst im Hintergrund. Filterregeln dürfen Sie jederzeit hinzufügen und entfernen, ohne die Firewall neu starten zu müssen. Das ist besonders nützlich, wenn andere Dienste während des Betriebs dynamisch Regeln ergänzen (müssen). Zu solchen Gesellen zählt beispielsweise Libvirtd, der virtuelle Maschinen verwaltet [2].
Darüber hinaus möchte Firewalld die Einrichtung vereinfachen. Dank der sogenannten Services müssen Sie in der Regel nur noch den Namen des Dienstes nennen, um die passenden Ports zu öffnen oder zu schließen. Darüber hinaus kann Firewalld zwischen verschiedenen Aufenthaltsorten unterscheiden und beispielsweise am Flughafen die Schotten dichtmachen, im Heimnetz jedoch den Zugriff auf den Dateiserver gewähren.
Firewall im Kernel
Die im Kernel enthaltene Firewall besteht aus mehreren Teilen. Die Basis bildet ein Netfilter genanntes Modul. Es bietet Funktionen an, über die andere Kernel-(Helfer-)Module die ein- und ausgehenden Netzwerkpakete untersuchen und filtern können. Dazu zählt beispielsweise das Modul Iptables, das wiederum vom gleichnamigen Kommandozeilenprogramm die Filter-Regeln erhält. Auch Firewalld nutzt das Netfilter-Angebot und ersetzt mit seinen eigenen Funktionen auf einen Schlag die vier Module Iptables, Ip6tables, Arptables sowie Ebtables (Abbildung 1). Firewalld selbst ist übrigens komplett in Python geschrieben – für eine Firewall recht ungewöhnlich.
Feuer-Dämon
Firewalld tauchte erstmals in den Repositories von Fedora 15 auf. Auch im aktuellen F17 müssen Sie Firewalld noch explizit nachinstallieren, erst ab Fedora 18 soll der Dienst dann standardmäßig zum Einsatz kommen. Den Quellcode aller bislang veröffentlichten Firewalld-Versionen finden Sie bei Fedorahosted.org [3]. Er sollte sich auch auf anderen Distributionen installieren lassen – vorausgesetzt, dort kollidiert Firewalld nicht mit einer bereits laufenden Firewall.
Aber auch unter Fedora müssen Sie sich entscheiden: Wer Iptables und Co. nutzt, schiebt die Regeln an Firewalld vorbei. Das ergibt im Extremfall einen inkonsistenten Regel-Mischmasch. Tabu bleibt somit auch die grafische Benutzeroberfläche System-config-firewall, die auf dem Desktop schlicht als Firewall firmiert (unter Gnome 3 steckt sie unter Anwendungen | Sonstige, Abbildung 2). Derzeit lassen sich Firewalld und die Iptables-Werkzeuge noch gleichzeitig installieren. Zukünftig soll sich der Benutzer bei der Installation, dem ersten Systemstart oder der ersten Benutzung des Netzwerks für eine der beiden Varianten entscheiden können beziehungsweise müssen.
Brandstifter
Wenn Sie Firewalld ausprobieren möchten, installieren Sie unter Fedora 17 die Pakete firewalld und firewall-applet samt Abhängigkeiten. Das Firewall-Applet zeigt später wie in Abbildung 3 den Status der Firewall an. Nach der Installation der Pakete bietet Fedora an, das Applet zu starten, was Sie per Ausführen annehmen.
Da Firewalld noch nicht läuft, blinkt das Applet nur einmal kurz auf und verschwindet umgehend wieder. Daher schließen Sie den Paketmanager, öffnen ein Terminalfenster, melden sich dort als Benutzer root an und starten schließlich über den Aufruf systemctl start firewalld.service den Dienst Firewalld (Abbildung 4). Jetzt sollte auch das Applet wieder auftauchen und eine zu Firewalld aufgebaute Verbindung melden.
Um Ports für den Netzwerkverkehr zu öffnen, gilt es irgendwie mit dem laufenden Firewalld Verbindung aufzunehmen. Dem Willen der Entwickler zufolge soll das primär über das Kommunikationssystem D-Bus geschehen. Über dieses lässt sich Firewalld steuern und nach dem aktuellen Befinden der Firewall befragen. Die Kommunikation über den D-Bus hat den Vorteil, dass auf diese Weise der Berechtigungsdienst PolicyKit [4] den Zugriff auf die Firewall reglementieren kann. Zur D-Bus-Schnittstelle und ihrer Verwendung gibt es allerdings derzeit keine weiteren Informationen. Die entsprechende Manpage existierte zu Redaktionsschluss schlichtweg noch nicht, und auch die Firewalld-Seiten im Fedora-Wiki [5] schweigen sich hierüber aus.
Glücklicherweise liegt Firewalld noch das Kommandozeilenwerkzeug firewall-cmd bei, mit dem sich alle administrativen Aufgaben vornehmen lassen. Um mit ihm bequem Löcher in die Firewall bohren zu können, müssen allerdings erst noch ein paar passende Firewalld-Services her.



