Linuxfabrik FirewallFabrik Release v1.0.0

datacenter firewallfabrik linux tools

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.

FirewallFabrik: Der Nachfolger von Firewall Builder - jetzt mit nftables

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.

iptables: deprecated und ohne Zukunft

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.

Was ist FirewallFabrik?

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.

Was ist besser als bei fwbuilder?

nftables-Support

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:

  • Einheitliche Syntax für IPv4, IPv6, ARP und Bridging
  • Native Sets und Maps, wodurch separate ipset-Pakete nicht mehr erforderlich sind
  • Atomare Regeländerungen, ohne kurzzeitige Lücken beim Neuladen
  • Bessere Performance durch optimierte Kernel-Verarbeitung

YAML statt XML

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.

Parallele Kompilierung

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.

Moderner Technologie-Stack

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.

Erweiterte Standard-Bibliothek

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.

Nahtlose Migration: von .fwb zu .fwf

Wer 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.

Aber braucht man so ein Tool heute noch?

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:

  • Visueller Überblick über alle Firewalls in einer Anwendung - Policies nebeneinander vergleichen, Kommunikationsflüsse zwischen Standorten nachvollziehen, Lücken und Inkonsistenzen erkennen
  • Audit und Nachvollziehbarkeit - jede Regel referenziert benannte Objekte statt roher IP-Adressen und Portnummern. Wer ein bestimmtes Objekt sucht, findet per Suchfunktion sofort alle Regeln aller Firewalls, die es verwenden
  • Ein Objekt ändern, überall konsistent - ein Server zieht um, eine IP ändert sich: man passt das eine Objekt an, und FirewallFabrik erkennt automatisch, welche Firewalls neu kompiliert werden müssen. Kein manuelles Suchen, keine vergessenen Regeln
  • Rule Shadowing Detection - der Compiler erkennt zur Kompilierzeit, wenn eine Regel von einer vorhergehenden verdeckt wird und daher nie greifen kann

In der Praxis ergänzen sich GUI und Automatisierung:

  • FirewallFabrik ist die Design- und Audit-Ebene. Hier entwirft, prüft und dokumentiert man die Firewall-Policies.
  • Ansible, Terraform oder CI/CD ist die Deployment-Ebene. Hier werden die kompilierten Skripte verteilt und aktiviert.

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.

Was kann FirewallFabrik im Detail?

FirewallFabrik bietet den vollen Funktionsumfang, den man von einem professionellen Firewall-Management-Tool erwartet:

  • Drei Regeltypen: Policy-Regeln (Filter), NAT-Regeln (SNAT, DNAT, Masquerade, Redirect, Load Balancing, SDNAT, NONAT) und Routing-Regeln (ip route, ECMP)
  • Vollständiges IPv4/IPv6 Dual-Stack: Separate Kompilierungsdurchläufe mit automatischer Versions-Filterung. IPv4- und IPv6-Objekte können im selben Regelwerk verwendet werden.
  • Cluster-Unterstützung: Failover-Gruppen und State-Synchronisation (conntrackd) modellieren
  • Batch-Deployment: Mehrere Firewalls in einem Durchgang kompilieren und per SSH installieren
  • Configlet-Templates: Anpassbare Vorlagen für Interface-Konfiguration, Kernel-Parameter und Aktivierungsskripte
  • Compiler mit 55+ Regel-Prozessoren: Automatische Optimierung, Negation-Handling, Gruppen-Expansion und Shadowing-Erkennung

Was haben wir (vorerst) nicht portiert?

Bei einem Rewrite ist es wichtig, den Fokus zu behalten. Einige Funktionen von fwbuilder haben wir daher bewusst nicht übernommen:

  • "Deleted Objects"-Bibliothek: In fwbuilder konnten gelöschte Objekte wiederhergestellt werden, allerdings ohne ihre Referenzen. In der Praxis erwies sich diese Funktion als kaum nutzbar. In FirewallFabrik empfehlen wir stattdessen Git: Ein git revert stellt Objekte inklusive aller Referenzen wieder her.
  • Weitere Plattform-Compiler: fwbuilder unterstützte neben iptables auch Cisco PIX/ASA/IOS/NX-OS, Juniper JunOS, HP ProCurve und OpenBSD PF. Davon sind einige Plattformen mittlerweile eingestellt (PIX, FWSM, ipfw, ipfilter). Andere sind weiterhin im Einsatz, aber noch nicht als Compiler-Backend implementiert, darunter Cisco ASA, JunOS und PF. Die Architektur von FirewallFabrik ist bewusst offen gehalten, so dass weitere Backends bei Bedarf ergänzt werden können. Unter den noch nicht unterstützten Plattformen wäre PF (OpenBSD/FreeBSD) der naheliegendste Kandidat.

Für wen ist FirewallFabrik?

FirewallFabrik richtet sich an Administratoren und Teams, die:

  • Dutzende oder Hunderte von Firewalls zentral über eine GUI verwalten und dabei den Überblick über alle Policies, Objekte und Kommunikationsflüsse behalten wollen
  • von iptables auf nftables migrieren müssen oder möchten
  • RHEL 8/9/10, AlmaLinux, Rocky Linux oder Fedora einsetzen
  • ihre Firewall-Konfigurationen versioniert in Git halten und in bestehende Automatisierung (Ansible, Terraform, CI/CD) integrieren
  • bei Audits nachvollziehbar belegen müssen, welche Regeln wo gelten und warum
  • bereits mit Firewall Builder arbeiten und einen zukunftssicheren Nachfolger suchen

Mitmachen erwünscht

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

Vorheriger Beitrag