Titel: LU 08/2005 - Devil-Linux
Pfad: http://www.linux-user.de/ausgabe/2005/08/076-devillinux/index_html
von Stephan A. Rickauer
Entworfen von Admins für Admins -- wir wissen, was ihr braucht, weil wir es ebenfalls brauchen!" Mit diesem markigen Slogan tritt das 2003 entstandene Devil-Linux [1] an. Dennoch gehören auch Freizeitadministratoren und fortgeschrittene Heimanwender zur Zielgruppe des Systems. Die Distribution unterscheidet sich deutlich von ihren populären Mitbewerbern à la Suse, Mandriva oder Fedora. Getreu dem Motto "Weniger ist (manchmal) mehr" verzichtet es auf KDE, Gnome oder andere grafische Desktops, die Entwicklern haben es stattdessen konsequent auf Sicherheit optimiert (Kasten 1).
Gar nicht teuflisch präsentiert sich Devil Linux gegenüber seinem Admin: Bei Installation, Basis-Konfiguration und im Arbeitsalltag unterstützt es ihn mit einfachen, aber wirkungsvollen Werkzeugen. Das Erstellen von Firewall-Regeln überlässt der symptische Teufel lieber anderen Spezialisten: Er verträgt sich bestens mit dem Firewall Builder [7], den ein Artikel in LinuxUser kürzlich vorgestellt hat [8]. Das Gespann arbeitet als sehr professionelle Firewall, die der Admin von seinem eigenen Rechner im internen Netz aus fernwartet.
| Kasten 1: Teuflisch sicher |
|
Devil-Linux schützt nicht nur das interne Netz vor Angriffen, sondern auch sich selbst vor böswilligen Zeitgenossen. Dazu verwenden die Entwickler vor allem den GRSecurity-Patch sowie den so genannten Stack Smashing Protector, mit dem sie fast alle Programme übersetzt haben. GCC Stack Smashing ProtectorDiese Compiler-Modifikation schützt in der Sprache C geschriebene Applikationen und Programme. Sie greift beim Übersetzen (kompilieren) von Quellcode in ausführbaren Programmcode. Das Ziel: Pufferüberläufen, so genannten Buffer Overflows, den Schrecken zu nehmen. Bei Buffer Overflows versucht eine Software, Daten in einen zu kleinen Speicherbereich zu schreiben. Das tritt meist auf, wenn sich das Programm mit unerwartet großen Datenmengen konfrontiert sieht und das nicht erkennt, sondern sie stur in einen Puffer mit vorgegebener Größe ablegt. Durch gezieltes Ausnutzen solcher Schwachstellen wird es einem Angreifer möglich, eigenen Maschinencode mit den Rechten des attackierten Programms auszuführen. Das von IBM entwickelte GCC-Modul sorgt dafür, dass das Ausnutzen deutlich schwerer wird. Fast alle Programme, die mit Devil-Linux ausgeliefert werden, sind mit dem Stack Smashing Protector kompiliert und daher in Bezug auf Buffer Overflows wesentlich weniger anfällig als gewöhnlich übersetzte Software (siehe auch [5]). GRSecurityDevil-Linux verwendet den GRSecurity-Patch, der weitreichende Sicherheitsmaßnahmen direkt im Kernel implementiert. Dazu gehören erweiterte Logging-Mechanismen, verstärkte Chroot-Beschränkungen, um Prozesse sicherer einzusperren, rollenbasierte Zugriffsbeschränkungen, Adressraum-Modifikationen, um den Speicherzugriff zu härten und vieles mehr. Eine Liste aller Features findet sich auf [6]. |
Im Gegensatz zum kürzlich in LinuxUser vorgestellten IPCop [2] ist Devil-Linux bewusst als Live-CD konzipiert. Das erhöht die Sicherheit im späteren Betrieb des Systems. Ein Eindringling hat keine Chance, dauerhaft Dateien zu manipulieren -- nach einem Neustart ist erst einmal wieder alles im Lot. Dennoch kommt der Admin nicht umhin, im Ernstfall die Ursache der Kompromittierung aufzuspüren und die Lücke zu schließen, beispielsweise durch Rekonfiguration der Dienste oder Patchen des Systems. Verzichtet er darauf, sind die Eindringlinge schnell wieder im System.
Angenehmer Nebeneffekt der Live-CD: Der Rechner braucht keine Festplatte. Besonders für den Heimanwender ist das interessant, wenn sie auf mechanische Betriebsgeräusche im Büro oder Wohnzimmer verzichten wollen. Der kleine Teufel lässt sich sogar auf einem USB-Stick installieren, dann darf auch das (nicht immer leise) CD-Laufwerk entfallen. Allerdings muss der Rechner dafür das Starten von USB-Geräten unterstützen, bei älteren Modellen ist das oft nicht der Fall.
Wer auf dem Devil-System einen Dienst installieren möchte, der auf eine lokale Festplatte angewiesen ist (zum Beispiel einen Web-Proxy), bindet die Platte problemlos ein. Wie das funktioniert ist in der Dokumentation [3] hervorragend beschrieben.
Devil-Linux ist auf der Heft-CD dieser Ausgabe zu finden: Einfach einlegen, System booten und unverbindlich testen oder als Firewall in Betrieb nehmen. Das Original stammt von [2]. Um eine eigene Devil-Linux-CD zu bauen, lädt man die tar.bz2-Datei der aktuellen Version 1.2.5, entpackt sie und brennt das darin enthaltene ISO-Abbild mit cdrecord auf CD:
tar -xjf devil-linux-1.2.5-i486.\ tar.bz2 su cdrecord -v dev=0,0 devil-linux-\ 1.2.5-i486/bootcd.iso
Die Device-Nummern hinter dev= geben die Position des CDR-Laufwerks an. Welche das auf dem eigenen Rechner ist ermittelt der Aufruf cdrecord -scanbus. Statt cdrecord eignen sich auch grafische Toast-Programme wie K3B, um das ISO-Image bequem auf die CD zu bannen.
Egal ob selbstgebrannt oder Heft-CD: Das BIOS des künftigen Firewall-Computers muss das Starten von CD-ROM unterstützen. Dazu ist es eventuell nötig, die Bootreihenfolge der Laufwerke anzupassen. Weil sich Devil ganz Teufel-untypisch gibt und die Festplatte ohne explizite Aufforderung nicht anrührt, ist dieses Linux gefahrlos auch auf dem eigenen Arbeitsplatzrechner zu testen.
Kurz nach dem Start der CD grüßt das System mit einer freundlichen Startseite. An dieser Stelle stehen einige Optionen für die Bildschirmauflösung zur Wahl. Ein einfaches [Enter] haucht dem kleinen Teufel Leben ein: Das System bootet.
Während dem Systemstart sucht Devil-Linux nach lokalen Speichermedien, auf denen sich eventuell Konfigurationsdaten befinden. Dafür kommen Floppys, USB-Sticks, Festplatte oder die selbstgebrannte CD in Frage. Es ist sinnvoll, sich an dieser Stelle mit einer formatierten Diskette zu bewaffnen und sie in das Floppy-Laufwerk einzulegen -- Devil will alle folgenden Anpassungen des Systems wieder abspeichern.
Da die Konfiguration andernfalls nach dem nächsten Reboot verloren wären, besteht Devil-Linux darauf, dass der Admin ein beschreibbares Speichermedium einlegt. Hat es eine Diskette oder einen USB-Stick gefunden, fragt das System noch freundlich, bevor es das Medium einbindet (siehe Abbildung 1).
Anschließend richtet Devil das Speichermedium ein, in diesem Fall die Diskette, und beschreibt sie mit einer Standard-Konfiguration in Form einer komprimierten Datei namens etc.tar.gz. Dass Devil-Linux auch alle später geänderten Konfigurationen wieder in die gleiche Datei schreibt, verdient das Prädikat "besonders praktisch". Dank dieses Vorgehens sind Backups des Systems mit einem einfachen Kopierbefehl erledigt und sogar Änderungen ohne Hilfe von Devil problemlos möglich: Im laufenden Betrieb kann man die Diskette herausnehmen und in einem anderen Rechner verändern.
Nach einem Reboot findet Devil-Linux die eben erstellte Datei, entpackt sie und konfiguriert das System entsprechend. Es erscheint beim ersten Booten noch eine Frage nach einem SCSI-System, die es zu beantworten gilt. Wenige Sekunden später folgt der Login-Prompt, an dem man sich als Benutzer Root anmeldet. Das Root-Kennwort ist noch nicht gesetzt, in diesem frühen Stadium genügt der Druck auf [Enter] um sich einzuloggen. Sicherheitstechnisch geht das auch in Ordnung, da der Netzwerkzugang noch inaktiv ist.
Devil-Linux verfolgt einen konsequent minimalistischen Ansatz und kennt folglich keine Weboberfläche zur Konfiguration, wie sie anderen Distributionen eigen ist. Auch eine Killerapplikation wie YaST fehlt. Das das System von Heiko Zuerker richtet sich eher an den schon etwas erfahreneren Administrator.
Allerdings lässt Devil-Linux seine Admins auch nicht völlig im Stich. Im Gegenteil, mit dem mitgelieferten setup-Programm ist jeder Freizeitadmin in der Lage, schnell und unkompliziert die wichtigsten Systemparameter einzustellen. Abbildung 2 zeigt das fast selbsterklärende Hauptmenü direkt nach dem Starten des Programms.
Im Bereich Basic liegen alle grundlegenden Einstellungen des Systems, zum Beispiel der Name des Computers, die Zeitzone, das Tastaturlayout und weitere Parameter. Das Menü Services gibt einen Überblick über die mitgelieferte Software-Ausstattung. Spätestens hier wird deutlich, dass die möglichen Anwendungsgebiete deutlich über eine Firewall hinausgehen. Es stehen Mail-, Web- und Datei-Server, einige Proxy-Dienste und viele kleine Werkzeuge zur Verfügung.
Wer mit den Pfeiltasten durch die Liste der Software scrollt, erhält jeweils am unteren Ende des Bildschirms eine kleine Beschreibung des gerade ausgewählten Pakets. Aber Achtung: Devil-Linux bietet keine Konfigurationsoberfläche für all diese Services -- schon aufgrund der Vielzahl der angebotenen Dienste wäre das für den Programmierer der Distribution kaum zu schaffen. Das Setup-Programm erlaubt lediglich, Dienste auszuwählen. Devil startet die gewählten Services beim nächsten Booten. Die Konfiguration erfolgt im klassischen Linux-Stil über die jeweilige Datei im /etc-Verzeichnis.
Für die Netzwerkkonfiguration ist das Menü NET zuständig. Es empfiehlt sich, im Voraus zu wissen, welcher Netzwerkadapter im Devil-Linux-System steckt. Der Systemkonfigurator präsentiert leider nur eine Liste mit Netzwerkkartentreibern, eine Hardware-Erkennung fehlt.
Die Distribution mildert dieses Manko durch ein wirklich übersichtlich zu bedienendes Netzwerk-Konfigurations-Tool. Sehr praktisch: Das Werkzeug kann Netzwerkkartentreiber auch testweise laden. Der Menüpunkt 1NIC wählt die erste externe Ethernet-Karte zur Konfiguration aus. Anschließend zeigt Devil-Linux, dass der Admin noch keinen Treiber für die Karte angegeben hat (UNKNOWN).
Tipp: Es empfiehlt sich, trotz des Unkown-Hinweises zu versuchen, den (nicht vorhandenen) Treiber zu laden (Menüpunkt Load Module). Der Linux-Kernel findet anschließend zwar kein Modul mit Namen UNKNOWN und lädt folglich keinen Treiber, dafür zeigt Devil-Linux aber einige sehr wertvolle Informationen an. Mit deren Hilfe fällt es leichter, den richtigen Treiber für die eigene Karte aufzuspüren (Abbildung 3a). Die Ausgabe offenbart, dass es sich im Beispiel um eine PCNet32-kompatible Karte von AMD handelt. Im nächsten Schritt -- Aufruf des Module-Dialogs -- gelingt es, den richtigen Treiber manuell zu wählen (Abbildung 3b).
Ob der Treiber wirklich passt, zeigt sich nach einem testweisen Laden des Moduls. Dieses Mal sollte es funktionieren, vorausgesetzt der Treiber kommt mit der Karte klar. Ist dies nicht der Fall, gilt es einfach weitere Treiber durchzuprobieren, bis der passende gefunden ist. Nach jedem Laden zeigt Devil-Linux erneut die Ausgabe von lsmod und lsdev und kehrt anschließend zum Konfigurationsdialog zurück.
Weiter kann sich der Heim-Admin im Setup-Tool für statische IP-Adresszuweisung entscheiden (sinnvoll für Firewalls) oder bei der dynamischen Variante bleiben, die Devil per Default nimmt. Letzteres funktioniert nur, wenn ein DHCP-Server seinen Dienst im gleichen Netzwerk verrichtet und Clients mit Adressen versorgt. Wer bei DHCP bleiben will, verlässt den NET-Dialog durch zweimaliges Anwählen der Back-Funktion. Wichtig: Vor dem Speichern der Konfiguration unbedingt noch mit Hilfe der Option LoginPW das Root-Kennwort setzen.
Hinter dem Menüpunkt Config versteckt sich das elegante Devil-Linux-Programm save-config. Es lässt sich auch manuell von der Konsole starten und speichert alle Änderungen zurück auf das Wechselmedium. Über das setup-Programm via Menü aufgerufen, fordert das Speicherprogramm zum Einlegen einer Diskette beziehungsweise zum Anstöpseln eines USB-Sticks auf.
Von seiner besten Seite zeigt sich das Tool, wenn der Admin eine Diskette einlegt, auf der sich bereits eine Konfiguration befindet -- zum Beispiel die beim ersten Booten angelegte Default-Konfiguration. Abbildung 4 zeigt die übersichtliche Arbeitsweise von save-config: Es findet alle Unterschiede (Größe der Dateien, Modifikationsdatum und mehr) zwischen den Daten der Diskette und den auf dem System vorhandenen heraus.
Mit diesen Detailinformationen ausgestattet, fällt die Antwort auf die folgende Frage leichter -- Devil will wissen, ob die Veränderungen Eingang in die neue, auf Floppy zu speichernde Systemkonfiguration finden sollen. Beim Speichern kreiert Devil-Linux erneut ein etc.tar.gz-File und schreibt es auf die Diskette.
Wie zu Beginn erwähnt, hat das Ein-Datei-Prinzip einige Vorteile in der täglichen Praxis. Das File lässt sich leicht auf einen separaten Computer kopieren -- als Datensicherung und als praktische Möglichkeit, die Konfiguration in einem anderen Rechner zu verwalten.
Dazu genügt es, das Archiv auszupacken, die enthaltenen Dateien anzupassen und das Paket erneut zu schnüren. Die geänderte etc.tar.gz kommt wieder auf die Diskette und diese in den Devil-Linux-Rechner. Noch einfacher ist es, das etc-Paket über das Netzwerk zu kopieren. Aber Achtung: Dafür empfehlen sich nur sichere Transportprotokolle wie OpenSSH -- das Paket enthält auch alle Kennwörter, inklusive des Root-Passworts.
Ist die Grundkonfiguration inklusive Netzwerk abgeschlossen, fehlt noch die Konfiguration der gewünschten Dienste. Hier hilft nur, die Anleitung für den jeweiligen Dienst zu studieren -- und in bester Unix-Tradition die Dateien von Hand zu bearbeiten.
Als IPtables-Firewall arbeitet Devil-Linux auch hervorragend mit dem grafischen FWBuilder [7] [8] zusammen; dieses Programm läuft auf einem eigenen Rechner und erzeugt die Konfiguration in dieser geschützen Umgebung. Ein zu Devil Linux passendes Policy-Installationsskript bringt FWBuilder praktischerweise schon mit: Es schreibt die neu erstellten Filterregeln direkt in die Konfigurationsdiskette. Damit klappt die Fernwartung per Diskette oder USB-Stick problemlos und sehr bequem.
Das sehr universell einsetzbare Devil-Linux richtet sich an den fortgeschrittenen Anwender, der Server-Dienste auf einem sehr sicheren Betriebssystem einsetzen möchte oder eine überdurchschnittlich harte Firewall benötigt. Aber auch dem Linux-interessierten Heimanwender bietet das Live-CD-Konzept die Möglichkeit, gefahrlos in das faszinierende Reich des kleinen Linux-Teufels zu blicken. Ähnlichkeiten mit anderen Teufeln der freien Szene sind natürlich rein zufällig. (fjl)
| Infos |
|
[1] Devil-Linux: http://www.devil-linux.org
[2] Thomas Leichternstern, "Zugangskontrolle: Netzwerke mit IP-Cop schützen", Linux-User 05/2005, S. 6 [3] Dokumentation zu Devil-Linux: http://www.devil-linux.org/documentation/1.2.x/ [4] Download von Devil-Linux: http://www.devil-linux.org/downloads/ [5] SSP: http://www.research.ibm.com/trl/projects/security/ssp/ [6] GRSecurity: http://www.grsecurity.net/features.php [7] FWBuilder: http://www.fwbuilder.org [8] Stefan A. Rickauer, "Maurermeister: Grafische Firewall-Administration mit FWBuilder", Linux-User 05/2005, S. 72: http://www.linux-user.de/ausgabe/2005/05/072-fwbuilder/ |
| Der Autor |
|
Stephan A. Rickauer ist Associate Member der Free Software Foundation und betreut freie Unix-Systeme am Institut für Neuroinformatik der ETH Zürich. |
Copyright © 2005 Linux New Media AG
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.