Linux-Systemadministration
Open Source Software wird gegenüber kommerziellen Lösungen immer wichtiger.
Addison-Wesley trägt dieser Entwicklung Rechnung mit den Büchern der Open Source
Library. Administratoren, Entwickler und User erhalten hier professionelles Know-how,
um freie Software effizient einzusetzen. Behandelt werden Themen wie Betriebssysteme,
Netzwerke und Sicherheit als auch Programmierung.
In Vorbereitung:
Sicherheit ist ein Problem aller Betriebssysteme,
und meist ist es teuer, eine Installation wirklich
sicher zu machen. In diesem Buch zeigt der Autor,
dass dies auch ohne einen größeren finanziellen
Aufwand möglich ist.
Hier erfahren Sie, wie Sie Linux mit Hilfe von
Open-Source-Tools sicher machen.
Linux Security
Josef Brunner
ca. 700 Seiten, 1 CD-ROM
EUR 49,95 [D]/sFr39,50
ISBN 3-8273-1999-4
Jochen Hein
Linux-Systemadministration
Einrichtung, Verwaltung, Netzwerkbetrieb
An imprint of Pearson Education
München • Boston • San Francisco • Harlow, England
Don Mills, Ontario • Sydney • Mexico City
Alle Rechte vorbehalten
Einbandgestaltung: Marco Lindenbeck ()
Lektorat: Sylvia Hasselbach,
Korrektorat: Petra Kienle, Fürstenfeldbruck
Satz: reemers publishing services gmbh, Krefeld, www.reemers.de
Druck: Bercker, Kevelaer
Printed in Germany
Kapitelübersicht
Vorwort
XV
1
Linux – das Betriebssystem der Zukunft?
1
2
Linux-Standards
13
3
Ablauf eines Systemstarts
217
9
Unix-Tools
237
10 Werkzeuge (nicht nur) für Programmierer
311
11 Source- und Konfigurations-Management
327
12 XML unter Linux
343
13 Emulatoren unter Linux
351
14 Linux in einer vernetzten Umgebung
373
15 TCP/IP-Grundlagen
vi
Kapitelübersicht
23 Network Information Service
505
24 Dynamische IP-Konfiguration
513
25 Anonymous-ftp-Server
523
26 Internetzugang über Wählverbindungen
535
27 Virtuelle Private Netze (VPN)
551
28 Netzwerkadministration
559
A Der Standardeditor vi
4
Linux – das Betriebssystem der Zukunft?
XV
1
1.1
Linux-Distributionen
1
1.2
Linux-Features im Überblick
2
1.3
Linux-Distributionen im Vergleich
3
1.4
Die Zukunft von Linux
9
Linux Internationalization Initiative (Li18nux)
28
2.6
Die Free Standards Group
29
2.7
Standards, Standards, Standards
29
Ablauf eines Systemstarts
31
3.1
Überblick über einen Systemstart
31
3.2
Das Basic-Input/Output-System (BIOS)
56
3.8
Die init-Skripte im LSB
62
3.9
init-Konzepte ohne symbolische Links
63
Konfiguration und Administration
65
4.1
Anpassungen und Nachvollziehbarkeit
65
4.2
Kernel- und Hardware-Konfiguration
65
6
Inhaltsverzeichnis
4.7
Dokumentationen
123
4.8
Bibliotheken
124
4.9
Benutzerbezogene Konfiguration
125
Benutzer, Gruppen und Berechtigungen
133
5.1
Benutzerrechte als Konzept
146
5.7
Standardwerte für Berechtigungen
149
5.8
Berechtigungen und Gruppen im Einsatz
150
5.9
Weitere Dateirechte
152
5.10
Feiner unterteilte Berechtigungen oder der allmächtige
Benutzer root
153
5.11
Vergleich von Linux mit anderen Systemen
6.5
Konzepte und Begriffe
164
6.6
Aufruf und Kommandozeilenoptionen
166
6.7
Bedienung: Escape, Meta, Alt, Control und Shift
167
6.8
Tutorial, Hilfe und Info-Mode
170
6.9
Konfiguration
171
6.15
Sonstige Erweiterungen
195
Inhaltsverzeichnis
7
8
9
ix
Das X-Window-System
197
7.1
Das Konzept von X
197
7.2
Allgemeine X11-Kommandozeilen-Optionen
210
7.8
Zugriffskontrolle
211
7.9
Tools und nützliche Programme für X
215
Datensicherung
217
8.1
Notwendigkeit der Datensicherung
217
8.2
Plattenfehler überstehen mit RAID
234
8.8
Tipps und Tricks zur Datensicherung
235
Unix-Tools
237
9.1
Small is beautiful
237
9.2
Dateiverwaltung
239
9.3
Andere kleine Helfer
248
9.9
Die Shell als Bindeglied zwischen den verschiedenen
Programmen
287
9.10
Prozesse und Jobs
301
9.11
Small is Beautiful – auch heute noch?
308
x
Inhaltsverzeichnis
10 Werkzeuge (nicht nur) für Programmierer
10.1
... sondern auch für Anwender und Systemverwalter
311
Revision Control System (RCS)
327
11.3
Das Concurrent Versions System
336
11.4
Subversion – die zweite Generation von CVS
338
11.5
Andere Systeme zur Versionsverwaltung
341
12 XML unter Linux
327
343
12.1
Die Emacs-Erweiterung xslide
349
12.7
Die DocBook-Anwendung
350
13 Emulatoren unter Linux
351
13.1
Emulatoren allgemein
351
13.2
Der BIOS-Emulator dosemu
352
13.3
Der Windows-Emulator wine
14.4
Netzwerkbezogene Kernel-Konfiguration
379
14.5
Das Address Resolution Protocol (ARP)
395
14.6
Advanced Routing
397
Inhaltsverzeichnis
15 TCP/IP-Grundlagen
xi
399
15.1
Protokolle
409
15.7
Architekturunabhängiges Datenformat
410
16 IP-Adressen und Rechnernamen
413
16.1
Rechnernamen als Hilfsmittel
413
16.2
Zuordnung von Namen und IP-Adressen in der
Datei /etc/hosts
415
16.3
Domain Name Service
17.2
Web-Browser einmal anders
425
17.3
Angemeldete Benutzer im lokalen Netz
427
17.4
Warnungen an entfernte Rechner schicken mit rwall
428
17.5
Übertragen von Dateien mit rdist
428
17.6
Abgleich von Dateien über das Netz
430
Kompatibilität mit älteren Anwendungen
436
18.3
Authentifizierung eines Benutzers in der ssh
436
18.4
Die Verschlüsselungen von ssh
439
18.5
ssh benutzen
440
18.6
TCP-Verbindungen tunneln
442
xii
19.3
Das File-Transfer-Protokoll (ftp)
447
19.4
Die r-Tools
451
19.5
Ausführen von Programmen auf entfernten Rechnern
451
19.6
Anmeldung auf entfernten Rechnern
454
19.7
Übertragung von Dateien
455
Probleme beim Einsatz von NFS
461
20.6
Der Automounter amd
464
20.7
Andere verteilte Dateisysteme
468
21 Linux im heterogenen Netz
471
21.1
Andere Netzwerkprotokolle als TCP/IP
471
21.2
Linux als NetWare-Client und -Server
22.1
Gründe für den Betrieb eines Nameservers
483
22.2
Das Konzept des Domain Name Service
483
22.3
Auswahl eines DNS-Servers
485
22.4
Allgemeines zur Konfiguration eines Nameservers
485
22.5
Primary Nameserver
486
22.10 Dynamische DNS-Updates
502
22.11 Sicherheit und DNS
502
22.12 Weitere Informationen zum DNS
504
23 Network Information Service
505
23.1
Allgemeines zu NIS
505
23.2
NIS-Dienste als Client nutzen
506
23.3
In die Zukunft mit NIS
511
24 Dynamische IP-Konfiguration
513
24.1
Nutzen der dynamischen Konfiguration
513
24.2
Dynamic Host Configuration Protocol
514
24.3
Das bootp-Protokoll
516
24.4
Variable Netzwerkkonfiguration
25.4
Administration eines ftp-Servers
526
25.5
Nach der Installation
533
26 Internetzugang über Wählverbindungen
535
26.1
Allgemeines zu Wählverbindungen
535
26.2
Point-to-Point Protocol
536
26.3
27.1
Sparen mit Virtuellen Privaten Netzen
27.2
Das Design eines Virtuellen Privaten Netzes
552
27.3
Crypto IP Encapsulation (CIPE)
553
27.4
Konfiguration von FreeS/WAN
554
27.5
Key-Management
556
27.6
Performance im Netz
569
28.5
TCP-Dienste prüfen
573
28.6
Fehlersuche bei RPC-Services
575
28.7
Network File System
575
28.8
Hacker-Tools
575
28.9
gesamte Flexibilität, aber auch die Komplexität von Unix auf. Mit diesem Buch
möchte ich dazu beitragen, dass Sie diese Komplexität in den Griff bekommen
und die Flexibilität effektiv nutzen können.
Linux ist ein freies Betriebssystem. Das gilt nicht nur für den Kernel, sondern
auch für fast alle anderen Programme. Frei heißt hier, analog zur GNU General
Public License (GPL), dass der Quellcode frei verfügbar ist, und zielt nicht auf
die teilweise kostenlose Verbreitung von Linux.
In der Freeware-Szene gibt es im Wesentlichen vier unterschiedliche Lizenzen,
die alle ihre Berechtigung für bestimmte Zwecke haben:
·
·
·
·
Das BSD- oder X-Copyright, das die Verwendung des Codes auch in kommerziellen und proprietären Systemen erlaubt
Die GPL, die fordert, dass die Programme oder daraus entstandene verbesserte Versionen weiterhin frei sind
Programme, deren kommerzielle Nutzung oder Verbreitung untersagt ist
Programme, die keinerlei Copyright unterliegen, so genannte Public-DomainProgramme
Durch diese liberalen Lizenzbedingungen wurde Linux zu dem, was es heute ist.
Insbesondere spielte die Verfügbarkeit der GNU-Programme eine entscheidende
Rolle, da hiermit die Utilities eines Unix-Systems bereits frei verfügbar waren.
Weiterhin war die Portierung des X-Window-Systems wichtig, das Grundbausteine für grafische Benutzeroberflächen liefert.
Freie Software ist bessere Software, weil diese dem Anwender die Möglichkeit
gibt, die Programme anzupassen, zu verbessern, zu verstehen oder einfach nur
Fehler zu korrigieren. Diese Möglichkeit hat der Anwender von proprietärer
Software nicht, er ist auf Gedeih und Verderb seinem Software-Lieferanten ausgeliefert. Dies ist, neben der Möglichkeit, das System vollständig untersuchen zu
können, das ausschlaggebende Argument für Linux oder andere Freeware-Systeme wie NetBSD oder FreeBSD. Ein weiterer Vorteil für Anwender ist, dass verschiedene Anbieter Support für das System leisten können.
Neben den Programmen selbst ist auch die zugehörige Dokumentation frei verfügbar. Das Linux Documentation Project hat es sich zur Aufgabe gemacht, sowohl HowTo-Dokumente als auch vollständige Handbücher zu schreiben. Zum
Ausgaben des Rechners sind in Courier (Typewriter) gesetzt.
Eingaben des Benutzers sind ebenfalls in Courier gesetzt, aber zusätzlich
durch Fettdruck hervorgehoben.
Variable Eingaben, die vom Anwender passend zu ersetzen sind, werden mit
einer kursiven Schrift dargestellt.
Zur Unterscheidung zwischen verschiedenen Shells und privilegierten und
nicht privilegierten Benutzern verwende ich verschiedene Shell-Prompts:
·
·
·
# steht für den Systemadministrator, der die bash benutzt.
> steht für einen Benutzer mit der tcsh.
$ steht für einen Anwender mit der bash.
Zur Erläuterung folgt das Listing 1, das ein tcsh-Benutzer durchgeführt hat. Der
Benutzer root wird in diesem Buch nur an den Stellen verwendet, an denen es
unbedingt notwendig ist. Die Trennung zwischen Benutzer und Systemadministrator ist eines der grundlegenden Unix-Konzepte und dient der Sicherheit der
Benutzer und Systemdaten sowie der Systemstabilität.
Mailing-Listen
xvii
(linux):~> echo 'Das ist eine Eingabe' | sed s/Ein/Aus/
Das ist eine Ausgabe
Listing 1 Beispiel für den Einsatz verschiedener Schriften
eingerichtet, die in der Regel jedem Interessenten offenstehen. Zur Verwaltung
der Listen wird das Programmpaket majordomo verwendet. Wenn Sie eine Mailing-Liste abonnieren möchten, senden Sie eine Mail an den Benutzer mailto:
mit dem Text help im Textteil der Nachricht. Danach
erhalten Sie eine Anleitung zur Bedienung des Verwaltungsprogramms.
Danksagung
Zunächst möchte ich mich bei allen Linux-Hackern und -Anwendern sowie bei
allen Programmierern bedanken, die dieses Buch erst möglich gemacht haben.
Ebenso möchte ich den Korrekturlesern danken, die viele Fehler und Inkonsistenzen aufgespürt haben und das Buch zu dem gemacht haben, was es heute ist.
xviii
Vorwort
Wenn Sie Fragen oder Anregungen haben, so können Sie mich über E-Mail unter
der Adresse mailto: erreichen.
Vorwort zur vierten Auflage
Ich verfolge die Entwicklung von Linux bereits seit 1992 – und immer wenn ich
zurückblicke, schaue ich auf eine stürmische Entwicklung und eine interessante
Zeit zurück. Denn trotz allen technischen Fortschritten ist die entscheidende
Komponente von Linux immer noch vorhanden: eine Gemeinschaft von Anwendern und Entwicklern, die sehr hilfsbereit ist. Man spürt einfach, dass ein sehr
wichtiges Element der Motivation der Spaß an der Entwicklung und am Miteinander ist.
Dieses Miteinander färbt, erzwungen von den Bestimmungen der GPL, auch auf
kommerzielle Entwickler ab, wenn diese sich an Open-Source-Projekten beteiligen. Für Firmen ist das eine große Chance, denn vielfach können auch sie »auf
den Schultern von Giganten stehen«. Auf der anderen Seite gibt es aber auch einen Interessenskonflikt zwischen dem Wunsch nach Freiheit, der das GNU-Projekt antreibt, und Firmen, die aus den frei verfügbaren Projekten kommerzielle
und proprietäre Entwicklungen machen wollen. Unix ist in diese Falle geraten,
bei Linux bestehen gute Aussichten, dass dies nicht passiert.
Das Besondere an Linux ist aber immer noch, dass es eine Gemeinschaft aus Programmierern, Anwendern und Systemverwaltern ist, die es an ihre Bedürfnisse
mittels ftp oder Modem vorzuziehen. Bei vielen Distributionen erwirbt man
auch einen Anspruch auf Support durch den Distributor und ein Handbuch, das
die Installation und die ersten Schritte beschreibt.
2
1 Linux – das Betriebssystem der Zukunft?
1.2
Linux-Features im Überblick
Linux ist ein leistungsfähiges Betriebssystem, das sich in den letzten Jahren von
einem »Hacker-System« zu einem vielfach auch kommerziell eingesetzten System gewandelt hat. Die Gründe für diese Entwicklung sind vielfältig. Einige
Gründe möchte ich hier vorstellen und zudem einen Überblick über die Einsatzmöglichkeiten von Linux geben:
·
·
·
·
·
·
·
·
·
·
·
Linux ist frei, d. h., praktisch der gesamte Quellcode des Systems ist jedermann zugänglich. Damit können Interessierte Verbesserungen implementieren und Fehler beseitigen oder ganz einfach lernen, wie das System funktioniert.
Das System ist durch die mitgelieferten Handbücher (/usr/doc oder /usr/
share/doc), Manpages und viele Bücher zu diesem Thema sehr gut dokumentiert. Sollte die Dokumentation einmal eine Frage offenlassen, so kann
man schlimmstenfalls immer noch im Quellcode nach der Lösung suchen.
Diese Liste ist sicher nicht vollständig und lässt sich daher noch beinahe beliebig
fortsetzen. Dabei werden von verschiedenen Anwendern jeweils andere Schwerpunkte gesetzt. Es existiert kein System, das jeden möglichen Anwender zufrieden stellen kann.
1.3
Linux-Distributionen im Vergleich
Wie oben schon erwähnt, existiert eine Vielzahl von Linux-Distributionen. Hieraus eine »gute« Distribution für den eigenen Bedarf auszuwählen, ist nicht einfach. Im Folgenden werde ich einige Distributionen, die ich im Laufe der Zeit
ausprobiert habe, kurz vorstellen und die jeweiligen Vor- und Nachteile aufzeigen. Diese Liste kann nicht vollständig sein, da ich nicht jede Distribution zur
Verfügung habe und ein vernünftiger Test mit hohem Zeitaufwand verbunden
ist. Auch sind viele Erkenntnisse mit einer neuen Version der entsprechenden
Distribution wertlos geworden.
Zu jeder Distribution gehört normalerweise eine entsprechende Installationsanleitung. Diese kann in Form einer README-Datei, eines Booklets zur CD oder
eines Handbuchs vorliegen. Dort wird in der Regel die Installation des Systems
sehr detailliert beschrieben, so dass ich hier auf eine derartige Beschreibung verzichte. Vielmehr werde ich einige Unterschiede zwischen den Distributionen
aufzeigen. Dabei werden sich je nach den Ansprüchen des Anwenders unterschiedliche Distributionen als besonders geeignet erweisen.
Aufgrund der GNU General Public License (GPL), die für viele der unter Linux
verwendeten Programme und den Kernel gilt, ist jeder Distributor verpflichtet,
entweder den Quellcode der entsprechenden Programme mitzuliefern oder auf
Anfrage nachzureichen. Zu vielen Distributionen findet man daher auch die
Quellen der Programme auf CD. Bei Problemen kann man dann einzelne Programme neu übersetzen oder nachsehen, mit welchen Optionen diese Programme installiert wurden. Gerade in diesem Bereich findet man deutliche Unterschiede zwischen den Distributionen.
Ein weiterer Unterschied besteht im Support durch die Entwickler. Manche CDs
werden ohne Support angeboten, andere enthalten einen Anspruch auf Support
(via E-Mail, Fax oder Telefon) durch den Distributor. Oft wird vom Hersteller
auch eine Mailing-Liste betrieben, in der speziell für die eigene Distribution Support geleistet wird. Genauere Informationen dazu finden Sie in der Dokumentation zu Ihrer Distribution.
·
Die Installationsroutine sollte ohne oder mit nur einer Diskette auskommen,
wenn von CD, Festplatte oder Netz installiert wird. Es ist für Einsteiger oder
PC-Benutzer, deren PC noch nicht mit einem Betriebssystem ausgestattet ist,
sehr hilfreich, wenn eine solche Diskette bereits beiliegt. Dies setzt voraus,
dass auch nur eine Diskette benötigt wird, also keine Auswahl aus vielen vorkonfigurierten Boot-Disketten getroffen werden muss.
Das Installationsprogramm sollte ein integriertes Hilfesystem enthalten. Damit ist es möglich, während der Installation zusätzliche Informationen anzuzeigen und den Benutzer zu unterstützen.
Bei Eingabefehlern sollte man einzelne Einstellungen erneut vornehmen können, ohne neu beginnen zu müssen. Das sollte für möglichst viele Eingaben
des Benutzers gelten.
Die Paketauswahl sollte vor, nicht während der Installation stattfinden. Dabei
soll dann auch der zur Verfügung stehende Platz geprüft werden. Damit ist
es möglich, den zeitaufwendigsten Teil ohne Benutzerinteraktion ablaufen zu
lassen.
1.3 Linux-Distributionen im Vergleich
·
·
·
·
·
·
·
·
·
·
·
hoch, so dass der Markt in dieser Hinsicht hoffentlich nicht weiter wächst.
6
1.3.1
1 Linux – das Betriebssystem der Zukunft?
Debian-(GNU/Linux)-Distribution
Die Debian GNU/Linux-Distribution ( wurde zunächst
von Ian Murdock entwickelt. Im Laufe der Zeit haben sich viele Entwickler ebenfalls für Debian engagiert. Dadurch wurde diese Distribution zu einem weltweiten Projekt, das eine zeitlang auch von der Free Software Foundation (FSF)
unterstützt wurde. Die FSF betrachtete diese Distribution als »Testfall« für das
eigene Betriebssystem Hurd.
Das wesentliche Merkmal ist, dass diese Distribution frei im Sinne der GPL ist.
Sie kann im Rahmen der GPL beliebig kopiert und kommerziell eingesetzt werden, auch ohne dass eine entsprechende CD oder ähnliches erworben wurde.
Viele Entwickler haben die Copyright-Bedingungen ihrer Programme geändert,
damit sie problemlos in dieser Distribution verwendet werden können.
Programme, deren Lizenz nicht den »Debian Free Software Guidelines« entspricht, können nicht Bestandteil von Debian werden. Dazu hat sich das Projekt
in seinem »Social Contract« verpflichtet – damit wird die Distribution immer frei
(im Sinne einer Weitergabe ohne Restriktion) verfügbar sein. Obwohl diese »unfreien« Programme nicht Teil von Debian sind, können diese auf Debian-Systemen benutzt werden. Im contrib oder non-free Bereich werden viele Programme im Debian-Paketformat bereitgestellt. Auch das Bugtracking-System wird
hier zum Support verwendet. Durch diese strikte Trennung wird sichergestellt,
dass jedermann die Debian-Distribution benutzen und verteilen kann.
Zur Installation und für Updates von Programmpaketen wurden ein eigenes Paketformat (.deb) und ein eigenes Tool (dpkg) entwickelt. Ein wesentlicher Vorteil gegenüber anderen Distributionen ist, dass das System oder einzelne Programme problemlos auf den aktuellen Stand gebracht werden können, ohne
dass die Festplatte formatiert und die Software komplett neu installiert werden
muss. Die hierzu entwickelten Strategien haben in neuester Zeit auch Einzug in
andere Distributionen (z. B. S.u.S.E. und Red Hat) gehalten. Als Frontend zu
dpkg, das nur mit einzelnen Paketen umgeht, stehen dselect und apt zur Verfügung.
Ein weiterer Vorteil ist das konsequente Bugtracking, das über Mailing-Listen
verwendet das rpm-Format für Pakete und hat zu deren Verwaltung ein eigenes
Programm (rpm Red Hat Package Management) entwickelt. Das macht die Verwendung der entsprechenden Pakete auf anderen Linux-Systemen eher schwerer, allerdings hat sich dieses Format als Standard durchgesetzt. Mehr Informationen zum rpm-Format finden Sie unter .
1.3.4
Die Slackware-Distribution
Im Internet wird die Slackware-Distribution per ftp verteilt. Sie können sie aber
auch auf CD erwerben. Die Slackware war einmal etwas wie die »Standarddistribution« und weltweit sehr oft installiert. Slackware gilt immer noch als eine Art
»Geheimtipp« für Bastler, im Vergleich zu den anderen Distributionen wird sie
aber scheinbar nicht mehr so häufig eingesetzt.
1.3.5
Die S.u.S.E.-Distribution
Die S.u.S.E. GmbH ( hat zunächst damit begonnen, die internationale Slackware-Distribution für den deutschen Markt anzupassen. Vor einiger Zeit haben sich die Entwickler aber von Slackware gelöst und eine eigenstän-