Firewall Builder (fwbuilder) kennt kein nftables und wird seit Jahren nicht weiterentwickelt. FirewallFabrik ist der moderne Nachfolger: ein kompletter Rewrite in Python und Qt6 mit nativer nftables-Unterstützung, nahtloser Migration bestehender .fwb-Dateien und einer GUI, die sich genauso anfühlt wie das Original.
Wer Firewalls zentral verwalten möchte, kennt vermutlich Firewall Builder (fwbuilder). Seit über 20 Jahren ermöglicht dieses Open-Source-Tool das komfortable Erstellen und Verwalten von Firewall-Regeln über eine grafische Oberfläche. Es ist plattformübergreifend einsetzbar und unterstützt unterschiedliche Zielsysteme wie iptables, pf oder Cisco PIX. Ursprünglich von NetCitadel entwickelt, hat fwbuilder vielen Administratoren über Jahre hinweg die tägliche Arbeit erleichtert.
Gleichzeitig ist die Zeit nicht stehen geblieben. Die bestehende Codebasis in C++ und Qt5 ist in die Jahre gekommen, und mit RHEL 10 steht ein Paradigmenwechsel an, der fwbuilder in seiner bisherigen Form an die Grenzen seiner Möglichkeiten bringt: iptables ist deprecated und wird nicht mehr weiterentwickelt.
Vor diesem Hintergrund haben wir in der Linuxfabrik FirewallFabrik ins Leben gerufen, den modernen Nachfolger von Firewall Builder. Ziel war es, das Beste von fwbuilder zu bewahren und gleichzeitig für die Zukunft gerüstet zu sein, insbesondere im Hinblick auf nftables.
In RHEL 9 hat Red Hat iptables sowie die zugehörigen Pakete iptables-nft und ipset als deprecated markiert. In RHEL 10 sind die Pakete zwar noch im AppStream verfügbar, jedoch hat Red Hat die zugehörigen Kernel-Module in das Paket kernel-modules-extra verschoben - sie werden also nicht mehr standardmässig installiert. Zudem ist iptables als unmaintained eingestuft und wird in einer zukünftigen RHEL-Version endgültig entfernt. Wer RHEL 10 oder darauf basierende Distributionen wie AlmaLinux oder Rocky Linux einsetzt, sollte daher zeitnah auf nftables oder firewalld mit nftables-Backend migrieren.
Das betrifft nicht nur einzelne Regeln auf einzelnen Servern. Besonders relevant ist diese Entwicklung für Umgebungen, in denen Dutzende oder Hunderte von Firewalls zentral verwaltet werden. Hier wurde Firewall Builder bisher häufig eingesetzt - und genau hier setzt FirewallFabrik an.
Firewall Builder selbst kennt kein nftables. Eine Portierung innerhalb der bestehenden C++-Codebasis wäre aufwendig gewesen und hätte langfristig wenig Zukunftssicherheit geboten. Aus diesem Grund haben wir uns entschieden, das Projekt von Grund auf neu aufzusetzen.
FirewallFabrik ist ein kompletter Rewrite von Firewall Builder, umgesetzt in Python und Qt6. Das Ziel dabei war klar definiert: dasselbe bewährte GUI-Konzept, kombiniert mit einem modernen Technologie-Stack und nativer nftables-Unterstützung.
Besonders wichtig war uns dabei, dass sich FirewallFabrik genauso anfühlt wie Firewall Builder. Die Fensteraufteilung, der Objektbaum, die Dialoge und das Drag-and-Drop-Verhalten entsprechen dem bekannten Konzept. Wer fwbuilder kennt, findet sich in FirewallFabrik sofort zurecht, ohne Umgewöhnung und ohne zusätzlichen Schulungsaufwand. Unter der Haube ist alles neu, die Oberfläche bleibt vertraut.
Konkret bedeutet das: Man modelliert Hosts, Netzwerke, Services und Interfaces als benannte Objekte, organisiert sie in Bibliotheken und zieht sie per Drag-and-Drop in Policy-, NAT- und Routing-Regeln. FirewallFabrik kompiliert diese Regeln dann in fertige Shell-Skripte, für iptables oder nftables. Die generierten Skripte können per integriertem SSH-Installer, manuell oder über die eigene Automatisierung (Ansible, Terraform, CI/CD) auf die Ziel-Firewalls verteilt werden.
Die Installation ist denkbar einfach, am schnellsten mit uv:
uvx --from 'firewallfabrik[gui]' fwf
Alternativ als dauerhafte Installation per uv tool install, pipx install oder pip install --user, jeweils mit dem Extra [gui] für die grafische Oberfläche. Wer nur die CLI-Compiler (fwf-ipt, fwf-nft) benötigt, kann auch ohne [gui] installieren. Auf Linux-Systemen lässt sich optional das native PySide6-Paket der Distribution nutzen (z.B. python3-pyside6 unter Fedora). Eine .desktop-Datei und MIME-Type-Definitionen für die Integration in Anwendungsmenüs und Dateimanager sind ebenfalls enthalten.
Das zentrale Argument für FirewallFabrik ist die Unterstützung von nftables als Zielplattform. Der nftables-Compiler (fwf-nft) kann Policies direkt in nftables-Regeln übersetzen. nftables ist seit RHEL 8 verfügbar und auf allen aktuellen Linux-Distributionen der Standard - FirewallFabrik deckt damit heutige und zukünftige Umgebungen ab, ohne Workarounds oder zusätzliche Kompatibilitäts-Layer.
nftables bringt gegenüber iptables mehrere technische Vorteile mit sich:
fwbuilder hat alles in einer einzigen XML-Datei (.fwb) abgelegt. FirewallFabrik verwendet stattdessen YAML (.fwf): menschenlesbar, diff-freundlich und ideal für Git. Diffs zeigen klar, was sich geändert hat, und jeder Texteditor oder jedes Skript kann mit dem Format umgehen.
FirewallFabrik nutzt alle verfügbaren CPU-Kerne und kompiliert mehrere Firewalls gleichzeitig. Die CLI-Compiler (fwf-ipt und fwf-nft) akzeptieren mehrere Firewall-Namen auf einmal und bieten ein --all-Flag, um sämtliche Firewalls der jeweiligen Plattform in einem Durchgang zu kompilieren. Die Datenbank wird dabei nur einmal geladen - unabhängig von der Anzahl der Firewalls.
Unter der Haube hat sich alles verändert. Die Codebasis ist Python 3.14 statt C++, die GUI nutzt Qt6 (PySide6) statt Qt5. Intern arbeitet FirewallFabrik mit einer SQLite-Datenbank und SQLAlchemy als ORM - das bedeutet schnelle Abfragen statt XML-Traversierung, referentielle Integrität durch Datenbank-Constraints und volles Undo/Redo mit History-Snapshots. Die eingebaute RCS-Integration von fwbuilder wurde durch das ersetzt, was heute Standard ist: YAML-Dateien in Git.
Die mitgelieferte Service-Bibliothek wurde um praxisrelevante Einträge ergänzt, darunter Collabora Online, Icinga, Nextcloud notify_push, WinRM und FreeIPA. Weitere Service-Definitionen lassen sich jederzeit selbst anlegen.
.fwb zu .fwfWer bereits mit Firewall Builder arbeitet, muss nicht bei Null anfangen. FirewallFabrik kann alle bestehenden .fwb-Dateien im XML-Format lesen und direkt in das neue .fwf-Format überführen. Sämtliche Objekte, Policies, Interfaces und Referenzen werden dabei korrekt übernommen.
Eine Migration im eigentlichen Sinne gibt es nicht: Die .fwb-Datei wird geöffnet, und ab sofort wird ausschliesslich im neuen .fwf-Format gespeichert. Es sind keinerlei manuelle Migrationsschritte erforderlich. Man kann sofort loslegen.
Ansible, Terraform und CI/CD-Pipelines sind heute Standard für die Verteilung von Konfigurationen. Wer seine Infrastruktur als Code verwaltet, fragt sich zurecht: Warum ein GUI-Tool, wenn ich Firewall-Regeln auch als Ansible-Rolle oder Terraform-Modul ausrollen kann?
Die Antwort: Weil Automatisierungstools ein anderes Problem lösen als FirewallFabrik. Ansible bringt Konfigurationen zuverlässig auf die Zielsysteme - es beantwortet die Frage "Wie kommt die Regel auf die Firewall?". FirewallFabrik beantwortet die Frage davor: "Welche Regeln brauche ich, und sind sie korrekt?"
Wer mehr als fünf bis zehn (Host-)Firewalls betreibt, steht vor einer Herausforderung, die kein Ansible-Playbook allein löst: den Überblick behalten. Welche Regeln gelten wo? Welche Server dürfen mit welchen Diensten kommunizieren? Wird eine bestimmte Firewall-Regel von einer anderen verdeckt? Referenziert noch irgendeine Regel den Server, der letzte Woche abgebaut wurde?
FirewallFabrik macht genau das sichtbar:
In der Praxis ergänzen sich GUI und Automatisierung:
FirewallFabrik generiert Shell-Skripte, die idempotent sind: Sie setzen bei jedem Lauf den vollständigen Regelsatz neu auf, unabhängig vom vorherigen Zustand der Firewall. Das Ergebnis ist immer dasselbe. Genau diese Eigenschaft macht sie ideal für automatisierte Deployments, ob per Ansible-Playbook, GitLab-CI-Pipeline oder schlichtem scp && ssh.
Das geht auch in die andere Richtung: Die .fwf-Datei ist menschenlesbares YAML und kann direkt mit Skripten oder Automatisierungstools erzeugt oder bearbeitet werden. Ein CMDB-Export, ein Ansible-Playbook oder ein eigenes Skript kann die YAML-Datei generieren, und ein Mensch kann sie anschliessend in der GUI visualisieren, prüfen und verfeinern. FirewallFabrik ist damit in beide Richtungen offen: GUI-zu-Skript und Skript-zu-GUI.
FirewallFabrik bietet den vollen Funktionsumfang, den man von einem professionellen Firewall-Management-Tool erwartet:
Bei einem Rewrite ist es wichtig, den Fokus zu behalten. Einige Funktionen von fwbuilder haben wir daher bewusst nicht übernommen:
git revert stellt Objekte inklusive aller Referenzen wieder her.FirewallFabrik richtet sich an Administratoren und Teams, die:
Wie immer, wenn es in unserem Blog ruhig wird, sind wir damit beschäftigt, an statt über Software zu schreiben. 😉 FirewallFabrik wird in der Linuxfabrik entwickelt, einem Schweizer Unternehmen, das sich auf Linux und Open Source spezialisiert hat. Es ist Open Source (GPLv2) und lebt auch von der Community. Pull Requests sind jederzeit willkommen, sei es für Bug-Fixes, neue Features oder die Portierung weiterer Plattform-Compiler.
Das Projekt findet sich auf GitHub unter https://github.com/Linuxfabrik/firewallfabrik