Firewalls in der GUI konfigurieren mit FWBuilder

Aus LinuxUser 05/2011

Firewalls in der GUI konfigurieren mit FWBuilder

© linder6580, sxc.hu

Aufbauhilfe

Wer Rechner und Netzwerk richtig abschotten möchte, der greift zur Firewall. FWBuilder beherrscht nicht nur die Syntax verschiedenster Zielplattformen, sondern sorgt durch Zusatzfunktionen für ein übersichtliches Regelwerk.

Heutige Firewalls geraten immer komplexer, und aufgrund der teils umständlichen Syntax geht leicht der Überblick verloren. Kommt neben Iptables auch noch ein anderes System zum Einsatz, wie etwa die OpenBSD-Firewall, ist das Chaos perfekt. Mit dem Firewall Builder [1] steht ein Werkzeug bereit, mit dem Sie Firewalls in einer grafischen Oberfläche entwickeln und anschließend in die richtige Syntax konvertieren.

FWBuilder einrichten

Unser Testsystem besteht aus einem Notebook mit der aktuellen 32-Bit-Version von Ubuntu 10.10 (Maverick Meerkat). Dort ist FWBuilder, so die Kurzform des Firewall Builder, zwar bereits in den Universe-Repositories enthalten, doch als wir in unserem Test auf ebendiese Ubuntu-eigenen Pakete zurückgriffen, wies FWBuilder schon beim ersten Programmstart darauf hin, dass diese kaputt seien (Abbildung 1).

Abbildung 1: Satz mit X – die Ubuntu-eigenen Pakete sind unbrauchbar.

Abbildung 1: Satz mit X – die Ubuntu-eigenen Pakete sind unbrauchbar.

Glücklicherweise stellt der Hersteller eigene Repositories für Debian, Ubuntu, Fedora und OpenSuse samt Anleitung bereit [2]. Auf unserem Testsystem genügte es, mit den drei Zeilen aus Listing 1 in der Konsole das neue Repository einzubinden und zu aktivieren sowie den Signaturschlüssel für die Pakete zu installieren.

Danach installieren Sie das Paket fwbuilder wie gewohnt, etwa mittels sudo apt-get install fwbuilder auf der Konsole. Nach kurzer Wartezeit steht FWBuilder samt benötigter Libraries zum Einsatz bereit. Die herstellereigenen Pakete sind übrigens wesentlich neuer als die aus dem Ubuntu-Archiv.

Listing 1

# sudo echo "deb http://www.fwbuilder.org/deb/stable/ maverick contrib" >> /etc/apt/sources.list.d/fwbuilder.list
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EAEE08FE
# sudo apt-get update

Funktionsweise

Den Firewall Builder gibt es für Linux, Windows, Mac OS X und diverse BSD-Varianten (siehe Kasten “Kommerzielle Binärpakete”). Er bearbeitet auf Wunsch sowohl lokale als auch entfernte Firewalls. Damit erhalten Sie plattformunabhängig Zugriff auf die gängigen Netzwerkfilter. Um den Spagat zwischen verschiedenen Welten zu bewerkstelligen, arbeitet das Programm dabei auf einer abstrakten Ebene: Sie erstellen die gewünschten Regeln bequem in der grafischer Oberfläche per Drag & Drop und konvertieren sie erst dann in das gewünschte Zielformat.

FWBuilder denkt dabei mit und bietet nur solche Funktionen an, die das Zielsystem unterstützt. Neben Iptables aus dem Netfilter-Projekt unterstützt der integrierte Compiler Ipfilter, Ipfw, OpenBSD PF, Cisco ASA (PIX), Cisco FWSM sowie die ACLs von Cisco IOS und HP Procurve.

Kommerzielle Binärpakete

FWBuilder steht unter zwei Lizenzen bereit: Der Quellcode der Linux- und BSD-Pakete steht unter der GNU GPL und ist als Binärpaket kostenfrei erhältlich. Möchten Sie das Programm hingegen unter Windows oder Mac OS X installieren, müssen Sie nach Ablauf von 30*Tagen eine kommerzielle Lizenz erwerben, die es ab rund 90 Euro gibt.

Im Test legten die herstellereigenen Pakete im Gegensatz zur Ubuntu-eigenen Version keinen Eintrag im Gnome-Menü an. Um das Programm zu starten, geben Sie daher fwbuilder entweder auf der Konsole oder aber im Anwendungsstarter mittels [Alt]+[F2] ein. Die Oberfläche selbst präsentiert sich recht aufgeräumt (Abbildung 2).

Abbildung 2: FWBuilder präsentiert sich nach dem ersten Start noch recht übersichtlich.

Abbildung 2: FWBuilder präsentiert sich nach dem ersten Start noch recht übersichtlich.

Der Firewall Builder arbeitet mit dem Konzept von Objekten, die untereinander in Beziehung stehen. Das Programm speichert dies innerhalb von Bibliotheken als Baumstruktur ab. Zwei Bibliotheken bringt das Programm mit, Standard und User. Während erstere eine umfangreiche Sammlung verschiedener vordefinierter Komponenten enthält und keine Modifikationen erlaubt, speichern Sie eigenen Objekte in letzterer ab. Bei Bedarf legen Sie einfach weitere benutzerdefinierte Bibliotheken an, beispielsweise für verschiedene Standorte oder Einsatzbereiche.

Als Objekt bezeichnet FWBuilder alle Elemente, die in einer Firewall vorkommen, wie Netzwerkkarten, Subnetze, IP-Bereiche, einzelne Adressen, DNS-Namen, Protokolle (ICMP, IP, TCP und UDP), Zeitfenster und Benutzer, wobei Sie einzelne Elemente teilweise in Untergruppen zusammenfassen oder aus externen Quellen auslesen. Die Firewall selbst und sogar ganze Firewall-Cluster bildet das Programm als Objekt in der Bibliothek ab. Neue Objekte legen Sie über das Plus-Zeichen links neben dem Bibliotheksnamen an.

Neben IPv4 versteht FWBuilder übrigens das IPv6-Protokoll, dem künftig eine immer größere Bedeutung zukommt. Damit bei der Vielzahl der möglichen Objekte der Überblick nicht verloren geht, steht eine komfortable Suchfunktion bereit (Abbildung 3), die zusätzlich eine Chronik vergangener Anfragen bereithält.

Abbildung 3: Schon ein paar Objekte und aktive Regeln geben einen vorsichtigen Eindruck von den mächtigen Fähigkeiten des Firewall Builder.

Abbildung 3: Schon ein paar Objekte und aktive Regeln geben einen vorsichtigen Eindruck von den mächtigen Fähigkeiten des Firewall Builder.

Das Hauptfenster teilt sich in drei große Bereiche auf: Links finden Sie die Objektliste und die Auswahl der Bibliothek. Haben Sie ein Objekt ausgewählt, beispielsweise eine Subnetzmaske, editieren Sie dessen Eigenschaften wie Name und Adresse im Editierfenster, das sich im unteren Bereich des Bildschirms befindet. Um die einzelnen Objekte nun untereinander in Beziehung zu setzen und daraus die Firewall-Regeln zu bauen, stehen Ihnen die Tabellen Policy für die Filterregeln, NAT für die IP-Masquerading beispielsweise bei DSL-Einwahlverbindungen, und eine Tabelle für das Routing auf der rechten Seite des Bildschirms bereit.

Regelwerk

Die einzelnen Regeln selbst legen Sie durch verschiedene Felder in den jeweiligen Tabellen fest: Mögliche Werte dabei sind Quelle, Ziel, Dienst beziehungsweise Port, Netzwerkkarte und Zeitfenster sowie die Aktion, die das System beim Zutreffen einer Regel ausführt. Eingehende und ausgehende Verbindungen verwalten Sie je nach Wunsch getrennt oder gemeinsam, und einzelne Felder dürfen den Wert any annehmen, was bedeutet, dass die Regel bei jedem Zustand des entsprechendes Feldes greift. Ein Beispiel: Zugang zum SSH-Server können Sie sowohl von allen Netzwerkinterfaces aus erlauben (any) als auch nur von Verbindungen, die über die erste Netzwerkkarte eingehen (eth0).

Wie bei Firewalls üblich, arbeitet der FWBuilder die Regeln hintereinander ab, sprich: Blockt eine Regel ein Datenpaket, bleiben spätere Regeln unberücksichtigt, durch die das entsprechende Paket gelangen würde. Es erscheint daher sinnvoll, zuerst alle erlaubten Verbindungen aufzuführen, um am Ende der Tabelle alle übrigen Verbindungen zu verbieten.

Möchten Sie Ihr Netzwerk dagegen eher offen halten, wählen Sie den umgekehrten Weg – die letzte Regel erlaubt die Verbindung, unerwünschte Dienste blocken Sie vorher explizit. Ein solches Setup findet sich beispielsweise häufig in Universitätsnetzwerken, bei denen die Administratoren ausgehende Verbindungen zu anderen Mailservern und diversen Filesharing-Diensten verbieten, ansonsten aber alle anderen Dienste erlauben.

Bei dem, was sich in der Theorie so kompliziert anhört, spielt der Firewall Builder seine Stärken erst so richtig aus, denn jetzt zahlt sich das Konzept der Elemente und Bibliotheken aus. Im Gegensatz zu Iptables erstellen Sie Ihr Regelwerk nicht per kryptischer Kommandozeile, sondern ziehen einfach die Elemente aus den Bibliotheken in die Tabelle, um daraus Regeln zu bauen.

Starthilfe

Trotz allem fällt der Einstieg aufgrund der Funktionsvielfalt des FWBuilder manchmal schwerer als bei anderen Lösungen. Damit Sie bei den ersten Gehversuchen nicht allein sind, bietet der Firewall Builder neben vordefinierten Objekten in der Standard-Bibliothek einen Assistenten an, der Sie beim Erstellen des Grundgerüsts unterstützt.

Den Assistenten starten Sie entweder über die Schaltfläche Create new firewall im bei Programmstart noch leeren Hauptfenster, oder aber über einen Rechtsklick auf Firewalls in der Objektliste und den Menüpunkt New Firewall. Auf der ersten Seite vergeben Sie einen frei wählbaren Namen für die Firewall, zum Beispiel buero-muenchen und geben an, welches System zum Einsatz kommt – für gängige Ubuntu-Varianten beispielsweise iptables auf Linux 2.4/2.6. Markieren sollten Sie auf jeden Fall die Option Use preconfigured firewall templates, um auf die Vorlagen zuzugreifen.

In der nun folgenden Dialogbox (Abbildung 4) bietet der Firewall Builder verschiedene Templates zur Auswahl an, die als Grundgerüst der eigenen Firewall dienen. Neben drei Beispielen für Router beziehungsweise Gateways stehen auch solche für Server und diverse Appliances sowie Embedded-Systeme bereit.

Wählen Sie die für sich passende Variante aus – im Test kam das Template fw template 2 zum Einsatz. Mit einem Klick auf Next gelangen Sie zur Eingabemaske für die Netzwerkkarten. Dort konfigurieren Sie die einzelnen Interfaces mit ihren Adressen und weisen ihnen ein frei definierbares Label zu, also einen Namen – beispielsweise “intern” oder “extern”. So vorhanden, legen Sie auch gleich die IPv6-Adresse mit an, um sie bei der Konfiguration der Firewall nicht zu vergessen. Nach einem Klick auf Finish öffnet FWBuilder das neue Regelwerk.

Abbildung 4: Die Auswahl an vorkonfigurierten Firewalls macht es einfach, für die eigenen Zwecke die passende Grundlage zu finden.

Abbildung 4: Die Auswahl an vorkonfigurierten Firewalls macht es einfach, für die eigenen Zwecke die passende Grundlage zu finden.

Aufbauarbeit

Sehen Sie sich zunächst in der Objektliste um. Im Beispiel legt FWBuilder einige Elemente an, die zum Betrieb der Firewall erforderlich sind: Das Netzwerk buero-muenchen:eth1:net (192.168.0.0/255.255.255.0), die Netzwerkinterfaces eth0, eth1 und das Loopback-Device lo. Dem Interface-Objekt eth1 weist FWBuilder eine fixe IP-Adresse zu, die er als eigenes Element abbildet, ebenso für das Loopback-Device.

Da das Gerät hinter dem Objekt eth0 seine IP-Adresse dynamisch erhält, fehlt hier ein entsprechender Eintrag. Die Tabelle Routing enthält keinen Eintrag, die NAT-Tabelle genau einen (Abbildung 5). Die dort angelegte Regel bedeutet, dass die Firewall künftig:

  • alle Pakete von der Quelle buero-muenchen:eth1:net (Original Src)
  • zu einem beliebigen Ziel (Original Dst und Original Srv)
  • über die Netzwerkkarte mit dem Label extern
  • ohne Umschreiben der Quell- oder Zieladresse (Translated Dst und Translated Srv)
  • maskiert (translate).
Abbildung 5: So stellt der Firewall-Builder das Masquerading (NAT) dar.

Abbildung 5: So stellt der Firewall-Builder das Masquerading (NAT) dar.

Um Details zu einem Element zu erhalten, fahren Sie mit der Maus darüber – in einem Tooltip zeigt der Firewall Builder dann die zugehörigen Eigenschaften an, wie zum Beispiel IP-Adressen. Mit einem Doppelklick auf ein Element hingegen steuern Sie den entsprechenden Ordner in der Objektbibliothek an. Ein Rechtsklick öffnet ein Kontextmenü mit weiteren Optionen, wie beispielsweise dem Invertieren von Regeln (Negate) oder dem Zuweisen von Farben und Gruppen zur besseren Übersichtlichkeit.

Letztere übernimmt FWBuilder übrigens nicht in das erzeugte Skript: Dafür steht das separate Feld Comments bereit. Per Kontextmenü zeigen Sie bei Bedarf alle Vorkommnisse des jeweiligen Elements an. Für fortgeschrittene Administratoren dürfte Compile Rule interessant sein, denn damit gibt FWBuilder eine Vorschau der aktuellen Regel in der Zielsyntax (Abbildung 6).

Abbildung 6: Auf Wunsch zeigt der FWBuilder, wie eine Regel in der Syntax des Zielsystems aussieht.

Abbildung 6: Auf Wunsch zeigt der FWBuilder, wie eine Regel in der Syntax des Zielsystems aussieht.

Mit diesem Wissen ausgestattet, fügen Sie leicht einzelne Filter über das grüne Pluszeichen hinzu oder verändern das bestehende Regelwerk. Im Beispiel sind die meisten Einstellungen in der Tabelle Policy abgelegt. Gerade bei umfangreichen Konfigurationen kommen die weiter oben erwähnten Gruppen und Farben gut zum Tragen (Abbildung 7). Um die anhand der Vorlage erstellte Basis-Firewall Ihren Wünschen anzupassen, editieren Sie die Regeln, indem Sie per Drag & Drop neue Elemente hinzufügen.

Abbildung 7: Malen nach Zahlen – der Übersichtlichkeit halber.

Abbildung 7: Malen nach Zahlen – der Übersichtlichkeit halber.

Um beispielsweise auf der Firewall-Maschine den Port für das HTTPS-Protokoll zu öffnen, wählen Sie in der Objektliste die Standard-Bibliothek, suchen unter Services | TCP das Objekt https und ziehen es bei gedrückter linker Maustaste in das Feld Service der entsprechenden Regel. Mit demselben Prinzip legen Sie neue Regeln an oder verändern Quell- und Zieladressen.

Die Einstellungen der Firewall lagern ebenfalls in der Objektliste und bieten erfahrenen Administratoren noch weitergehende Konfigurationsmöglichkeiten (Abbildung 8).

Abbildung 8: Der FWBuilder bietet selbst feingranulare Details zur Konfiguration an.

Abbildung 8: Der FWBuilder bietet selbst feingranulare Details zur Konfiguration an.

Alles muss raus

Bislang haben Sie die Regeln zwar im FWBuilder abgelegt, doch wie kommen sie jetzt aufs Zielsystem? Speichern Sie dazu zunächst den vormodellierten Regelsatz über File | Save As… ab. Mittels Rules | Compile oder der entsprechenden Schaltfläche auf der Symbolleiste starten Sie den Assistenten, der Sie durch das Erzeugen der Firewall führt. Am Ende finden Sie eine Datei mit der Endung .fw vor, in unserem Beispiel buero-muenchen.fw. Aufs Zielsystem kopiert und mit dem Parameter start ausgeführt, aktivieren Sie die Firewall, mit stop hingegen schalten Sie sie ab.

Dabei fiel im Test unangenehm auf, dass das Skript beim Aufruf ohne Parameter die Regeln ebenfalls lädt und dass es beim Beenden der Firewall keine Nachricht ausgibt. Andererseits bietet FWBuilder die Möglichkeit, Firewall-Regeln per SSH automatisch auf dem Zielserver einzurichten, was viel Arbeit abnimmt.

Fazit

Die Installation des FWBuilder gestaltet sich in der aktuellen Ubuntu-Version 10.10 reichlich umständlich. Unverständlich bleibt, warum noch keine korrigierten Pakete bereit stehen – glücklicherweise hilft der Hersteller aus. Warum er lediglich die Linux-Variante kostenfrei weitergibt und Administratoren für andere Plattformen eine Lizenz erwerben müssen, bleibt unklar.

Letztendlich erhalten Sie ein sehr mächtiges Programm, das eine Vielzahl von Systemen und Anforderungen unterstützt. Das führt aber dazu, dass das Einarbeiten mitunter nicht ganz trivial ist. Im Umgang mit Netzwerktechnik erfahrene Anwender, die eine Vielzahl von Systemen warten, finden im FWBuilder einen treuen Begleiter, der insbesondere dank seiner Möglichkeiten zum Gruppieren und der Suchfunktion viel Arbeit abnimmt.

Nutzer, die hingegen nur einzelne Clients mit einfachen Paketfiltern absichern möchten, finden mit Alternativen wie Ufw [3], Gufw ([4],[5]) oder dem schon in die Jahre gekommenen Firestarter ([6],[7]) vermutlich einfachere Lösungen. Jedem, der den FWBuilder produktiv einsetzen möchte, sei auf jeden Fall dringend die Lektüre des Online-Handbuchs zu FWBuilder ans Herz gelegt [7]

Infos

[1] Firewall Builder: http://www.fwbuilder.org

[2] Hersteller-Repository: http://www.fwbuilder.org/4.0/docs/firewall_builder_packages.html

[3] Uncomplicated Firewall: http://wiki.ubuntuusers.de/UFW

[4] Gufw: http://gufw.tuxfamily.org

[5] Gufw-Workshop: Kristian Kißling, “Mauern mit Ubuntu”, LU 07/2009, S. 78, https://www.linux-community.de/18182

[6] Firestarter: http://wiki.ubuntuusers.de/Firestarter

[7] Firestarter-Workshop: Markus Nasarek, “Brandmelder”, LU 01/2007, S. 32, https://www.linux-community.de/11962

[8] Online-Handbuch zu FWBuilder: http://www.fwbuilder.org/4.0/docs/users_guide/

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Gründungsmitglied und Mitglied des Steering Committee der Document Foundation. Zuvor war er fast sieben Jahre im Projekt OpenOffice.org aktiv, zuletzt als Marketing Project Lead. Zudem schreibt er regelmäßig für zahlreiche deutsch- und englischsprachige Fachpublikationen.

LinuxUser 05/2011 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben