Manuelles Update für den SLOS

31.03.2004 von MAX PRATZ 
Der mit dem Compact 04/03 und als Download bei tecCHANNEL ausgelieferte SuSE Linux Office Server weist inzwischen einige ärgerliche Sicherheitslücken auf. Die lassen sich jedoch durch ein manuelles Update stopfen.

Mit dem tecCHANNEL-Compact 04/2003 haben wir einen vollwertigen SuSE Linux Office Server (SLOS) ausgeliefert. SuSEs damals gerade auslaufendes Office-Server-Komplettpaket ist auf starke Resonanz gestoßen: Zahlreiche Leser haben das inzwischen durch den Nachfolger SuSE Linux Standard Server abgelöste Produkt installiert.

Der Sinn und Zweck des Angebots - eine kostenlose Möglichkeit, den SLOS auf die Tauglichkeit zur eigenen Verwendung zu prüfen - wurde durch einige nachträglich entdeckte Sicherheitslücken allerdings teilweise relativiert. Auf Grund der Lizenzbestimmungen, die keinerlei Update für die im tecCHANNEL-Compact gelieferte Version vorsehen, hegen einige Leser nicht ganz zu Unrecht gewisse Bedenken hinsichtlich des Testeinsatzes. Andere kommen gar erst jetzt zu einer Installation des SuSE Linux Office Server und wollen vorher zumindest die gröbsten Löcher gestopft wissen.

Ohne Zugriff auf SuSEs Update-Pakete existiert jedoch kein "Königsweg" für eine Aktualisierung der SLOS-Pakete. Mit etwas Handarbeit allerdings lassen sich die ärgerlichsten Sicherheitslücken mit Hilfe von frei verfügbaren Quellen und Paketen stopfen.

Dieser Workshop ist ein Auszug aus dem aktuellen tecCHANNEL-Compact "LAMP - Linux, Apache, MySQL, PHP", dass Sie versandkostenfrei direkt in unserem Online-Shop bestellen können. Das Inhaltsverzeichnis dieser Compact-Ausgabe gibt es hier als PDF-Dokument. Ausführliche Infos zum tecCHANNEL-Compact "LAMP - Linux, Apache, MySQL, PHP" finden Sie hier.

Benötigte Pakete

Wie das funktioniert, finden Sie im Folgenden beschrieben. Wir haben die angebotenen Workarounds im tecCHANNEL-Netzwerklabor so weit wie möglich auf Funktionalität getestet. Eine Garantie für das Funktionieren oder gegen eventuell auftretende Datenverluste können wir allerdings nicht übernehmen. Sie patchen also auf eigene Gefahr.

Wir möchten noch einmal ausdrücklich betonen, dass die beschriebenen Updates ausschließlich dazu dienen sollen, den anstehenden Betrieb in nicht missionskritischen Umgebungen zu ermöglichen. Der mit dem tecCHANNEL-Compact ausgelieferte SuSE Linux Office Server eignet sich mangels automatischer Patch-Möglichkeit nicht für Mission-Critical-Umgebungen. Falls Sie ihn im Laufe des Betriebs für so nützlich befinden, dass Sie einen dauerhaften Produktiveinsatz anstreben, sollten Sie schon aus Gründen der Security die Anschaffung des erweiterten Nachfolge-Produkts SUSE Linux Standard Server überdenken.

Wichtige Updates für den SLOS

Folder

Paket

Vektor

Angriff

DoS = Denial of Service, SysZ = Systemzugriff

a1

glibc-2.2.4-78.i386.rpm

lok. Netz

DoS, SysZ

n1

sendmail-8.11.6-167.i386.rpm

extern

SysZ

n2

postfix-20010228pl08-22.i386.rpm

extern

SysZ

n2

rsync-2.4.6-499.i386.rpm

extern

SysZ

n3

pptpd-1.1.2-412.i386.rpm

extern

SysZ

sec1

openssh-2.9.9p2-156.i386.rpm

extern

DoS, SysZ

sec1

openssl-0.9.6b-158.i386.rpm

extern

DoS, SysZ

sec2

sendmail-tls-8.11.6-169.i386.rpm

extern

SysZ

Sicherheitslücken im SLOS-Kernel

Der ausgelieferte SLOS operiert mit einem Kernel der Versionsnummer 2.4.7. In dieser, aber auch in späteren Varianten wurden einige Sicherheitslücken entdeckt, über die im Wesentlichen Angreifer aus dem lokalen und externen Netz ihre Rechte ausweiten oder einen Denial of Service vornehmen können.

Eine der beiden gravierendsten Lücken wird durch die Art und Weise verursacht, in der Routing-Informationen verarbeitet werden. Flutet der Angreifer das Linux-System mit Paketen, die gefälschte Quelladressen enthalten, so steigt durch das Cache-Handling die CPU-Last massiv an. Durch sorgfältiges Aussuchen der gefälschten Adressen kann der Angreifer Hash-Kollisionen beim Auswerten der Routing-Tabelle provozieren und mit nur 400 Paketen pro Sekunde das Linux-System lahm legen. Grundsätzlich funktioniert der Angriff aber auch mit zufällig generierten Quelladressen, der Angreifer muss dann nur mehr Pakete senden. Auch Systeme, die den Datenverkehr über iptables sichern, sind vor dieser Denial-of-Service-Attacke nicht sicher.

Die zweite gravierende Lücke beruht auf einer Reihe von Fehlern im Systemaufruf execve(), die neben einer externen DoS-Attacke auch lokalen Benutzern eine Ausweitung ihrer Rechte ermöglicht. Hinzu kommen Schwächen im Spanning Tree Protocol STP, das jedoch beim SLOS wohl kaum zum Einsatz kommt. Schon gefährlicher ist die Möglichkeit zur Manipulation der Forwarding-Tabelle, die ein Angreifer aus dem lokalen Netz über gefälschte Pakete ausnutzen könnte.

Update auf Kernel 2.4.24

Nicht nur die genannten, sondern auch eine Reihe weiterer Fehler und Glitches - teils sicherheitsrelevant, teils nicht - lassen sich durch eine Aktualisierung auf die neueste Kernel-Version beheben. Zu Redaktionsschluss war das Linux 2.4.25, mit dem wir im Folgenden operieren werden. Alle Ausführungen sollten prinzipiell aber auch für spätere Kernel-Versionen der 2.4er Serie gelten.

Im ersten Schritt besorgen Sie sich auf Kernel.org die aktuellen Kernel-Sourcen, die als Tarball rund 26 MByte groß sind. Diese speichern Sie im Verzeichnis /usr/src ab und entpacken sie anschließend mittels des Kommandos tar xvvjf linux-2.4.25.tar.bz2. Die ausgepackten Dateien landen ohne weiteres Zutun in einem Folder namens linux-2.4.25. In diesen wechseln Sie jetzt und rufen über den Befehl make xconfig die komfortable, grafische Kernel-Konfiguration auf.

Als Grundeinstellung für den neu zu kompilierenden Kernel können Sie die Vorgaben nutzen, die SuSE in der Datei /boot/vmlinuz.config abgelegt hat. Dazu laden Sie die Einstellungen über den Menüpunkt "Load Configuration from File" der Kernel-Konfiguration. Einen Punkt müssen Sie gegenüber den SuSE-Vorgaben aber noch ändern. Über die Schaltfläche "File systems" erreichen Sie die Settings für die einzubindenden Dateisysteme. Dort ist das vom SLOS verwendete ReiserFS als Modul ("m") eingebunden. Dies ändern Sie auf "y", um ReiserFS gleich fest in den Kernel einzubinden.

Kernel abspecken

Zwar nicht zwingend notwendig, aber sinnvoll ist es, noch etwas mehr Zeit in das Kernel-Setup zu investieren. Mit ein wenig Mehraufwand lassen sich zahlreiche für den SLOS im Allgemeinen und den verwendeten Rechner im speziellen nicht notwendige Komponenten abschalten. Dies ergibt einerseits einen schlankeren Kernel und senkt andererseits den Zeitaufwand für die Kompilierung.

Typische Kandidaten für das Eliminieren sind beispielsweise:

Je nach den im Rechner verwendeten Komponenten lässt sich auch auf die Unterstützung für folgende Komponenten verzichten:

Ein gründliches Ausmisten nicht benötigter Treiber unter "Network device support" spart ebenfalls einiges an Kompilierungszeit.

Zum Abschluss speichern Sie vor dem Verlassen des Konfigurationsprogramms die Settings über den Schalter "Store Configuration to File" zur späteren Wiederverwendung in eine Datei ab. Als Lagerort drängt sich dazu /boot geradezu auf, gepaart mit einem "sprechenden" Dateinamen wie etwa "vmlinuz.config.2.4.25". Anschließend verlassen Sie das Konfigurationsprogramm über "Save and Exit", was die Settings auch für den folgenden Compiler-Lauf bereitstellt.

Kompilieren und Installieren des Kernels

Immer noch im Quellenverzeichnis - also /usr/src/linux-2.4.25 - starten Sie die Kompilierung unseres neuen Kernels über den Befehl make dep clean bzImage. Anschließend erstellen sie die Module über das Kommando make modules. Ein anschließendes make install kopiert einige wichtige Systemdateien um. Den neuen Kernel übertragen Sie aus dem Verzeichnis, in dem er erstellt wurde, in den Folder /boot. Dazu dient das Kommando cp /usr/src/linux-2.4.25/arch/i386/boot/bzImage /boot/vmlinuz-2.4.25. Der abschließende Befehl make modules_install sorgt für die korrekte Einbindung der erstellten Module.

Nun gilt es nur noch, den neuen Kernel auch dem Bootloader LILO bekannt zu machen. Dazu öffnen Sie die Datei /etc/lilo.conf und duplizieren dort den obersten Eintrag für das Bootimage. Dann modifizieren Sie den kopierten Abschnitt für unseren neuen Kernel. Der entsprechende Teil der lilo.conf sieht dann so aus:

(...)

image = /boot/vmlinuz-2.4.25
label = Linux 2.4.25
root = /dev/hda<partitionsnummer>
initrd = /boot/initrd

image = /boot/vmlinuz
(Einträge für Standard-Kernel ...)

Nach dem Speichern der modifizierten lilo.conf aktivieren Sie den neuen Eintrag durch Aufruf des Befehls lilo. Damit haben Sie den neu erstellten Kernel als standardmäßig zu bootenden Kernel aktiviert. Ein nun folgender Neustart des Rechners zieht das System mit dem frisch kompilierten Linux-Kern hoch - hoffentlich. Falls nicht, dann haben Sie beim Einstellen der Kernel-Optionen einen Schnitzer begangen. Kein Drama - in diesem Fall starten Sie das System einfach mit dem ja immer noch vorhandenen SuSE-Kernel neu und wiederholen den Einstellungs- und Kompilierungslauf.

Weitere Updates

Mit dem Update des Kernels auf die aktuellste Version haben Sie bereits einige kritische Linux-Schwachstellen beseitigt, die ein böswilliger Systembenutzer oder ein Angreifer aus dem lokalen Netz zum Einbruch in den Server nutzen könnte. Nun gilt es noch, einige wesentliche Scharten in wichtigen Server-Diensten zu stopfen, die einem externen Angreifer Ansatzpunkte zur Kompromittierung des Systems liefern könnten.

Dazu greifen wir nicht auf die entsprechenden Quelldateien zu, sondern nützen zu unserer Bequemlichkeit die Tatsache aus, dass der SLOS über seine Basis SuSE Linux Enterprise Server 7 eng mit dem "klassischen" SuSE Linux 7 verwandt ist. Daher besorgen wir uns direkt die Binaries im klassischen Binärformat aus einer der üblichen Update-Quellen für SuSE Linux 7. Eine passende Adresse dafür ist beispielsweise ftp.suse.com, wo die entsprechenden Dateien im Pfad /pub/suse/discontinued/i386/update/7.3 lagern.

GNU C Library

Als Voraussetzung für diese kleine Update-Orgie müssen Sie zunächst einmal die GNU C Library glibc in der Version 2.2.4 einspielen: Einige der nachfolgenden Pakete benötigen diese Version als Basis. Dabei stopfen Sie ganz nebenbei auch gleich noch ein Sicherheitsloch, über das Angreifer aus dem lokalen Netz Denial-of-Service-Attacken vornehmen oder im schlimmsten Fall sogar beliebigen Code auf dem System ausführen könnten.

Das entsprechende RPM-Paket laden Sie per FTP aus dem Unterverzeichnis a1 des oben angegebenen Pfades:

ftp ftp.suse.com
(...)
ftp> cd /pub/suse/discontinued/i386/update/7.3/a1
(...)
ftp> get glibc-2.2.4-78.i386.rpm
(...)

Nach dem Download spielen Sie mit dem Befehl rpm -Uvh glibc-2.2.4-78.i386.rpm das heruntergeladene Paket ein. Anschließend starten Sie mit einem brachialen init 6 das System neu. Diese Vorgehensweise ist nur nach dem Einspielen der glibc notwendig; andernfalls würde unter anderem die Benutzeranmeldung momentan nicht mehr funktionieren.

Ansonsten gilt die beschriebene Vorgehensweise mit FTP-Download und Einspielen via RPM-Paketmanager auch für die im Folgenden geschilderten Pakete und wird daher dort nicht mehr gesondert beschrieben.

sendmail / postfix

Eigentlich gehört das Versenden von Mails nicht zum vorgesehenen Funktionsumfang des SLOS. In unserem SLOS-Compact haben wir jedoch ausführlich beschrieben, wie Sie den Maildaemon zum Empfang und Versand elektronischer Nachrichten auf dem SuSE Linux Office Server einrichten können.

Die mit dem SLOS gelieferte Release von sendmail weist jedoch, wie etliche Versionen aus der 8er Serie des Programms, eine gravierende Schwachstelle in der Funktion prescan() auf, über die ein Angreifer einen Pufferüberlauf provozieren und so in das System eindringen kann.

Diese Lücke können Sie beseitigen, indem Sie aus dem Update-Unterverzeichnis n1 das Paket sendmail-8.11.6-167.i386.rpm herunterladen und installieren. Falls Sie stattdessen die Variante mit TLS-Unterstützung (Transport Layer Security) verwendet haben sollten, besorgen Sie sich stattdessen aus dem Unterverzeichnis sec2 das Paket sendmail-tls-8.11.6-169.i386.rpm.

Eventuell haben Sie statt sendmail auch die verbreitete Alternative postfix zum Mail-Transport eingesetzt. Auch dieser MTA weist zwei gravierende Schwachstellen auf, über die externe Angreifer einen Denial of Service hervorrufen oder an Informationen über das System gelangen können. Daher empfiehlt sich in diesem Fall eine Aktualisierung auf postfix-20010228pl08-22.i386.rpm, das Sie im Update-Unterverzeichnis n2 finden.

rsync

Über eine Schwachstelle in dem in SLOS enthaltenen rsync kann beim Betrieb als Daemon ein externer Angreifer das System kompromittieren. Ein Heap-Überlauf ermöglicht das Einspeisen und Ausführen beliebigen Codes im Rechtekontext des rsync-Servers.

Eine gewisse Bekanntheit hat diese Sicherheitslücke dadurch erlangt, dass sie in Kombination mit einer Kernel-Schwachstelle dazu benutzt wurde, die Server des Debian-Projekts zu knacken. Das soll uns natürlich nicht passieren. Daher laden wir aus dem Unterverzeichnis n2 das Paket rsync-2.4.6-499.i386.rpm herunter und spielen es über RPM ein.

pptpd

In die Kategorie VPN fällt der pptpd (Point-to-Point Tunneling Protocol Daemon), der die Verbindungsaufnahme über das gleichnamige Protokoll zu Windows-Maschinen unterstützt. In den engeren Funktionskreis des SLOS fällt der Daemon zwar nicht - aber wer weiß, vielleicht haben Sie ihn aus praktischen Gründen doch aufgesetzt.

Die mit dem SLOS gelieferte Version fällt allerdings durch einen Ganzzahlüberlauf unangenehm auf, über den ein externer Angreifer Systemzugriff erlangen könnte. Daher lohnt sich ein Update mit dem Paket pptpd-1.1.2-412.i386.rpm, das sich im Unterverzeichnis n3 befindet.

openssh / openssl

Für größere Aufregung nicht nur in der Linux-Gemeinde sorgte Ende September 2003 die fast gleichzeitige Entdeckung gravierender Sicherheitslücken in den ja gerade zur Absicherung von Systemen eingesetzten Zugangs- beziehungsweise Verschlüsselungspaketen OpenSSH und OpenSSL.

Obwohl verschiedener Natur, haben beide Schwachstellen ähnliche Effekte: Ein Angreifer kann den Dienst im "besten" Fall blockieren, im schlimmsten Fall sogar in das System eindringen. Die mit SLOS ausgelieferten OpenSSH- und OpenSSL-Pakete zählen leider zu den verwundbaren Versionen.

Abhilfe schaffen die Pakete openssh-2.9.9p2-156.i386.rpm und openssl-0.9.6b-158.i386.rpm, die sich beide im Update-Unterverzeichnis sec1 finden.

Fazit

Mit einigen wenigen Paket-Updates aus gut zugänglichen Quellen lassen sich die gravierendsten beim SuSE Linux Office Server aufgelaufenen Sicherheitslücken stopfen. Ein entsprechend bereinigtes System versieht derzeit im Netzwerklabor von tecCHANNEL klaglos seinen Dienst. Jede mögliche System- und Dienstekonfiguration zu evaluieren übersteigt aber deutlich die technischen und vor allen Dingen zeitlichen Möglichkeiten einer Redaktion. Deswegen laufen auch alle geschilderten Updates unter der Kategorie "ohne Gewähr".

Noch einmal betonen möchten wir, dass die vorgestellten Fehlerbereinigungen einzig dem Zweck dienen sollen, den Betrieb des (inzwischen, wie schon erwähnt, bereits ausgelaufenen) SuSE-Linux-Business-Produkts auch ohne größeres Nervenflattern noch etwas zu verlängern.

Falls der SLOS sich für Ihre Einsatzzwecke als so brauchbar erwiesen hat, dass Sie nicht mehr auf ihn verzichten wollen, dann sollten Sie den käuflichen Erwerb des Nachfolgeprodukts SuSE Linux Standard Server ernsthaft in Erwägung ziehen. Es erweitert nicht nur die Fähigkeiten des SLOS, sondern schließt auch gleich ein Jahr bequemer Online-Updates über das SuSE Maintenance Web ein - zu einem nicht übertriebenen Preis von 520 Euro. (jlu)

Zum Autor: Max Pratz ist seit 1990 als freiberuflicher Programmierer und Consultant für Netzwerk- und Internet-Themen in München tätig. Arbeitsschwerpunkte des seit Mitte der 80er Jahre zunächst bei Digital Equipment und später als Geschäftsführer für ein kleineres Münchner Systemhaus tätigen Pratz sind vornehmlich der Server-Einsatz von Linux, Netzwerksicherheit sowie WLANs.

Dieser Workshop ist ein Auszug aus dem aktuellen tecCHANNEL-Compact "LAMP - Linux, Apache, MySQL, PHP", dass Sie versandkostenfrei direkt in unserem Online-Shop bestellen können. Das Inhaltsverzeichnis dieser Compact-Ausgabe gibt es hier als PDF-Dokument. Ausführliche Infos zum tecCHANNEL-Compact "LAMP - Linux, Apache, MySQL, PHP" finden Sie hier.