Open Source im professionellen Einsatz
Linux-Magazin 12/2005

Firewall-Builder: Vom grafischen Frontend zur Konfigurationsdatei

Brandmeister

Für verschiedene Firewalls eine gemeinsame Oberfläche anbieten, die dem Admin zudem hilfreich unter die Arme greift: Wie FW-Builder dieses Kunststück vollbringt und welche Kniffe die internen Regel-Compiler dabei verwenden, erklärt der Autor der Software selbst.

1154

Firewall-Admins haben es schwer. Jeder Hersteller und jedes Projekt verwendet eigene Tools und Konfigurationssprachen, die es perfekt zu beherrschen gilt, um nicht versehentlich Lücken in den Netzwerkschutz zu reißen. Die Fähigkeiten und Funktionsweisen der Firewalls weichen stark voneinander ab. Welche Eigenschaften der Netzwerkpakete sie analysieren und wie sehr sie den Inhalt manipulieren variiert. All dies muss der Admin berücksichtigen.

Als Ausweg bietet sich der Firewall-Builder [1] an, entwickelt vom Autor des Artikels. Das GPL-Framework (für freie Betriebssysteme) präsentiert sich als grafisches Konfigurationswerkzeug (Abbildung 1), das auf vielen Systemen läuft und Einstellungen für viele Firewall-Varianten erstellt - Multi-Plattform im doppelten Sinne. Der Admin entwickelt seine Policy anhand einer abstrakten, idealisierten Firewall-Architektur. FW-Builder erzeugt daraus die konkreten Regeln in der jeweiligen Konfigurationssprache.

Der Übersetzungsschritt hat praktische Vorteile. Fehlt beispielsweise ein Feature des abstrakten Modells in einer Ziel-Firewall, dann versucht FW-Builder diese Funktion mit einem Workaround nachzubilden. Dank dieser Taktik sind selbst sperrige Firewalls so einfach zu konfigurieren wie ihre leistungsfähigeren Mitbewerber. Zudem entdecken die Compiler einige typische Fehler in der Konfiguration. Derzeit existieren freie Compiler für IPtables ([2], Linux), IPfilter ([3], unter anderem FreeBSD und NetBSD), PF ([4], OpenBSD) und IPfw ([5], FreeBSD) sowie ein kommerzieller Ableger für Cisco PIX [6].

Aufgeräumte Oberfläche

Neben dem GUI besteht FW-Builder aus einem API (und der dazu passenden Bibliothek) sowie einem Satz eigenständiger Policy-Compiler. Letztere übersetzen den Regelsatz (Policy) in die konkrete Konfiguration. Dabei verwendet das Tool einen objektorientierten Ansatz: Es ist selbst in C++ programmiert (seit Version 2.0 mit Qt), aber auch der Admin arbeitet mit Objekten.

Alle Objekte, aus denen er eine Regel aufbaut, findet er am linken Rand in einer baumförmigen Hierarchie (Abbildung 1). Er kann sie in Gruppen zusammenfassen und diese Gruppen wieder als Objekt verwenden. Objekte lassen sich beliebig oft einsetzen. Jede Änderung an ihnen wirkt sich unmittelbar auf alle Gruppen und Regeln aus, die dieses Objekt einbinden.

Gut organisiert

FW-Builder kennt eine Menge Objekttypen: Firewalls, Hosts, Interfaces (als Teil eines Host oder einer Firewall), IP- und MAC-Adressen, Netzwerke, Adressräume, Gruppen der bisher genannten Objekte, Dienste (IP, ICMP, TCP, UDP, Custom) und Gruppen von Diensten sowie Zeitintervalle. Einige Objekte sind vordefiniert, etwa die privaten IP-Adressen aus RFC 1918 sowie über hundert verbreitete Dienste. Der Admin kann auch eigene Objektbibliotheken anlegen und sie im- oder exportieren.

Alle Objekte sammelt das GUI in einem Tree-Widget am linken Rand des Fensters. Interfaces gehören zu einem Host oder einer Firewall, IP-Adressen zu einem Netzwerk - nach diesem Prinzip ordnet die Oberfläche alle Objekte logisch an. Jedes Firewall-Objekte hat mehrere Regelsätze (zu sehen im Hauptteil des Fensters): eine globale Policy, eine eigene Policy für jedes Interface sowie NAT-Regeln. Globale Regeln gelten für jedes Paket, egal auf welchem Weg es die Firewall betritt oder verlässt, während sich Interface-spezifische Regeln auf eine Schnittstelle beschränken.

Ein Doppelklick auf ein Objekt im Baum öffnet den passenden Editor. In die Policy gelangen die Objekte per einfachem Drag&Drop, auch klassisches Copy& Paste funktioniert. Tooltipps zeigen die Details jedes Objekts, wenn der Mauszeiger über ihm verharrt.

Abbildung 1: Die FW-Builder-Oberfläche sortiert links alle Objekte hierarchisch. Zu sehen sind vier Firewalls, zwei aufgeklappt mit je drei Ethernet-Interfaces. Die Konfiguration des Objekts steht links unten. Den Hauptteil des Fensters nimmt die Policy ein; hier hinein zieht der Admin Objekte aus der Baumdarstellung.

Da FW-Builder auf der Workstation des Admin läuft, müssen die Regelsätze erst auf die Firewall gelangen, um wirksam zu werden. Dazu enthält die Oberfläche einen Installer [7], der die Konfiguration per SSH überträgt und aktiviert. Der Admin braucht nur noch sein Passwort oder die Passphrase für seinen SSH-Schlüssel einzutippen.

Funktionen der abstrakten
Firewall

FW-Builder stellt die Firewall-Policy und NAT-Einstellungen als plattformunabhängigen Regelsatz dar. Der Admin bearbeitet die Regeln, indem er per Drag&Drop Netzwerk- und Dienst-Objekte einsetzt. Die Regeln erhalten Quelle, Ziel und Dienst sowie einen Parameter, der die gewünschte Aktion festlegt. Weitere Parameter sind optional, etwa um das Interface festzulegen sowie die Richtung, in der Pakete die Schnittstelle überqueren.

Nur die erste auf ein Paket passende Regel bestimmt, was mit ihm passiert (Accept, Drop, Reject). Nachfolgende Regeln bleiben wirkungslos. Bei IPtables und Cisco PIX entspricht dies dem Standardverhalten, für IPfilter und PF setzt FW-Builder die »quick«-Option.

Einheitliche Default-Policy

Eine leere Policy blockiert jedes Paket. Für IPtables setzt der Compiler mit der Option »-P« das Standardverhalten auf »DROP«; auf anderen Plattformen fügt er Regeln ans Ende des Regelsatzes, die Gleiches bewirken.

Die Firewall übersetzt erst Adressen (NAT), bevor sie die Regeln der Policy anwendet. Alle unterstützten Open-Source-Firewalls verhalten sich per Default so, nur für Cisco PIX ist dazu eine Emulation nötig.

Negationen sind in Policy- und NAT-Regeln möglich. Der Admin kann mehrere Objekte in ein Regelelement aufnehmen (etwa als Quelle) und die Liste invertieren, also nur auf Adressen filtern, die nicht in der Liste stehen. Der Compiler hat dann einiges zu tun: Selbst wenn eine Plattform Negationen unterstützt, beherrscht sie das nur für einzelne Adressen. Bei IPtables behilft sich der Compiler mit eigens definierten Chains, während er bei IPfilter das »skip«-Schlüsselwort einsetzt.

Varianten der Network Address Translation

FW-Builder implementiert mehrere Arten von NAT-Regeln. Die Regeln manipulieren folgende Bestandteile eins Pakets:

  • Quelladresse und optional den Quellport
  • Zieladresse und optional den Zielport
  • Quell- und Zieladresse sowie optional die Ports
  • Nur die Portnummern
  • Nichts (»no nat«-Regel)

Die abstrakte Firewall in FW-Builder kombiniert praktische Funktionen aus vorhandenen Implementierungen und ergänzt neue Regeln und Transformationen (siehe Kasten "Funktionen der abstrakten Firewall"). Das Projekt verfolgt ähnliche Ziele wie jede höhere Programmiersprache: Um die schwierigen Teile kümmert sich der Compiler, der Admin soll sich auf die Policy konzentrieren und nicht mit den Details der Konfigurationssprache aufhalten. Beispielsweise verlangen viele Sprachen, dass jede Regel das Interface und die Übertragungsrichtung nennt. Firewall-Builder übernimmt diese fehlerträchtige Fleißarbeit - alle benötigten Informationen stehen schon in den Firewall-Objekten.

Abbildung 2: Firewall-Builder ist keine monolithische Software, die Programmsuite teilt sich in einzelne Module. Im Zentrum steht das gemeinsame API, es verbindet auch die Oberfläche mit den Policy-Compilern.

Abbildung 3: Policy-Compiler setzen sich aus mehreren Regel-Prozessoren zusammen, die jeweils eine Teilaufgabe beim Übergang der abstrakten FW-Builder-Firewall zur konkreten Konfigurationssprache übernehmen.

Tabelle 1:
Firewall-Builder-API

 

Modul

Aufgabe

fwbuilder

Grundlegende Klassen für den Zugriff auf Netzwerkobjekte
in der Datenbank sowie etliche Utility-Klassen.

fwcompiler

Gemeinsame Klassen für die Policy-Compiler.

XML

Laden, Speichern und Verarbeiten von XML-Dateien. Bietet auch
automatische Format-Upgrades per XSLT-Transformation.

DNS

Diese Sammlung von Multithreading-fähigen Klassen
löst Hostnamen zu IP-Adressen auf (einzeln oder gesammelt
für mehrere Namen) oder überträgt und analysiert
ganze DNS-Zonen.

SNMP

Einfacher C++-Wrapper für SNMP-Aktionen. Einige
Spezialklassen sammeln Informationen über Interfaces oder ARP-
und Routing-Tabellen.

Network Crawler

Ausgeklügeltes Netzwerk-Discovery. Ausgehend von einem
bekannten Host ermittelt das Modul weitere Rechner und Netzwerke,
die es als Objekte in die Datenbank legt. Wie ausgedehnt es suchen
soll, lässt sich einstellen.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Regelmeister

    Unfairen Mitspielern im Netz zeigt IPtables die gelbe oder rote Karte. Dank FW-Builder, einem Profi-GUI, zaubert der Admin im Sturm ein ausgefeiltes Regelwerk. Version 2.1 gibt ihm noch mehr Mittel in die Hand und instruiert polyglott alle Schiri-Kollegen an den Außenlinien.

  • Blocker-Szene

    Per FW-Builder pflegen Admins die Regelsätze aller ihrer Firewalls, egal welches System sie dort verwenden. Chefprogrammierer Vadim Kurland hat die Software in der dritten Auflage weiter verbessert.

  • Einfach geregelt

    Mit GUI-Unterstützung wird das Zusammenstellen eines Firewall-Regelwerks übersichtlicher, einfacher und damit weniger fehleranfällig. Mit Hilfe des freien Firewall Builders zeigen wir hier beispielhaft die Konfiguration einer kleinen Firmen-Firewall.

  • Bitparade

    Eine umfassende Firewall mit Netfilter und IPtables einzurichten ist kompliziert. Grafische Oberflächen wollen diese anspruchsvolle Aufgabe erleichtern, das Linux-Magazin besichtigt die Sperranlagen.

  • Wehrhaft abtauchen

    Hochverfügbare Firewalls gelten als hohe Kunst im Netzwerkschutz. Dank Clustering bleibt das Netz online, selbst wenn eine Firewall ausfällt. OpenBSD/PF (Maskottchen: Kugelfisch) besitzen gegenüber dem bekannteren Duo Linux/Netfilter einige Vorzüge. Der Artikel erklärt das Setup - für Linuxer verständlich.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.