Aus Linux-Magazin 10/2003

Aus dem Nähkästchen geplaudert, Teil 1: Einführung in die Welt der Admins

Wer ganze Gruppen von Linux-Systemen verwaltet, unterscheidet sich vom Root einer einzelnen Workstation. Diese Serie widmet sich den Besonderheiten der Linux-Administration in komplexen Umgebungen. Nach der Einführung stellt dieser erste Teil ein einfaches, aber effektives Überwachungssytem vor.

Unix ist benutzerfreundlich, es sucht sich seine Freunde nur gut aus. Diesen etwas angestaubten Spruch hat jeder Linux-Anwender gewiss schon mal gehört. Er trifft die Realität aber recht gut: Bereits die ersten Annäherungsversuche bei der Installation fallen, je nach individuell zugeteiltem Glück, mehr oder minder emotionsgeladen aus. So bildet sich die Grundlage für lebenslangen Hass oder innige Freundschaft.

Admin-Know-how ist fast unvermeidbar

In der Folgezeit erlernt der Linux-Nutzer fast zwangsläufig administrative Grundkenntnisse. Fähigkeiten, die früher den langhaarigen, weiß bekittelten Fachleuten aus der EDV-Abteilung vorbehalten waren, gehören heute zum Handwerkszeug jedes PC- Eigentümers – sofern er Linux verwendet und das Betriebssystem auch selbst installiert. Bei vielen kniffligen Aufgaben unterstützen ihn die bequemen Werkzeuge der gewählten Distribution, wenn es zum Beispiel um die Konfiguration einer Netzwerkkarte oder ein halbwegs sinnvolles Backupsystem geht. Manuelle Eingriffe auf der Konsole sind immer seltener nötig, GUI-gestützte Tools decken beinahe alle wichtigen Gebiete ab.

Listing 1: Zu prüfende Services

01 test/ping  www
02 test/star  dbint
03 test/mysql dbext
04 test/mysql dbext2
05 test/http  www
06 test/http  www2
07 test/http  java
08 test/http  java2
09 test/ftp   ftp
10 test/smtp  mail
11 test/smtp  mail2
12 test/pop   mail
13 test/pops  mail
14 test/imap  mail
15 test/imaps mail

Menschen und Maschinen

Begriffe wie Admin und Operator haben sich in der Folge gewandelt. Den Root-User eines Einzelsystems unterscheidet vom Verwalter einer Serverfarm vor allem das Mehr an Menschen und Maschinen, das Letzterer betreuen muss. Bei der eigenen Workstation sind Admin und User in der Regel identisch – eine ideale Konstellation für die Konfliktvermeidung. Wer einen ganzen Park von Linux-Kisten unter sich hat, teilt die Geräte mit anderen. Das öffnet ungeahnte Kriegsschauplätze.

Der Admin kennt das System, seine Architektur und die daraus folgenden Notwendigkeiten. Bei den Benutzern ist das meist anders: Wer den Computer nicht versteht, akzeptiert Einschränkungen nicht so ohne weiteres. “Warum muss ich da jedes Mal ein Passwort eingeben? Wieso kann ich mein Outlook hier nicht starten? Das Ding fiept zu laut, wenn ich es einschalte!” Ein späterer Artikel dieser Reihe wird auf die besonderen Wünsche der Windows-gewohnten Angestelltenschaft eingehen.

Ganz andere Erfreulichkeiten ergeben sich, wenn umgekehrt die Nutzer noch etwas besser Bescheid wissen als der Verantwortliche für die Rechner. Klares Netzwerkdesign ade, heißt es in dieser Situation schnell. Wer sich nicht durchsetzt, findet auf jeder Maschine eine andere Installation vor.

Größenordnungen

Auch die Anzahl der Rechner wirft neue Fragen auf. Ein geübter Linux-Freund braucht für die Installation in der Nachbarschaft selten mehr als eine Stunde. Seine Technik stößt aber hart an die Grenzen der Admin-Realität, wenn hundert Server auf einmal betriebsbereit werden müssen – statt über vier Tage durchzuarbeiten, sind bessere Alternativen gefragt.

Die spätere Software-Installation und die Updates gegen Sicherheitslücken sind ein ähnliches Problem. Per Hand durchgeführt (Abbildungen 1 und 2) kosten sie auf einem einzelnen Rechner kaum Zeit – aber viele Male wenig Zeit bedeutet schnell einen verlorenen Tag. Gut, wenn sich der Admin zu helfen weiß. Dass einige der hübschen grafischen Tools in einem größeren Netzwerk ihren Wert verlieren, ist eine Herausforderung für den echten Profi.

Abbildung 1: Manuelle Online-Updates wie hier bei SuSE Linux sind für Einzelplatzsysteme eine hervorragende Lösung, um Sicherheits-Updates (rot) rasch einzuspielen. Admins großer Netze brauchen andere Techniken.

Abbildung 1: Manuelle Online-Updates wie hier bei SuSE Linux sind für Einzelplatzsysteme eine hervorragende Lösung, um Sicherheits-Updates (rot) rasch einzuspielen. Admins großer Netze brauchen andere Techniken.

Abbildung 2: Auch Red Hat bietet ein halbautomatisches Online-Update an. Im Gegensatz zur SuSE-Variante ist leider nicht zu sehen, ob es sich um normale Bugfixes oder um Sicherheitspatches handelt.

Abbildung 2: Auch Red Hat bietet ein halbautomatisches Online-Update an. Im Gegensatz zur SuSE-Variante ist leider nicht zu sehen, ob es sich um normale Bugfixes oder um Sicherheitspatches handelt.

Homogene Netze, in denen beispielsweise nur Red-Hat-Systeme stehen, sind die Ausnahme. In der Regel koexistieren Windows- mit Unix-Maschinen, oft sind mehrere verschiedene Unix-Varianten parallel im Einsatz. Selbst die Entscheidung für eine konkrete Linux-Distribution gelingt nicht überall. Recht häufig ist aber nur ein Team oder eine Person für die Vielfalt verantwortlich. Gut beraten ist, wer Aufgaben und Arbeitsabläufe trotzdem vereinheitlicht.

Ein echter Admin erledigt eine Vielzahl von Aufgaben in äußerst knapp bemessener Zeit. Effizienz ist das Zauberwort – Admins selbst umschreiben das gerne mit Faulheit. Sie sind zu faul, dieselbe Aktion mehrfach manuell auszuführen, also schreiben sie ein Skript, das ihnen die Arbeit abnimmt.

Immer verfügbar

Die Anzahl der Maschinen ist ein Problem, ein anderes sind die Anforderungen, die an sie gestellt werden. Stürzt der Heim-PC einmal ab, schimpft im schlimmsten Falle der Sohnemann, weil sein Onlinespiel nicht mehr funktioniert. Lösen kann man das Problem später mal. Steht jedoch ein Printserver in der Firma, drehen die Angestellten Däumchen und der Admin bangt um seine Stelle. Fällt gar eins der kritischen Systeme aus, kommt es schnell zu großen Verlusten an Geld und Daten. Der perfekte Admin sei derjenige, so heißt es, dessen Existenz man nicht bemerkt. Damit nun wirklich kein Stein des Anstoßes entsteht, gilt es vorzubeugen. Und das auf mehreren Ebenen.

Häufig unterschätzt, aber von zentraler Bedeutung ist die Dokumentation. Die Anforderungen an sie variieren stark – je komplexer das Netzwerk, desto detaillierter muss es beschrieben sein. Eine kleine Werkstatt mit zwei Teilzeit-Admins kommt vielleicht mit einem Schnellhefter im Serverraum aus, in dem die geplante und die tatsächliche Architektur verzeichnet sind. Änderungen werden sofort nachgetragen (siehe Abbildung 3) und neu ausgedruckt. Dokumentation mit Tinte und Papier hat den Vorteil, dass sie auch im Ernstfall verfügbar ist, wenn sich der Fileserver längst verabschiedet hat.

Sorgfältige Planung

Alle Änderungen an Systemen müssen deren Admins sorgfältig planen und testen, bevor sie sie in die Praxis umsetzen. Der private Apache darf beim Laden der geänderten Konfiguration schon mal blockieren. Einem öffentlichen Webserver sollte das tunlichst nicht passieren. Falls wider Erwarten doch etwas schief geht, muss ein durchdachter Notfallplan beim Wiederherstellen des vorigen Zustands helfen.

In weniger kritischen Situationen ist es schon mal üblich, dass ein erfahrener Admin neue Software über die Vorversion installiert oder Konfigurationsdateien an Ort und Stelle ändert. Mehr Vorsicht spart Nerven und sichert Arbeitsplätze: Wenn dem frisch übersetzten Modul noch eine Shared Library fehlt, sollte die Vorversion binnen Sekunden wieder zur Stelle sein.

Ausfälle vermeiden erreicht man nicht allein durch Umsicht. Gewisse Fehler mögen vermeidbar sein, Hardware-Ausfälle und gekappte Versorgungsleitungen gehören zu den ärgerlichen Unvermeidbarkeiten. Hier hilft ein konsequent redundantes Design, mit Blick auf Funktionen wie auch auf Systeme. Verschwindet eine Komponente von der Bildfläche, übernimmt die nächste. Aber nicht jeder Betrieb kann sich diese Materialschlacht leisten.

Kommt es trotz allem zum GAU, sollte der Admin ihn wenigstens rechtzeitig bemerken. Aber wer sitzt schon in der Nacht an der Konsole und prüft ständig die Syslogs? Kritische Dienste müssen vollautomatisch überwacht werden und gegebenenfalls selbsttätig auf Probleme aufmerksam machen.

Der große Bruder

Ein relativ einfaches, aber effektives System zur Überwachung ist schnell realisiert. Die aus Abbildung 3 bekannten Services sind in Listing 1 wiederholt: Die erste Spalte nennt den Pfad zu einem Skript, das den Dienst überprüft, Spalte zwei ergänzt den Namen des Hosts, auf dem der Service laufen sollte. Listing 2 zeigt als Beispiel die Datei »test/smtp«, ein Mini-Testskript für den Mailservice. Wenn die Verbindung zum SMTP-Port fehlschlägt oder die Begrüßungsmeldung nicht mit der Ziffer »2« beginnt, gibt das Skript eine Alarmmeldung aus (Zeile 11), sonst nichts (8).

Abbildung 3: Genaue Dokumentation gehört zu den Aufgaben eines Admin: Diese Liste mit Serverdiensten hilft im Notfall der Aushilfskraft bei ihrer Arbeit.

Abbildung 3: Genaue Dokumentation gehört zu den Aufgaben eines Admin: Diese Liste mit Serverdiensten hilft im Notfall der Aushilfskraft bei ihrer Arbeit.

Listing 2: SMTP-Test

01 #!/usr/bin/perl -w
02 
03 use Socket;
04 die "No host name given" if not defined $ARGV[0];
05 if (socket(SOCK, PF_INET, SOCK_STREAM,  getprotobyname('tcp')) and
06     connect(SOCK, sockaddr_in(25, inet_aton($ARGV[0])))) {
07     my $line = <SOCK>;
08     exit 0 if defined $line and $line =~ /^2/;
09 }
10 # Fehler:
11 print "smtp auf $ARGV[0]n";
12 exit 1;

Ein Steuerskript (Listing 3) liest in Zeile 6 die Datei aus Listing 1 und führt ihren Inhalt aus. Dieser Shellprogrammierer-Trick fasst gleichzeitig die Ausgaben aller Testskripte im String »$RES« zusammen. Wenn einer der Tests fehlschlägt, sendet der Master eine Mail an die in Zeile 4 genannten Adressen. Da viele Mail-to-SMS-Gateways nur das Subject weiterleiten, hängt das Skript in Zeile 11 die Fehlermeldungen dort an.

Aus der Ferne

Das Skript kann mehrmals pro Stunde laufen und verschickt nur im Fehlerfall eine E-Mail an eine bestimmte Adresse. Wer sein Handy als Ziel angibt, erhält selbst in der Oper eine Nachricht, wenn der Webserver in der Firma hängt. Freilich sollte das Überwachungssystem nicht gerade auf dem eigenen Webserver laufen und zusammen mit ihm ausfallen. Externe Failover-Systeme gibt es für die meisten Profi-Websites, sie bieten sich als Basis für die Überwachung geradezu an. Es gibt auch einige entsprechende Anbieter im Internet.

Listing 3: Überwachungsskript

01 #!/bin/sh
02 
03 # Zieladressen für die Mails
04 DEST="01712345678@t-d1-sms.de, musikfan@imail.de"
05 
06 RES=`. liste`
07 if [ "$RES" != "" ]; then
08         cat <<EOF | /usr/lib/sendmail -t -U
09 From: root@localhost
10 To: $DEST
11 Subject: URGENT: Server-Problem: $RES
12 
13 Hallo,
14 
15 auf dem Webcluster sind Probleme aufgetreten, und zwar bei folgenden
16 Services:
17 
18 $RES
19 EOF
20 fi

Der Ausfall des überwachenden Systems ist schwer zu bemerken – denn es kann ja nichts mehr verschicken. Erfolgsmails, wenn alles glatt geht, sind bei zehn Tests in der Stunde schnell ermüdend. Eine Alternative ist es, alle Tests zu protokollieren und ein- oder zweimal täglich zusammenzufassen. Sofort, wenn ein Fehler auftritt, sonst jeweils um acht und zwanzig Uhr. Dann bleibt nur noch zu hoffen, dass innerhalb von zwölf Stunden nicht sowohl die Überwachungsmaschine als auch ein kritischer Dienst ausfallen.

Backup, Datenschutz und Datensicherheit

Last, but not least treibt das ungeliebte Thema der Backups an die Oberfläche. Sicherungskopien sind auf einem einzelnen Rechner schon so lästig, dass viele Leute in sträflichem Optimismus auf sie verzichten. Bei einer größeren Zahl von Computern steigen das Datenvolumen und vor allem der logistische Aufwand. Ein Trost bleibt: Mehr Geräte heißt mehr Ausfallwahrscheinlichkeit, die Backups lohnen sich also früher.

Sicherheit spielt in komplexen Umgebungen eine ungleich größere Rolle als daheim. Die wichtigste Security-Strategie für den Privatrechner lautet: alle Server abschalten und über den Paketfilter alle ankommenden Verbindungen blockieren. Auf eine Serverfarm lässt sich das Konzept nicht übertragen, Netzwerkdienste sind Inhalt und Aufgabe dieser Maschinen. Statt sie einfach zu blockieren, muss man sie absichern. Die Firewall hilft jetzt nicht mehr so leicht.

Kritische Bedeutung erhalten nun die Updates und Patches. Ist eine Sicherheitslücke gefunden und publiziert, muss der Admin sie möglichst bald schließen. Das heißt nicht, in blindem Aktionismus jede Software aktualisieren. Neue Versionen enthalten meist auch neue Fehler oder Idiosynkrasien. Was einmal funktioniert hat, wird nicht für immer gut gehen. Es gilt, sich sorgfältig zu informieren und in jedem Einzelfall verantwortungsbewusst zu entscheiden, ob und wann ein Update fällig ist.

Angriffsversuche oder gar Einbrüche erkennen ist zurzeit ein heiß diskutiertes Thema. Jeder hat sein privates Erfolgsrezept und fragt sich, warum nicht alle auf den gleichen Zug springen. Unbestritten ist: Zum fachmännischen Management von Computern im professionellen Umfeld gehört eine durchdachte Lösung dieses Problems. Die händische Durchsicht von 25 MByte Logfiles täglich wird sich nicht qualifizieren.

Ausblick

Selbst wenn der Umgang mit Linux an sich problemlos geworden ist, erwarten den Administrator auch heute noch genügend Aufgaben, die seinen Job interessant und reizvoll machen. Trotz KDE, Gnome und Yast sind seine besonderen Kenntnisse weiterhin gefragt. Es ist kein Zufall, dass fähige Systemverwalter nach wie vor heiß umworben sind. In den kommenden Ausgaben wird diese Serie in verschiedene Themenkomplexe rund um das Administrieren einführen. Die soeben angesprochenen Punkte sind sicherlich dabei, ergänzt um weitere wichtige Aufgaben. (fjl)

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben