Eine Linux-Firewall bedienen muss nicht kompliziert sein: Über ihr Web-Front-End kommen auch Linux- Neulinge schnell mit Astaro Security Linux zurecht. Aber wie steht es um die inneren Werte?
Astaro Security Linux ist, ähnlich dem in[5] vorgestellten SuSE-Produkt, eine Linux-Firewall. Sie integriert einen Paketfilter mit unterschiedlichen Proxies als Application Level Gateways. Zum Einsatz kommen der Paketfilter des 2.4er Linux-Kernels mit aktivierter State-Engine und vollständigem NAT (Network Address Translation mit Source-NAT und Destination-NAT).
Als Proxies verwendet Astaro Standardprogramme aus dem Open-Source-Umfeld. Die Firewall unterstützt nur Ethernet – ISDN, DSL, Token Ring oder andere Netzwerkinterfaces sind nicht konfigurierbar. Die Administrationsoberfläche ist Web-basiert, lässt sich also per Browser von einem beliebigen Rechner aus bedienen. Sie abstrahiert zudem stark vom Betriebssystem und lässt sich daher auch ohne tiefere Unix-Kenntnisse einsetzen.
Eigenentwicklung
Der gesamte Konfigurationsmechanismus, also das Web-Front-End und seine Back-Ends, ist eine Eigenentwicklung von Astaro. Auch das Linux-Basissystem scheint nicht von einer anderen Distribution herzurühren. In der Folge kann Astaro eine eigene Lizenzpolitik durchsetzen: Für den kommerziellen Einsatz der Firewall ist eine kostenpflichtige Version erforderlich, deren Preis sich nach der Anzahl der geschützten Rechner richtet. Dieses Paket enthält dafür aber auch eine Lizenz für die Antivirensoftware von Kaspersky Labs – ein Virenscanner, der im E-Mail-System seinen Dienst verrichtet.
Für den privaten Einsatz und für Testzwecke bietet der Hersteller ein kostenloses ISO-Image der Firewall-CD an[2]. Die CD enthält im Verzeichnis »doc« auch das deutsche und das englische Handbuch als PDF-Dokument.
Astaro gibt in einer FAQ[3] an, dass die eingesetzten Open-Source-Programme auf ihren jeweiligen Homepages im Quellcode zur Verfügung stehen. Es ist aber keine Liste zu finden, welche Programme und welche Homepages das im Einzelnen sind. Das ist – verglichen mit den gewohnten Linux-Distributionen – eine ziemlich unübliche Vorgehensweise. Wenigstens eine Liste mit den URLs der Quellen wäre schon zu erwarten, besser noch sollte Astaro die Quellen auch selbst bereitstellen.
Sehr angenehm ist dagegen, dass Astaro die Updates der Firewall auf Freshmeat[1] bekannt gibt. Hilfreich ist auch das von Astaro gepflegte Support-Portal[4].
Installation auf der Festplatte
Die Astaro-CD ist zwar bootfähig, allerdings bootet im Gegensatz zur SuSE- Lösung nicht gleich die fertige Firewall, sondern zuvor ein Installationsprogramm: Astaro Security Linux landet auf der Festplatte. Voraussetzung dafür ist neben der Harddisk auch ein bootfähiges CD-ROM-Laufwerk. Falls das nicht klappt, findet sich ein Abbild einer Bootdiskette auf der CD unter »boot/bdisk«. Auf die Floppy gelangt das Image unter Linux mit »dd if=boot/bdisk of=/dev/ fd0« oder unter DOS beziehungsweise Windows mit Rawrite (auf CD im Verzeichnis »dosutil«). Der Bootloader Syslinux stellt leider keinen Prompt bereit, über den der Linux-Kernel zusätzliche Parameter, etwa zum Laden von Treibermodulen, erhalten könnte.
Wenn der Kernel läuft und sich initialisiert hat, startet das von Astaro erstellte Installationsprogramm. Es begrüßt den Admin mit einer englischen Eingabemaske und einer kleinen Hilfestellung. Zuerst ist die Tastatur einzurichten: Zur Auswahl stehen das US-amerikanische, deutsche, französische, spanische, niederländische und italienische Layout. Wenn die nun folgende Sicherheitsabfrage, ob Astaro wirklich installiert werden soll, mit »yes« bestätigt wird, zeigt das Installationsprogramm die Astaro-Lizenz in Deutsch und in Englisch an.
Eigene Lizenz
Der Text sollte auch tatsächlich durchgelesen werden, da die Firewall lizenztechnisch aus zwei Teilen besteht. Der erste betrifft die Open-Source-Komponenten, etwa den Kernel, kleine Hilfsprogramme, die Proxies und den Apache-Webserver.
Dann folgen Regelungen für die von Astaro selbst beigesteuerten Programme, etwa das Web-Front-End für die Administration, die Zwischenschicht für die Konfiguration sowie für die Selbstüberwachung und das Updatesystem Up2date. Diese Bestandteile stehen unter einer proprietären Lizenz. Leider ist Quellcode auch für diese Programme nicht verfügbar. Der Administrator sollte sich dessen bewusst sein, dass er laut Lizenz keine weitere Software aufspielen darf, eine Modifikation der Firewall in “nicht vorgesehener Art und Weise” ist ebenfalls nicht erlaubt.
Nach der Lizenzfrage kann man in der folgenden Maske auswählen, ob nur die Open-Source-Software zu installieren ist. Das Testsystem sollte zudem die Programme von Astaro enthalten. Im nächsten Schritt kann man bestimmen, ob die Antivirensoftware installiert wird.

Abbildung 1: Die Administrations-Oberfläche der Astaro-Firewall ist sehr einfach zu bedienen und funktioniert auch im Konqueror. Im Bild ist die Konfiguration des HTTP-Proxies zu sehen.
Automatische Hardware-Erkennung
Das Installationsprogramm verfügt über automatische Hardware-Erkennung, die nun startet. Beim Test-PC handelte es sich um einen Rechner von Compaq mit einer Netelligent-On-Board-Netzwerkkarte und einer PCI-Netzwerkkarte auf Basis eines RTL8139-Chips, die anstandslos erkannt wurden.
Auf der Homepage von Astaro[2] war leider keine Liste mit unterstützter Hardware zu finden, außer den folgenden Angaben: 400 MHz CPU (min. 300 MHz CPU), 128 MB RAM (min. 64 MB RAM), 8 GB HDD, IDE or SCSI Interface (min. 4 GB HDD), CD-ROM Drive, PCI Ethernet Interfaces (10/100/1000 MBit). Man kann also davon ausgehen, dass ältere ISA-Netzwerkkarten und andere exotische Hardware in dieser Firewall nicht funktionieren.
Nun sind die IP-Adresse, die Netzmaske und das Standard-Gateway anzugeben sowie Datum und Uhrzeit einzustellen. Darauf folgt die Installation der Software. Zum Abschluss sind noch einige Eingaben nötig: Eine E-Mail-Adresse, an die Root-Mails weitergeleitet werden, verschiedene Passwörter für die Benutzer »loginuser« und »root« sowie für den »admin«-Benutzer im Web-Front-End, außerdem ein Passwort für den Bootloader Lilo. Unverständlich ist, dass keines der Passwörter mit der Cracklib geprüft wird: Damit ließe sich feststellen, ob es für eine Firewall zu unsicher ist.
Nach dem Abschluss der Installation bootet die Firewall. Der Webserver am Https-Port 443 für das Admin-Front-End startet nach der Installation automatisch, die weitere Konfiguration läuft per Browser über die URL »https:// Astaro-IP-Adresse/«. Dabei ist zu beachten, dass bis zum jetzigen Zeitpunkt nur die erste Netzwerkkarte aktiv ist – sie ist das interne Interface.

Abbildung 2: Die Online-Hilfe trägt zum guten Eindruck des Web-Front-Ends bei: Für jeden Konfigurationsschritt enthält sie eine Erklärung.
Bequemes Web-Front-End
Wie bereits angedeutet bietet Astaro Security Linux ein ansprechendes Web-Front-End (siehe Abbildung 1) zur Konfiguration der Firewall. Der Admin kann bei seinem jeweiligen Lieblings-Betriebssystem bleiben und die Firewall von dort aus bedienen. Die Daten gehen dabei mit SSL abgesichert übers Netz.
Sehr positiv fällt auf, dass die Programmierer des Front-Ends auf proprietäre HTML-Erweiterungen von Netscape oder Microsoft verzichtet haben, es funktioniert auch mit dem Browser von KDE (Konqueror) zufrieden stellend. Nur manchmal wurden im Test einige Bilder über den Status der Firewall nicht angezeigt. Den guten Eindruck des Web-Front-Ends unterstützt auch die Online-Hilfe (siehe Abbildung 2), sie behandelt jeden einzelnen Schritt der Konfiguration.
Hervorragend ist die Unterstützung der Benutzerauthentifikation an den verschiedenen Proxies. Die User-Verwaltung ist lokal auf der Firewall möglich (siehe Abbildung 3), die Benutzerdaten können aber auch von einem Radius-Server oder einem Windows-Domain-Controller stammen. Eine Quelle, die hier leider fehlt, ist LDAP. Es ist aber ohne größere Schwierigkeiten möglich, die LDAP-Daten über einen Radius-Server bereitzustellen.
Um die Proxy-Konfiguration übersichtlich zu halten, kann das Front-End verschiedene Netzwerke und Ports definieren (Abbildung 4): Mit aussagekräftigen Namen statt einfacher Nummernbereiche gestaltet sich die gesamte Administration übersichtlicher. Nicht zuletzt kann das Web-Interface auch die Netzlast überwachen und grafisch visualisieren. Dazu nutzt es das frei verfügbare Programm MRTG[6].
Neben der Konfiguration mit Hilfe des Web-Front-Ends kann der Admin auch über SSH auf die Firewall zugreifen. Das ist dann hilfreich, wenn die Oberfläche eine bestimmte Einstellung nicht vorsieht – allerdings kann es passieren, dass ein Konfigurations-Back-End bei dem nächsten Lauf die neuen Werte wieder überschreibt.

Abbildung 3: Die Astaro-Firewall verfügt über eine eigene lokale Benutzerverwaltung. Damit ist es möglich, nur bestimmten Usern den Zugang zum Internet über einen der Proxies zu gestatten.
Technische Details
Interessanterweise ist auf der Festplatte kein »/boot«-Verzeichnis zu finden, in dem normalerweise die Kernel und gegebenenfalls die Initrds liegen. Auch findet sich im Root-Verzeichnis kein Symlink zu einem Kernel. Das gesamte Bootsystem inklusive Kernel liegt im Verzeichnis »/emergency/boot« zusammen mit der Initrd und dem Bootloader Lilo sowie dessen Benutzerprogramm und Konfigurationsdatei.
Die unkomprimierte Initrd startet nach dem Booten des Kernels. In ihr liegt das Shell-Skript »/linuxrc«, das als Nächstes startet und in den einzelnen Partitionen den ersten bis dritten Superblock überprüft. Unklar dabei ist, warum nach dem Verlassen der Initrd und dem Starten des Skripts »/sbin/init.d/boot« dieser Check nochmals mit dem ersten Superblock durchgeführt wird.

Abbildung 4: Durch die Definition von Netzwerken wird die weitere Konfiguration übersichtlicher: Ein einziger aussagekräftiger Name ersetzt dann die IP-Adresse und die Netzmaske.
Ungewöhnlicher Bootmechanismus
Als Nächstes starten die einzelnen Init-Skripte aus »/sbin/init.d«, die verschiedene kleinere Initialisierungen durchführen. Ab hier weicht das Astaro-Linux signifikant vom normalen System-V-Startmechanismus ab: Es startet das Back-End-Programm für die Konfiguration, das aus dem Verzeichnis mit den zentralen Konfigurationsdateien in »/etc/wfe/ conf« die verschiedenen Subsysteme der Firewall aufbaut. Dazu gehört unter anderem der Paketfilter.
Da das Back-End-Programm kein Skript ist und auch keine Dokumentation zu finden ist, bleibt das genaue Verhalten des Programms leider verborgen. Ähnliches gilt auch für den Paketfilter: Es gibt keine sichtbaren Regelwerke beispielsweise für die Regeln, die automatisch mit der Konfiguration eines Proxies zum Einsatz kommen.
Wenn der Administrator keine eigenen Filterregeln konfiguriert, ist nach dem Booten ein sehr kompaktes und überschaubares Regelwerk automatisch aktiv. Diese Regeln sollte er sich auf jeden Fall ansehen, da sie relativ offen sind (entweder auf der Konsole mit »iptables -nL« oder über das Web-Front-End).
Auch im Kernel sind nur relativ wenig Optionen aktiviert, die zur Sicherheit des Netzwerks beitragen könnten. So ist beispielsweise auch das Reverse Path Filtering (»/proc/sys/net/ipv4/conf/*/ rp_filter«) nicht aktiviert, obwohl es einen Schutz gegen IP-Spoofing bieten würde. Auch im Paketfilter sind keine Antispoofing-Regeln zu finden.
Aufgrund der zentralen Konfigurationsdateien in »/etc/wfe/conf« ist ein Backup der Firewall sehr einfach: Diese Files genügen, um eine neue Astaro-Firewall mit der gleichen Konfiguration wieder herzustellen. Abbildung 5 zeigt den internen Ablauf bei der Konfiguration über das Web-Front-End.

Abbildung 5: Die Web-Oberfläche der Firewall legt die vom Admin erzeugte Konfiguration in zentralen Files ab. Aus diesen Dateien erzeugt das Back-End dann die Konfiguration der einzelnen Dienste.
Proxy im Käfig
Alle Proxies sind in einem Chroot-Käfig unterhalb des Verzeichnisses »/var« eingesperrt. Ein Techniker des Herstellers konnte bestätigen, dass die Firewall auch Kernel-Capabilities für Squid und Bind einsetzt. Leider ist nicht nachzuvollziehen, wann und mit welchen Mitteln welche Capabilities den einzelnen Programmen entzogen werden.
Zurzeit verwendet Astaro Qmail als E-Mail-Relay. In einer der nächsten Versionen soll es gegen Exim ausgetauscht werden. Wie bereits zuvor erwähnt, ist in der kommerziellen Version zusätzlich der Virenscanner der Kaspersky Labs enthalten; er kommt im E-Mail-Server zum Einsatz.
Eindrücke
Das sehr ansprechende Web-Front-End für die Konfiguration kann nicht darüber hinwegtäuschen, dass die Astaro-Firewall einen eher begrenzten Funktionsumfang liefert. Neben den genannten Standardkomponenten sind keine weiteren Proxies oder Relays vorhanden. Besonders fehlen hier ein generischer Proxy (zum Beispiel der Rinetd), ein reiner FTP-Proxy sowie eine einfache Möglichkeit, den Verkehr aus dem Internet über die Proxies auf lokale Server in einer DMZ zu leiten.
Natürlich könnte man seine eigenen Wünsche auch über NAT umsetzen, dann besteht aber keine Möglichkeit mehr, das Protokoll der Verbindung (HTTP, FTP oder Ähnliches) zu überprüfen. Außerdem wird dadurch die Konfiguration erheblich komplexer.
Die Update-Möglichkeit über das Internet ist sehr praktisch und kann automatisiert werden. Der Admin muss dann die Patches nicht mehr manuell herunterladen und installieren. Diese Updatefunktion wird über SSH gesichert bewerkstelligt. Dennoch ist es empfehlenswert, die Updates nur unter der Aufsicht des Administrators einzuspielen.
Ungereimtheiten
Neben den im Kasten “Bug gefunden” beschriebenen Problemen fällt auf, dass das ganze System relativ schwer zu durchschauen ist. Astaro verwendet Programme in einer für Linux unüblichen Weise: Das Konfigurations-Back-End baut direkt die Paketfilter-Regeln auf, nicht wie üblich ein Startskript. Damit bleibt das Regelwerk im Verborgenen. Auch die Kernel-Konfiguration ist nur auf Anfrage erhältlich. Es lässt sich also nicht einfach mal so überprüfen, welcher Teil im Kern aktiviert ist oder ob Astaro Treiber einsetzt, die der Standardkernel nicht enthält. Auch ein erfahrener Linux-Administrator benötigt etwas Zeit, um sich in die Vorgänge der Firewall einzuarbeiten.
Ungewöhnlich ist auch, dass bei mehreren Programmen (wie »mdw-daemon.pl« oder »superdaemon.pl«) der Name ein Perl-Skript suggeriert, obwohl es sich um binäre Programme handelt. Das Gleiche gilt auch für das zentrale CGI-Programm des Web-Front-Ends: Im Browser erscheint der Name »index.pl«, der aber nur ein Symlink auf ein 1,3 MByte großes Executable ist.
Ein weiterer verwirrender Punkt ist SSH. Der Daemon ist so verändert, dass er als Versionsbezeichnung immer den generischen String »Astaro Security Linux 2.0« angibt; auch mit dem Kommandozeilen-Aufruf »sshd -v« erscheint dieser Versionsname. Dieses Vorgehen erinnert an das (verpönte) Motto “Security by Obscurity”. Der SSH-Client scheint hingegen unverändert zu sein – er zeigt die Version OpenSSH 2.1.1 an, eine sehr alte Version. Falls der SSH-Daemon ebenfalls so alt ist, kann man eigentlich nur von seinem Einsatz abraten: Er enthält einige bekannte Schwachstellen (siehe dazu die Beschreibungen auf Securityfocus[7]). Nachdem wir Astaro dieses Problem mitgeteilt hatten, gab die Firma ein Update heraus, das die OpenSSH-Version 3.0.2p1 einspielt[8].
Fazit
Wenn der eher geringe Funktionsumfang von Astaro Security Linux dem Einsatzzweck entspricht, dann ist die Firewall ein einfach zu administrierendes Softwarepaket. Auch ein Administrator ohne Unix- oder gar Linux-Kenntnisse kann mit dem Web-Front-End die Firewall sicher konfigurieren. Die komfortable Oberfläche macht ihn unabhängig vom Betriebssystem seines PCs. (fjl)
Astaro Security Linux |
System: Die Firewall wird auf der Festplatte installiert und über ein SSL-gesichertes Web-Front-End konfiguriert. Fazit: Mit der sehr gut aufgebauten Konfigurationsoberfläche kann selbst ein Administrator die Firewall verwalten, der von Linux kaum Kenntnisse besitzt. Die Firewall hat neben dem Stateful-Packet-Filter auch Proxies für WWW, DNS und E-Mail sowie einen Socks-Proxy und VPN-Funktionalität. Sie bietet vollständiges NAT und stellt einen Monitor zur Netzlast-Überwachung bereit. Das Basissystem dagegen ist selbst für einen erfahrenen Linux-Administrator schwer zu durchschauen und weist auch einige Ungereimtheiten auf. |
Bug gefunden |
|
Die Umsetzung von Sicherheitsmerkmalen, etwa das Chroot oder auch der MTRG zur Überwachung der Netzwerklast, wirken auf den ersten Blick sehr ausgereift. Mein Vertrauen in die Firewall wurde aber durch folgende Fehler untergraben: Im Startskript des Webproxies Squid fand ich nach der ersten halben Spiel-Stunde mit der Firewall eine »/tmp«-Race-Condition. Obwohl dieser Bug in der vorliegenden Version nicht ausnutzbar ist (da das »/tmp«-Verzeichnis beim Booten kurz vorher komplett gelöscht wird), darf ein solcher Schnitzer bei einer Firewall eigentlich nicht passieren. Laut Changelog ist der Fehler in dem Shellskript seit über einem Jahr nicht aufgefallen. Einer der Astaro-Entwickler versicherte mir allerdings, dass dieses Changelog nicht aktuell war und dass das Problem in einer neueren Version behoben sei. Viel bedenklicher stimmte mich aber eine weitere Temp-Race-Condition im Perl-Programm »psd-watcher.pl«, das als Daemon-Prozess mit Root-Rechten ständig aktiv ist. Diese Schwachstelle ist nicht mehr so unproblematisch. Ich habe den Bug einem Techniker bei Astaro mitgeteilt, bis zum Redaktionsschluss kam aber keine Reaktion mehr. Zu vielen von Astaro entwickelten Programmen der Firewall ist gar kein Quellcode verfügbar, so dass eine Beurteilung ihrer Sicherheit etwas schwer fällt. |
Infos |
|
[1] Freshmeat: [http://freshmeat.net] [2] Astaro-Homepage: [http://www.astaro.de] [3] FAQ zu Astaro Security Linux: [http://docs.astaro.org/asl-faq.pl] [4] Astaro-Support-Portal und Diskussionsforum: [http://www.astaro.org] [5] Stephan Müller und Andreas Siegert, “Pakete unter der Lupe”, Linux-Magazin 1/02, S. 52 [6] MRTG (Multi Router Traffic Grapher): [http://www.mrtg.org] [7] Bugs in OpenSSH 2.1.1: [http://www.securityfocus.com/bid/2347] sowie Bugtraq-ID 2917 und 2344 [8] Astaro-Update mit neuem OpenSSH: [http://freshmeat.net/releases/64842/] |
Der Autor |
|
Stephan Müller arbeitet seit Mai 2001 für die Atsec Information Security GmbH als Netzwerk-Security-Consultant. Für Linux hat er Skripte zur Nutzung des Linux-Traffic-Control-Subsystems zusammen mit einem Paketfilter geschrieben. [http://www.chronox.de] Zudem arbeitet er noch an dem Open-Source-Projekt Sitar mit. [http://sitar.berlios.de] |






