Das Komplettpaket LPIC-1 & LPIC-2 - ReadingSample · Galileo Computing Das Komplettpaket LPIC-1 &...

107
Galileo Computing Das Komplettpaket LPIC-1 & LPIC-2 Das gesamte Prüfungswissen Bearbeitet von Harald Maaßen 1. Auflage 2012. Buch. ISBN 978 3 8362 1786 6 Format (B x L): 16,8 x 24 cm Weitere Fachgebiete > EDV, Informatik > EDV, Informatik: Allgemeines, Moderne Kommunikation > EDV: Ausbildung, Berufe, Zertifizierung schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

Transcript of Das Komplettpaket LPIC-1 & LPIC-2 - ReadingSample · Galileo Computing Das Komplettpaket LPIC-1 &...

Galileo Computing

Das Komplettpaket LPIC-1 & LPIC-2

Das gesamte Prüfungswissen

Bearbeitet vonHarald Maaßen

1. Auflage 2012. Buch.ISBN 978 3 8362 1786 6

Format (B x L): 16,8 x 24 cm

Weitere Fachgebiete > EDV, Informatik > EDV, Informatik: Allgemeines, ModerneKommunikation > EDV: Ausbildung, Berufe, Zertifizierung

schnell und portofrei erhältlich bei

Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programmdurch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr

als 8 Millionen Produkte.

Harald Maaßen

LPIC-1Sicher zur erfolgreichen Linux-Zertifizierung

Auf einen Blick

LPI 101 .................................................................................. 19

Topic 101: Systemarchitektur ..................................................... 21

Topic 102: Linux-Installation und -Paketverwaltung ................... 57

Topic 103: GNU- und Unix-Kommandos .................................... 87

Topic 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard ................................... 157

Übungsfragen zu LPI 117-101 ..................................................... 207

LPI 102 .................................................................................. 281

Topic 105: Shells, Skripte und Datenverwaltung ......................... 283

Topic 106: Oberflächen und Desktops ........................................ 325

Topic 107: Administrative Aufgaben ........................................... 355

Topic 108: Grundlegende Systemdienste .................................... 389

Topic 109: Netz-Grundlagen ...................................................... 411

Topic 110: Sicherheit .................................................................. 439

Übungsfragen zu LPI 117-102 ..................................................... 465

5

Inhalt

Vorwort ....................................................................................................... 15Hinweise zum Buch .............................................................................. 15Hinweise zur Prüfung ........................................................................... 17

LPI 101Power On! Die Hardware wird initialisiert und die Daemonen geweckt. Grundlegende Fertigkeiten in der Konfiguration von Massenspeichern, Peripheriegeräten und BIOS-Einstellungen sind für die erste Prüfung unbedingt erforderlich. 21

Topic 101: Systemarchitektur ..................................................... 21

101.1 Hardware-Einstellungen ermitteln und konfigurieren ................. 21Allgemeines ................................................................................... 22Module zur Laufzeit beeinflussen und konfigurieren ...................... 22Modulkonfigurationsdateien .......................................................... 28Zum Kernel gehörende Dateien und Verzeichnisse ......................... 29Die Gerätedateien für Festplatten und CD-ROMs ........................... 30Die Gerätedateien für Partitionen .................................................. 31Ressourcen für Hardwarekomponenten .......................................... 32Der PCI-Bus ................................................................................... 33USB – Universal Serial Bus .............................................................. 34USB-Host-Controller-Typen ........................................................... 34USB-Klassen .................................................................................. 35USB-Module automatisch laden ..................................................... 36Coldplug und Hotplug ................................................................... 37Das virtuelle Dateisystem sysfs ....................................................... 37udev, hald und dbus ...................................................................... 38

101.2 Das System starten ...................................................................... 38Allgemeines ................................................................................... 39Boot-Strap-Loader ......................................................................... 41Kernel-Parameter ........................................................................... 42Startprotokollierung ....................................................................... 43

101.3 Runlevel wechseln und das System anhalten oder neu starten ................................................................................... 45Allgemeines ................................................................................... 46Die Runlevel und ihre Funktion ...................................................... 46Die Konfigurationsdatei inittab ...................................................... 47Verzeichnisse und Dateien des init-Prozesses ................................. 49Runlevel-Wechsel, Herunterfahren, Neustart ................................. 52Upstart .......................................................................................... 53Systemd ......................................................................................... 54

Inhalt

6

Nachdem Sie über die korrekte Konfiguration der Hardware bestens Bescheid wissen, kann nun mit der Planung der Partitionen und der Konfiguration eines Bootloaders fortgefahren werden. 57

Topic 102: Linux-Installation und -Paketverwaltung ................. 57

102.1 Festplattenaufteilung planen ....................................................... 57Allgemeines ................................................................................... 57Planung im Detail .......................................................................... 58Logical Volume Manager ............................................................... 59LVM-Komponenten und Zusammenhänge ..................................... 60

102.2 Einen Bootmanager installieren ................................................... 61Allgemeines ................................................................................... 61GRUB-Legacy ................................................................................. 62GRUB 2 ......................................................................................... 63

102.3 Shared Librarys verwalten ............................................................ 64Allgemeines ................................................................................... 64Verwaltung von Shared Librarys ..................................................... 65

102.4 Debian-Paketverwaltung verwenden ........................................... 66Allgemeines ................................................................................... 67Konfigurationsdateien und Verzeichnisse ....................................... 67DPKG-Programme ......................................................................... 69

102.5 RPM und YUM-Paketverwaltung verwenden .............................. 76Allgemeines ................................................................................... 76Konfigurationsdateien .................................................................... 77RPM aktiv verwenden .................................................................... 78Abfragen der RPM-Datenbank ....................................................... 79Überprüfung installierter Pakete .................................................... 81Pakete umwandeln ........................................................................ 82yum und der yumdownloader ........................................................ 82

Ein großer Teil dessen, was ganz selbstverständlich als Linux bezeichnet wird, entspringt in Wirklichkeit dem GNU-Projekt. In dem nun folgenden Kapitel geht es um einen kleinen Teil von GNU. GNU is Not Unix. GNU is Not Unix. GNU is Not U... 87

Topic 103: GNU- und Unix-Kommandos .................................... 87

103.1 Auf der Kommandozeile arbeiten ................................................. 87Allgemeines ................................................................................... 88Aufbau eines Shell-Kommandos ..................................................... 88Übergabe der Optionen ................................................................. 89Umgebungsvariablen und Shellvariablen ........................................ 90Beliebte Variablen für die Prüfung ................................................. 93Bash-Befehls-History und automatisches Vervollständigen von Befehlen .................................................................................. 94Befehlseingabe ............................................................................... 95PATH-Variable ............................................................................... 95Rekursive Befehlsausführung .......................................................... 96Das Kommando uname .................................................................. 97Die Manpages im Allgemeinen ...................................................... 97

Inhalt

7

Funktionsweise der Manpages ....................................................... 97$MANPATH und die Datei manpath.config .................................... 97Die Sektionen des Mansystems ...................................................... 98Aufbau von Manpages ................................................................... 99Verwandte Befehle ........................................................................ 99

103.2 Textströme mit Filtern verarbeiten .............................................. 101Allgemeines ................................................................................... 102cat .............................................................................................. 102tac .............................................................................................. 102head .............................................................................................. 103tail .............................................................................................. 103expand/unexpand .......................................................................... 104fmt .............................................................................................. 104nl .............................................................................................. 104pr .............................................................................................. 105wc .............................................................................................. 105hexdump ....................................................................................... 106od .............................................................................................. 106sort .............................................................................................. 106uniq .............................................................................................. 107split .............................................................................................. 107cut, paste und join ......................................................................... 108tr .............................................................................................. 110

103.3 Grundlegende Dateiverwaltung ................................................... 111Allgemeines ................................................................................... 112Kommandos für Dateioperationen ................................................. 112Verwendung von Wildcards ........................................................... 118

103.4 Ströme, Pipes und Umleitungen verwenden ................................ 124Allgemeines ................................................................................... 125stdin, stdout und stderr ................................................................. 125Umleitungen (Redirects) ................................................................ 126Pipes ............................................................................................. 127tee und xargs ................................................................................. 128

103.5 Prozesse erzeugen, überwachen und beenden ............................. 128Allgemeines ................................................................................... 129Überwachen von Prozessen ........................................................... 129Signale an Prozesse senden ............................................................ 133Jobs im Vorder- und im Hintergrund .............................................. 135Prozesse unabhängig von einem Terminal laufen lassen ................. 138

103.6 Prozess-Ausführungsprioritäten ändern ...................................... 139Allgemeines ................................................................................... 139nice .............................................................................................. 140

Inhalt

8

renice ............................................................................................ 140top und ps zur Überprüfung von Prioritäten ................................... 141

103.7 Textdateien mit regulären Ausdrücken durchsuchen ................... 142Allgemeines ................................................................................... 142Reguläre Ausdrücke ....................................................................... 143Die Verwendung von grep ............................................................. 144egrep und fgrep ............................................................................. 148Die Verwendung von sed ............................................................... 148

103.8 Grundlegendes Editieren von Dateien mit dem vi ....................... 152Allgemeines ................................................................................... 152Bedienungsgrundlagen ................................................................... 153Navigation in einem Dokument ..................................................... 154Einfügen, Löschen, Kopieren und Auffinden von Text .................... 155Befehlszeilenoptionen für vi ........................................................... 156

Im nächsten Themenkomplex soll dargestellt werden, was alles nötig ist, um Daten sicher auf einem Medium speichern zu können und die Zugriffsrechte auf diese Dateien professionell zu handhaben. 157

Topic 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard .................................. 157

104.1 Partitionen und Dateisysteme anlegen ........................................ 157Allgemeines ................................................................................... 157Erzeugen der Partitionen ................................................................ 158Formatieren der Dateisysteme ....................................................... 161Erstellen einer Swap-Datei ............................................................. 165

104.2 Die Integrität von Dateisystemen sichern ................................... 166Allgemeines ................................................................................... 166Sicherstellen der Integrität des Dateisystems und Problembehebung ......................................................................... 167XFS-Werkzeuge ............................................................................. 170Überwachen des freien Platzes und der freien Inodes ..................... 171

104.3 Das Ein- und Aushängen von Dateisystemen steuern ................. 174Allgemeines ................................................................................... 174Manuelles Mounten und Unmounten ............................................ 174Automatisches Mounten über die Datei /etc/fstab ......................... 178

104.4 Platten-Quotas verwalten ............................................................ 180Allgemeines ................................................................................... 181Möglichkeiten der Quotierung ....................................................... 181Vorbereiten von Quota .................................................................. 182Aktivieren von Quota ..................................................................... 183Ändern und Überprüfen von Quota ............................................... 184

104.5 Dateizugriffsrechte und -eigentümerschaft verwalten ................ 186Allgemeines ................................................................................... 186Vergabe der Berechtigungen .......................................................... 187

Inhalt

9

Verwendung von SUID, SGID und Sticky Bit .................................. 189chown ........................................................................................... 191chgrp ............................................................................................. 192Verwendung von umask ................................................................. 192Dateiattribute der ext2-, ext3- und ext4-Dateisysteme .................. 193

104.6 Harte und symbolische Links anlegen und ändern ...................... 195Allgemeines ................................................................................... 195Softlinks ......................................................................................... 195Hardlinks ....................................................................................... 198

104.7 Systemdateien finden und Dateien am richtigen Ort platzieren ............................................................................... 200Allgemeines ................................................................................... 200FHS – Filesystem Hierarchy Standard .............................................. 200Programme zum Auffinden von Dateien ......................................... 202

207

Übungsfragen zu LPI 117-101 ...................................................... 207

Fragen ......................................................................................................... 207Antworten und Erklärungen zu den Prüfungsfragen ..................................... 247

LPI 102Was eine Shell ist und wie man sie benutzt, wissen Sie ja bereits. Jetzt werden Sie lernen, an der Shell einige individuelle Anpassungen vorzunehmen und Skripte zu schreiben, welche die alltägliche Arbeit erleichtern. Optimieren Sie Ihre Arbeitsumgebung! 283

Topic 105: Shells, Skripte und Datenverwaltung ........................ 283

105.1 Die Shell-Umgebung anpassen und verwenden ........................... 283Allgemeines ................................................................................... 284Verwendung von Shells .................................................................. 284Umgebungsvariablen und Shellvariablen ........................................ 285Aliase und Funktionen ................................................................... 287Konfigurationsdateien der Bash ..................................................... 290Systemweite Konfigurationsdateien ............................................... 291Konfigurationsdateien für den Benutzer ......................................... 291Das Skeleton Verzeichnis /etc/skel ................................................. 292

105.2 Einfache Skripte anpassen oder schreiben ................................... 292Allgemeines ................................................................................... 293Ausführen eines Skripts .................................................................. 293Ausführungsberechtigung .............................................................. 295Position eines Skripts ..................................................................... 296Übergabevariablen und Rückgabewerte ......................................... 296Schleifen und Bedingungen ............................................................ 297

105.3 SQL-Datenverwaltung .................................................................. 304Allgemeines ................................................................................... 305SQL – Die Befehle .......................................................................... 305

Inhalt

10

Die ersten Schritte ......................................................................... 306Eine erste Datenbank ..................................................................... 309Abfragen mit SELECT und WHERE ................................................. 311Aktualisieren von Datensätzen ....................................................... 314Sortieren und Gruppieren .............................................................. 314Erweitern von Datenbanken ........................................................... 316Arbeiten mit mehreren Tabellen .................................................... 318Destruktive Kommandos ................................................................ 323

In diesem Kapitel lernen Sie die prüfungsgerechte Konfiguration von X11, von Displaymanagern und Windowmanagern. Es wird also zur Abwechslung ausnahmsweise einmal grafisch. 325

Topic 106: Oberflächen und Desktops ........................................ 325

106.1 X11 installieren und konfigurieren ............................................... 325Allgemeines ................................................................................... 325Der Aufbau von X .......................................................................... 326Der Startvorgang von X .................................................................. 328X-Terminals ................................................................................... 329X-Librarys ...................................................................................... 329Konfigurationsdateien .................................................................... 329X-Fontserver .................................................................................. 333X-Display exportieren .................................................................... 335xwininfo ........................................................................................ 336xdpyinfo ........................................................................................ 337

106.2 Einen Displaymanager einrichten ................................................. 339Allgemeines ................................................................................... 339Starten und Beenden eines Displaymanagers .................................. 339Konfigurationsdateien der Displaymanager .................................... 340

106.3 Hilfen für Behinderte .................................................................... 340Allgemeines ................................................................................... 341Sehbehinderte und Blinde .............................................................. 341Barrierefreiheit ............................................................................... 342Orca .............................................................................................. 347GOK .............................................................................................. 352emacspeak ..................................................................................... 353

Nun geht es um eine der wichtigsten Tätigkeiten eines Administrators: das Verwalten von Benutzerkonten, Gruppenkonten und das Schaffen einer anfänglichen Umgebung, in der die Benutzer arbeiten können. 355

Topic 107: Administrative Aufgaben ........................................... 355

107.1 Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten ...................................... 355Allgemeines ................................................................................... 356passwd, shadow, group, gshadow .................................................. 357Befehle zur Verwaltung von Benutzern ........................................... 361

Inhalt

11

Befehle zur Verwaltung von Gruppen ............................................. 365Befehle zur Verwaltung des Shadow-Systems ................................. 368

107.2 Systemadministrationsaufgaben durch Einplanen von Jobs automatisieren .............................................................. 369Allgemeines ................................................................................... 369Die Verwendung von cron ............................................................. 370Die Verwendung von at ................................................................. 373Grundlegendes zu anacron ............................................................. 374Zugriffssteuerung auf cron und at ................................................... 374

107.3 Lokalisierung und Internationalisierung ...................................... 375Allgemeines ................................................................................... 376Zeitzoneneinstellung ...................................................................... 376Umgebungsvariablen für die Lokalisation ....................................... 379Historische Zeichensätze ................................................................ 381ASCII – American Standard Code for Information Interchange ................................................................................... 382ISO 8859 ....................................................................................... 385Unicode und UTF-8 ....................................................................... 386Konvertierung von Zeichensätzen .................................................. 386

Die Dienste eines Systems müssen kontrolliert und gepflegt werden. Um sich die Arbeit so weit wie möglich zu erleichtern, können Sie hier einiges automatisieren. Zur Vereinfachung der Kontrolle können Sie die Protokollierung auf die eigenen Bedürfnisse zuschneiden. 389

Topic 108: Grundlegende Systemdienste .................................... 389

108.1 Die Systemzeit verwalten ............................................................. 389Allgemeines ................................................................................... 390Manuelle Konfiguration der Systemzeit .......................................... 390Die RTC-Uhr einstellen .................................................................. 391Zeitzonen ...................................................................................... 391Zeitsynchronisation über das Netzwerk .......................................... 392Automatische Zeitsynchronisation .................................................. 392NTP Diagnose ................................................................................ 393pool.ntp.org .................................................................................. 394

108.2 Systemprotokollierung ................................................................. 394Allgemeines ................................................................................... 395syslogd und syslog-ng .................................................................... 395Die Konfigurationsdateien ............................................................. 395Einsatz von Log-Dateien zur Fehlersuche ....................................... 397Selbst Ereignisse loggen ................................................................. 398Der Kernellog ................................................................................ 399

108.3 Grundlagen von Mail Transfer Agents (MTAs) ............................. 399Allgemeines ................................................................................... 400MUA, MDA und MTA .................................................................... 400

Inhalt

12

Mail – Aliase .................................................................................. 401Weiterleitung von Mail .................................................................. 402Wichtige Dateien und Verzeichnisse .............................................. 402sendmail-Konfigurationsdateien ..................................................... 403postfix-Konfigurationsdateien ........................................................ 403Smarthost und SMTP-Relay ............................................................ 404exim und qmail .............................................................................. 405

108.4 Drucker und Druckvorgänge verwalten ....................................... 405Allgemeines ................................................................................... 405Verwalten der Druckerwarteschlangen ........................................... 406Befehle zur Kontrolle von Druckvorgängen .................................... 407lpc – Line Printer Control ............................................................... 408Drucken mit CUPS ......................................................................... 409

TCP/IP ist das Netzwerkprotokoll, das sich im Laufe der Jahrzehnte weltweit, sowohl im Internet, als auch in Intranets, absolut durchgesetzt hat. Grund genug, hier ein paar Worte darüber zu verlieren. 411

Topic 109: Netz-Grundlagen ....................................................... 411

109.1 Grundlagen von Internet-Protokollen .......................................... 411Allgemeines ................................................................................... 412TCP/IP-Geschichte kurz gefasst ...................................................... 412Das DoD-Modell ........................................................................... 413Die Protokolle der dritten Schicht .................................................. 413Die Protokolle der zweiten Schicht ................................................ 415Das Internetprotokoll IPv4 ............................................................. 416IP-Klassen ...................................................................................... 417Die Verwendung der Subnetzmaske und CIDR ............................... 418Die Broadcast-Adressen ................................................................. 420Standardgateway ........................................................................... 421Das Internetprotokoll IPv6 ............................................................. 421TCP/IP Werkzeuge ......................................................................... 423

109.2 Grundlegende Netz-Konfiguration .............................................. 429Allgemeines ................................................................................... 430Konfigurationsdateien eines Netzwerk-Clients ............................... 430Konfigurationsprogramme für Netzwerk-Clients ............................. 433

109.3 Grundlegende Netz-Fehlersuche .................................................. 435Allgemeines ................................................................................... 436netstat ........................................................................................... 436

109.4 Client-seitiges DNS konfigurieren ............................................... 437Allgemeines ................................................................................... 438

Inhalt

13

Ein Administrator muss natürlich auch in der Lage sein, Sicherheitsbedrohungen in seinem Netzwerk aufzufinden und zu beseitigen. Die folgenden Themen bieten dazu eine gute Grundlage. 439

Topic 110: Sicherheit ................................................................... 439

110.1 Administrationsaufgaben für Sicherheit durchführen .................. 439Allgemeines ................................................................................... 440Auffinden von Dateien mit gesetztem SUID/SGID-Bit .................... 440Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten .................................................................. 440nmap, netstat und socket ............................................................... 440Ressourcenverwendung kontrollieren ............................................. 441Offene Dateien .............................................................................. 442Arbeiten mit erhöhten Rechten ...................................................... 444

110.2 Einen Rechner absichern .............................................................. 445Allgemeines ................................................................................... 446Superdaemons ............................................................................... 446TCP-Wrapper konfigurieren ........................................................... 448Die Datei /etc/nologin ................................................................... 449

110.3 Daten durch Verschlüsselung schützen ....................................... 449Allgemeines ................................................................................... 450SSH verwenden .............................................................................. 450SSH-Client-Verbindung .................................................................. 451SSH-Konfigurationsdateien ............................................................ 452Authentifizierung der Server mit Schlüsseln .................................... 453Generieren von Schlüsseln ............................................................. 454Benutzerauthentifizierung mit Schlüsseln ....................................... 455Der Authentifizierungsagent .......................................................... 457GnuPG ........................................................................................... 457Schlüsselerstellung mit GnuPG ....................................................... 458GnuPG-Dateien ............................................................................. 461GnuPG verwenden ......................................................................... 461GnuPG-Zertifikat widerrufen .......................................................... 463

465

Übungsfragen zu LPI 117-102 ...................................................... 465

Fragen ......................................................................................................... 465Antworten und Erklärungen zu den Prüfungsfragen ..................................... 502

Index ........................................................................................................... 535

15

Vorwort

Herzlich willkommen!

Dieses Buch bietet Ihnen eine optimale Möglichkeit, Ihr Wissen über Linux zuverbessern und sich auf die ersten beiden Prüfungen des Linux Professional Insti-tute (LPI) vorzubereiten. Die vorliegende Auflage berücksichtigt bereits die letz-ten Änderungen des LPI zum 01. April 2012.

Das Zertifikat, das Sie nach dem Bestehen dieser Prüfungen erwerben, wirdIhnen erhebliche Vorteile bei der Suche nach einem Arbeitsplatz bringen. Auchfür Arbeitgeber ist es wünschenswert, die Fachkompetenz der eigenen Mitarbei-ter schriftlich belegen zu können. Eine vollständige und aktuelle Auflistung dermöglichen Zertifizierungen mit LPI finden Sie unter:

http://www.lpi.org/linux-certifications/programs

Hinweise zum Buch

Für wen ist dieses Buch?

Dieses Buch richtet sich an all diejenigen, die zur Förderung ihrer beruflichenLaufbahn Fachwissen erlangen und dieses zertifizieren lassen wollen. Das Buchist ausdrücklich nicht als Nachschlagewerk gedacht, sondern bereitet gezielt aufdie Prüfungen LPIC 101 und LPIC 102 vor. Um die Level-1-Zertifikation des LinuxProfessional Institute zu erwerben, müssen Sie diese beiden Prüfungen ablegenund bestehen.

Voraussetzungen

Sie sollten bereits gute Vorkenntnisse aus dem Bereich der EDV mitbringen. AuchFachwissen im Bereich Unix oder Linux ist absolut von Vorteil, wenn auch nichtVoraussetzung. Wenn in diesem Buch Themen behandelt werden, die aus demBereich Linux für Einsteiger zu sein scheinen, dann hat dies den Hintergrund,dass diese Themen für Sie prüfungsfähig aufgearbeitet werden sollen.

Damit die vorgestellten Themen auch praktisch angewendet werden können,benötigen Sie einen Computer, auf dem eine beliebige Linux-Distribution instal-liert ist. Da die Prüfungen des LPI unabhängig von einem bestimmten Hersteller

16

Vorwort

bzw. einer bestimmten Distribution erstellt wurden, sind Sie hier in Ihrer Aus-wahl eigentlich nicht eingeschränkt. Praktischer ist es allerdings, wenn Sie min-destens zwei Linux-Distributionen in virtuellen Maschinen einsetzen. Sie könnendann einfach die distributionsspezifischen Unterschiede selbst sehen und gege-benenfalls testen. Das ist z.B. beim Thema Paketmanagement besonders interes-sant. Sollten Sie sich für den Einsatz mehrerer Distributionen entscheiden, dannempfehle ich Ihnen die Auswahl eines eher Debian-basierten (z.B. Debian,Ubuntu, Mint) und eines Red Hat-basierten Systems (z.B. CentOS, Fedora). Sokönnen Sie gleichzeitig die Vor- und Nachteile dieser beiden Welten einmalselbst (hoffentlich vorurteilsfrei) unter die Lupe nehmen.

Der Aufbau des Buches

Das Buch ist in vier Abschnitte unterteilt. Für beide Prüfungen, die zum Erwerbdes ersten LPI-Zertifikates notwendig sind, gibt es jeweils eine Sektion, die zumSelbststudium der jeweiligen Prüfungsinhalte geeignet ist. Außerdem gibt es fürbeide Prüfungen einen Bereich mit realistischen Fragen, wie sie auch in der Prü-fung gestellt werden könnten. Zum besseren Verständnis sind die Antworten zuden Fragen genau erläutert. Sie sollten nicht versuchen, die Fragen auswendig zulernen, weil Sie in der Prüfung mit völlig anderen Fragen konfrontiert werden.Die im Buch verwendeten Fragen sind keine Prüfungsfragen.

Die Kapitel in diesem Buch sind genauso angeordnet und benannt, wie die soge-nannten Objectives des LPI. Jedem Kapitel ist eine Wichtung (im Original alsWeight bezeichnet) zugeordnet. Die Wichtung gibt einen klaren Hinweis auf dieAnzahl der Fragen, die zu dem jeweiligen Thema gestellt werden. Sie entsprichtnämlich seit April 2009 der genauen Fragenanzahl in der Prüfung von 60 mögli-chen Fragen.

Wie man mit diesem Buch arbeitet

In den ersten beiden LPI-Prüfungen werden Sie mit sehr vielen Fragen konfron-tiert, die sich mit Kommandos und deren (u.U. selten verwendeten) Optionenbeschäftigen. Es wurde beim Erstellen dieses Buches sehr sorgfältig darauf geach-tet, genau die Parameter und Optionen eines Kommandos niederzuschreiben, diefür die Prüfungen auch relevant sind. Das ist aber leider keine Garantie dafür,dass keine anderen Optionen in der Prüfung abgefragt werden. Sie sollten sichalso zusätzlich zu den dokumentierten Beispielen auch mit den Manpages derentsprechenden Kommandos beschäftigen. Gerade in den ersten beiden Prüfun-gen kommen Sie allein mit Berufserfahrung nicht weiter. Es ist hier auch notwen-dig, Parameter zu kennen, die man in der Praxis eher selten benötigt und beiBedarf in den Manpages nachlesen würde.

17

Vorwort

Die Prüfungssimulation

Die dem Buch beiliegende Prüfungssimulation basiert auf XML und kann z.B. mitdem Webbrowser Firefox ausgeführt werden. Öffnen Sie zu diesem Zweck ein-fach die Datei pruefungssimulator_starten.html. Sie sollten dieses Programm abererst dann verwenden, wenn Sie sich gründlich mit den Themen des Buchesbeschäftigt haben. Sie können mit dem Programm Ihren Kenntnisstand überprü-fen, aber die Aussagekraft des erzielten Ergebnisses sinkt umgekehrt proportio-nal mit der Anzahl der Durchgänge durch die Prüfungssimulation.

Hinweise zur Prüfung

Onlineprüfung

Es gibt zwei verschiedene Organisationen, bei denen Sie die Prüfungen in soge-nannten Prüfungszentren online ablegen können. In Bezug auf die gestellten Fra-gen macht es keinen Unterschied, für welche der beiden Sie sich entscheiden.

Pearson Vue: http://www.vue.com

Thomson Prometric: http://www.prometric.com

Besuchen Sie einfach eine dieser beiden Webseiten, und registrieren Sie sich. Diegenauen Vorgehensweisen sind auf den jeweiligen Webseiten erklärt. Wenn einKonto für Sie eingerichtet wurde, werden Sie per E-Mail informiert. Es ist dannsofort möglich, Prüfungen verschiedenster Hersteller bzw. Organisationen onlinezu buchen. Sie können den Zeitpunkt selbst bestimmen und ein Prüfungszent-rum in Ihrer Nähe aus der Datenbank auswählen. Die Bezahlung erfolgt bequemper Kreditkarte, und Sie werden per E-Mail benachrichtigt, sobald der Termin fürSie reserviert wurde. Im Augenblick benötigt Pearson Vue 24 Stunden Vorlauf fürdie Buchung einer Prüfung. Thomson Prometric benötigt sogar 48 Stunden. Siekönnen also eine Prüfung frühestens für den nächsten Tag buchen. Die LPI-Prü-fungen kosten derzeit 145 €.

Papierprüfung

Es gibt hin und wieder auch die Möglichkeit, LPI-Prüfungen auf Papier abzule-gen. Das geschieht meist auf Messen oder Kongressen. Diese Prüfungen könnennormalerweise zu einem erheblich günstigeren Preis abgelegt werden als die imvorangegangenen Abschnitt thematisierten Onlineprüfungen. Da Papierprüfun-gen nicht immer sofort ausgewertet werden können, kann es allerdings eineWeile dauern, bis Sie über das Ergebnis Ihrer Prüfung informiert werden. InDeutschland werden Papierprüfungen normalerweise auf der CeBIT in Hannover

18

Vorwort

oder auf den Linux-Tagen angeboten. Weitere Veranstaltungen, auf denen SiePapierprüfungen ablegen können, finden Sie auf dieser Webseite:

http://lpievent.lpice.eu

Hier wird Ihnen auch gleich die Möglichkeit gegeben, sich zu einer Prüfung anzu-melden.

Punktevergabe

Die Punktevergabe bei den Prüfungen sieht im Moment folgendermaßen aus:

Zum Bestehen einer beliebigen LPI-Prüfung sind 500 Punkte erforderlich. In denPrüfungen 117-101 und 117-102 müssen Sie jeweils 60 Fragen in 90 Minutenbeantworten. Hierbei können Sie jeweils 800 Punkte erreichen. Bei Prüfungen, dieauf Papier abgelegt werden, kann die Punktevergabe abweichend sein.

In den Prüfungen sind jeweils Betafragen enthalten, die Ihre Punktezahl nichtbeeinträchtigen. Da diese Fragen nicht gesondert markiert sind, müssen Sie sieebenfalls beantworten. Wegen der eingestreuten Betafragen ist eine genaueBerechnung der benötigten Punkte in Prozent auch nicht möglich.

Sprachen

In Deutschland steht die LPI-Prüfung in den Sprachen Deutsch, Englisch, Chine-sisch und brasilianisches Portugiesisch zur Verfügung. Viele Prüflinge legen diePrüfung in englischer Sprache ab, um eventuellen Übersetzungsfehlern aus demWeg zu gehen. Das ist bei einigen Prüfungen, die ich aus eigener Erfahrungkenne, auch absolut angebracht. Die Fragen in den LPI-Prüfungen sind allerdingsim Verhältnis zu den gängigen Herstellerprüfungen kurz gefasst und bieten des-halb wenig Stoff für Übersetzungsfehler. Wenn Ihr Englisch nicht erstklassig ist,sollten Sie die Prüfung lieber in Ihrer Muttersprache ablegen.

Ich wünsche Ihnen viel Spaß und Erfolg beim Bestehen der Prüfungen!

Harald Maaßen

389

Die Dienste eines Systems müssen kontrolliert und gepflegt werden. Um sich die Arbeit so weit wie möglich zu erleichtern, können Sie hier einiges automatisieren. Zur Vereinfachung der Kontrolle können Sie die Proto-kollierung auf die eigenen Bedürfnisse zuschneiden.

Topic 108: Grundlegende Systemdienste

108.1 Die Systemzeit verwalten

Wichtung: 3

Beschreibung: Kandidaten sollten in der Lage sein, die Systemzeit korrekt zu hal-ten und die Uhr mittels NTP zu synchronisieren.

Wichtigste Wissensgebiete:

� Systemzeit und -datum setzen

� die Hardware-Uhr auf die korrekte Zeit in UTC setzen

� die korrekte Zeitzone einstellen

� grundlegende NTP-Konfiguration

� Wissen über den Gebrauch von pool.ntp.org

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� /usr/share/zoneinfo

� /etc/timezone

� /etc/localtime

� /etc/ntp.conf

� date

� hwclock

� ntpd

� ntpdate

� pool.ntp.org

390

Grundlegende Systemdienste108

Allgemeines

Für viele Abläufe auf einem Computer ist es wichtig, dass die Systemzeit korrekteingestellt ist. Vergleichsweise harmlos ist hier noch der Umstand, dass beiabweichender Systemzeit Wartungsarbeiten, die durch cron oder anacron ausge-führt werden, möglicherweise zu Zeiten mit Spitzenbelastung laufen und so dieProduktionsumgebung negativ beeinflussen. Unangenehm ist dann schon, dassProtokollierungen mit einer falschen Uhrzeit oder gar mit einem falschen Datumversehen werden. Verwirrend kann es auch werden, wenn Mails anscheinendeintreffen, bevor Sie überhaupt geschrieben wurden. All diese Unannehmlichkei-ten lassen sich durch eine richtig eingestellte Systemzeit vermeiden. Eine Auto-matisierung der Zeitkorrektur macht bei Servern, die unbeaufsichtigt in einemKeller ihre Arbeit verrichten, also absolut Sinn.

Manuelle Konfiguration der Systemzeit

Die manuelle Konfiguration der Systemzeit erfolgt über das Kommando date.Wenn Sie date ohne Parameter starten, werden das aktuelle Datum und die Uhr-zeit ausgegeben.

[root@fedora10 ~]# dateDi 28. Apr 17:54:52 CEST 2009

Hierbei ist zu beachten, dass es sich tatsächlich um die Systemzeit handelt. Dieseist unter Umständen nicht synchron mit der Hardware-Uhr (RTC bzw. Real-Time-Clock). Wenn Sie die Uhrzeit mittels date ändern wollen, dann gehen Sie folgen-dermaßen vor:

archangel:~ # date -s 1755Di 28. Apr 17:55:00 CEST 2009

Die Uhr wird auf 17.55 Uhr eingestellt. Es ist aber auch möglich, date zu verwen-den, um recht elegante Uhrzeitausgaben zu generieren. Das kann etwa in eigenenSkripten verwendet werden. Wenn date auf ein + trifft, wird die darauf folgendeZeichenkette von date ausgegeben und die enthaltenen Variablen entsprechendergänzt. Das sieht z.B. so aus:

# date "+Heute ist der %d.%m.%Y. Das ist der %j. Tag des Jahres."Heute ist der 28.04.2009. Das ist der 118. Tag des Jahres.

Das Programm unterstützt zahlreiche weitere Variablen. Diese können Sie sichmit date –help anzeigen lassen.

391

Die Systemzeit verwalten 108.1

Die RTC-Uhr einstellen

Mit dem Kommando hwclock können Sie die Systemzeit in die Hardware-Uhrschreiben oder umgekehrt. Sie müssen beide Verfahren für die Prüfung kennen.Das sollte aber nicht weiter problematisch sein, weil Sie die benötigten Optionenleicht wiedererkennen können. Folgendes Kommando schreibt die Systemzeit indie Echtzeituhr:

archangel:~ # hwclock –-systohc

Umgekehrt holt folgender Befehl die Zeit bei der RTC ab und stellt danach dieSystemzeit ein:

archangel:~ # hwclock –-hctosys

Interessant ist es auch, zu beobachten, wie die Uhrzeiten zwischen der Hardware-Uhr und der Systemzeit driften. Die Differenz lässt sich mit hwclock ermitteln,indem Sie folgendes Kommando verwenden:

archangel:~ # hwclock --showDi 28 Apr 2009 17:58:13 CEST –0.020712 Sekunden

Die Genauigkeit, mit der die Abweichung ermittelt wird, ist eine MillionstelSekunde. Das sollte für die meisten Anwendungsgebiete ausreichen.

Zeitzonen

Es gibt grundsätzlich zwei Arten, wie eine Linux-Uhr eingestellt werden kann.Entweder Sie stellen sie der Einfachheit halber auf die Zeit der Zone ein, in derSie sich befinden, oder Sie verwenden UTC. Heutzutage geben die meisten Admi-nistratoren der zweiten Methode den Vorzug, was im Zuge internationaler Kom-munikation auch nur vernünftig ist. Das Kürzel UTC leitet sich ursprünglich vonCoordinated Universal Time ab. Im Lauf der Jahre ist der Buchstabe C aus irgend-welchen Gründen, die heute niemand mehr kennt, an den Schluss gestellt wor-den. Die UTC löst die MEZ inzwischen auch in Europa weitestgehend ab. UTC+1entspricht der MEZ.

Damit der Computer dem Benutzer die lokale Zeit anzeigt, muss dem Systemnoch mitgeteilt werden, dass die BIOS-Uhr (RTC) auf UTC eingestellt ist. Daskann über folgende Konfigurationsdateien geschehen:

� /usr/share/zoneinfo – In diesem Verzeichnis befinden sich Binärdateien, diemit allen existierenden Zeitzonen korrespondieren.

� /etc/localtime – Diese Datei ist die mit der aktuellen Zeitzone übereinstim-mende Binärdatei aus /usr/share/zoneinfo. Es kann sich hier um eine Kopieoder einen Softlink zur Originaldatei handeln.

392

Grundlegende Systemdienste108

� /etc/timezone ist eine textbasierte Konfigurationsdatei. Sie können die richtigeZeitzone in dieser Datei einfach eintragen.

Um einen Überblick über die verfügbaren Zeitzonen zu bekommen, können Sietzselect verwenden, wie Sie ja bereits aus dem vorangegangenen Kapitel wis-sen. Dieses nützliche Werkzeug ist in den meisten aktuellen Distributionen ent-halten.

Zeitsynchronisation über das Netzwerk

Zeitsynchronisation über das Netzwerk heißt in den meisten Fällen natürlichSynchronisation über das Internet. Zu diesem Zweck kommt das Network TimeProtocol (NTP) zum Einsatz. Es handelt sich hier um ein relativ altes Protokoll,das schon 1985 in RFC 958 definiert wurde. Wegen der geringen zu übertragen-den Datenmengen nutzt NTP das UDP. Der verwendete UDP-Port ist 123. Vieleinteressante Informationen und aktuelle NTP-Programmpakete erhalten Sie aufhttp://www.ntp.org. Hier finden Sie auch Listen mit öffentlichen Servern, vondenen Sie synchronisieren können. Interessant ist in diesem Zusammenhangauch ein Projekt, in dem ganze NTP-Pools mittels Round Robin zur Verfügunggestellt werden. Es folgt ein Beispiel mit einem Zugriff auf eben diese Server:

root@archangel:~# ntpdate pool.ntp.org28 Apr 18:03:14 ntpdate[30836]: adjust time server 131.234.137.24offset –0.000341 sec

Wie Sie sehen, können Sie mit ntpdate einfach durch Angabe eines Zeitserversdie Uhrzeit des Systems aktualisieren. Es wird allerdings empfohlen, bei der Syn-chronisation mehrere Server gleichzeitig zurate zu ziehen, damit die Richtigkeitder übermittelten Uhrzeit gegengeprüft werden kann.

Automatische Zeitsynchronisation

Wenn die Systemzeit automatisch synchronisiert werden soll, könnten Sie natür-lich einfach ntpdate regelmäßig von cron ausführen lassen. Das ist sogar in einigenPrüfungsfragen so vorgesehen. Komfortabler und genauer funktioniert dies aller-dings mit dem Daemon ntpd. Die Verwendung von ntpd hat vor allem den Vorteil,dass der Computer selbst als Zeitserver fungieren kann. Sie können ohne Schwie-rigkeiten einen Windows XP-Computer von einem Linux-Host synchronisieren.Dazu müssen Sie auf dem Windows XP-Computer lediglich einen Doppelklick mitder seriellen Zeigereinheit (Maus o. Ä.) auf die Uhr ausführen. Auf der Register-karte Internetzeit können Sie den Zeitserver festlegen. Diese Methode funktio-niert nicht, wenn der Windows-Computer Mitglied einer Domäne ist.

393

Die Systemzeit verwalten 108.1

Die Hauptkonfigurationsdatei für den ntpd ist /etc/ntp.conf. Hier findet der Dae-mon vor allem die Adressen mit den zur Aktualisierung vorgesehenen Servernund einen Verweis auf den Driftfile. Dieser liegt, zumindest offiziell (und somitfür die Prüfung), unter /etc/ntp.drift. Der tatsächliche Speicherort hängt von derverwendeten Distribution ab. Die Mindestausstattung der ntp.conf könnte etwaso aussehen:

server de.pool.ntp.orgserver ptbtime1.ptb.dedriftfile /var/lib/ntp/drift/ntp.drift

Mit diesen Einträgen ist der Server schon lauffähig. Starten Sie den Server wieüblich mit /etc/init.d/ntpd start. Er wird sofort eine erste Synchronisationdurchführen. In Abhängigkeit von der verwendeten Distribution wurde ntpdbereits durch xntpd ersetzt. Die Konfigurationsdateien sind jedoch identisch.

Die Driftdatei wird von ntpd verwendet, um Ungenauigkeiten der Systemuhrfestzuhalten. Die Abweichung von der tatsächlichen Zeit wird auf eine Millions-tel Sekunde ermittelt und in die Driftdatei geschrieben.

NTP Diagnose

Es gibt mehrere Bordwerkzeuge, um den ntpd oder auch xntpd zu untersuchen.Die beiden wichtigsten sind wohl ntpq und ntpdc. Beide Programme unterstüt-zen einen interaktiven Modus, der nach Eingabe eines Fragezeichens Aufschlussüber die Möglichkeiten der beiden Programme liefert. Das Beispiel zeigt eineAbfrage nach sysinfo mit ntpdc im interaktiven Modus:

archangel:/ # ntpdcntpdc> sysinfosystem peer: ptbtime1.ptb.desystem peer mode: clientleap indicator: 00stratum: 2precision: –18root distance: 0.02992 sroot dispersion: 0.02531 sreference ID: [192.53.103.108]reference time: cab10cf1.fd8090b4 Fri, Oct 5 2007 21:20:17.990system flags: auth monitor ntp kernel statsjitter: 0.004898 sstability: 236.358 ppmbroadcastdelay: 0.003998 sauthdelay: 0.000000 sntpdc>

394

Grundlegende Systemdienste108

Beide Diagnoseprogramme geben große Informationsmengen aus, weshalb eshier auch bei diesem einen Beispiel bleiben soll. Sehr interessant sind sicherlichnoch die Abfragen nach peers und monlist. Probieren Sie diese doch einfach ein-mal aus.

pool.ntp.org

Eine beliebte Quelle zur Synchronisation ist pool.ntp.org. Hierbei handelt es sichum einen sehr großen virtuellen Cluster, der über die ganze Welt verteilt ist.Europa ist hier übrigens mit etwas über 1.000 Nodes vertreten. Die Verteilung andie Clients wird über DNS mittels Round Robin abgewickelt. Das ist auch derGrund, warum Sie in der Datei /etc/ntp.conf mehrere Zeitserver eintragen sollten.Round Robin kümmert sich nämlich bei der Herausgabe einer IP-Adresse nichtdarum, ob der Zielserver auch wirklich erreichbar ist. Bei Windows-Clients (egal,ob XP oder Vista) können Sie nur einen Zeitserver eintragen. Hier tragen Sie ein-fach pool.ntp.org ein und hoffen, per Round Robin immer einen funktionstüch-tigen Server anzutreffen. Bei Linux-Clients schreibt man gerne in die /etc/ntp.conf:

server 0.pool.ntp.orgserver 1.pool.ntp.orgserver 2.pool.ntp.org

So haben Sie trotz Round Robin eine realistische Chance auf einen Treffer.

108.2 Systemprotokollierung

Wichtung: 2

Beschreibung: Kandidaten sollten in der Lage sein, den Syslog-Daemon zu konfi-gurieren. Dieses Lernziel umfasst auch die Konfiguration des Syslog-Daemons fürden Versand von Logmeldungen an einen zentralen Protokollserver oder dasAnnehmen von Logmeldungen als zentraler Protokollserver.

Wichtigste Wissensgebiete:

� Syslog-Konfigurationsdateien

� syslog

� Standard-Facilities, -Prioritäten und -Aktionen

Prüfungstipp

Das Thema pool.ntp.org ist in den LPI-Prüfungen neu. Die Wahrscheinlichkeit ist alsorecht hoch, dass zu diesem Thema Fragen kommen.

395

Systemprotokollierung 108.2

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� syslog.conf

� syslogd

� klogd

� logger

Allgemeines

Viele Programme und natürlich auch Linux selbst protokollieren zur Laufzeit Ereig-nisse, die sich in den jeweiligen Programmabläufen ergeben. Diese Protokollekann sich ein Administrator zunutze machen, um Fehler zu diagnostizieren oderEngpässe frühzeitig zu erkennen. Dazu ist es wichtig, die Speicherorte dieser Pro-tokolldateien zu kennen und gegebenenfalls Anpassungen am Verhalten der fürdie Protokollierung zuständigen Konfigurationsdateien vornehmen zu können.

syslogd und syslog-ng

Damit überhaupt eine Protokollierung von Ereignissen stattfindet, brauchen Siezunächst einmal ein Programm, das diese Protokollierung durchführt. Auf Linux-Systemen finden Sie momentan zwei verschiedene Produkte, die für das Loggingzuständig sind. Das neuere Produkt ist der syslog-ng, den man inzwischen in vie-len modernen Distributionen vorfindet. So verwenden Fedora 10 und Debian 4immer noch den alten syslogd, während SuSE bereits ab Version 9.3 den syslog-ng einsetzt. Solche Kriterien sollten allerdings niemals einen Qualitätsvergleich derDistributionen nach sich ziehen. Die meisten Distributionen haben unterschiedli-che Vor- und Nachteile. Letztendlich ist es auch Ansichtssache, ob man auf solide,altbewährte Methoden setzen will oder ob man mit neuen, verbesserten Techno-logien neue Kinderkrankheiten in Kauf nehmen möchte.

Die Konfigurationsdateien

Zunächst einmal muss festgelegt werden, was wohin von wem protokolliert wird.Normalerweise sind die Voreinstellungen brauchbar und müssen nicht sofortmodifiziert werden. Da Protokolldateien ohne regelmäßige Überprüfung sehrstark anwachsen können, muss auch noch ein Mechanismus verwendet werden,der ein Überlaufen der Festplatte verhindert.

Prüfungstipp

Für die Prüfung sollten Sie sich unbedingt auf den alten syslog konzentrieren. Fragenzu syslog-ng sind bis dato nicht aufgetaucht und vorläufig nicht zu erwarten. SuSE-Benutzer sollten also den alten syslogd nachinstallieren. Das benötigte Paket ist auf derSuSE-CD enthalten (/suse/i586/syslogd-1.4.1-537.i586.rpm).

396

Grundlegende Systemdienste108

/etc/syslog.conf

Das Protokollierungsverhalten des syslogd wird mit der Datei /etc/syslog.confgesteuert. Achtung bei der Prüfung: Es gibt keine /etc/syslogd.conf! Das kleine dgibt es nur bei dem entsprechenden Daemon! Der Aufbau dieser Datei ist rechteinfach organisiert. Jede Zeile enthält jeweils Felder, die immer folgendermaßengegliedert sind: facility.level action

� facility ist hierbei der Prozess, der den zu protokollierenden Eintrag erstellt.Es kommen folgende Prozesse in Frage:

� auth (ehemals security), authpriv, cron, daemon, kern, lpr, mail, mark, news,syslog, user, uucp, local0 bis local7

� Ein Stern (engl. asterisk) bezeichnet alle Facilities.

� Wenn Sie für eigene Programme den Syslog verwenden möchten, dannkönnen Sie hierfür auf die Facilities local0 bis local7 zurückgreifen, diefür eben diesen Zweck bestimmt sind.

� level legt den jeweiligen Protokollierungsgrad fest. Wenn Sie einen Fehlergenauer untersuchen wollen, kann es sinnvoll sein, den Protokollierungsgradrecht hoch einzustellen. In einigen Fällen können aber auch die Erfolgsmel-dungen einiger Facilities das Verzeichnis /var überschwemmen. Für die Prü-fung müssen Sie die Reihenfolge der Loglevel kennen:

� debug – extremer, in der Regel unnötiger Protokollierungsgrad

� info – harmlose Informationen

� notice – ungefährlicher Hinweis

� warning, warn – normalerweise harmlos, je nach Facility

� err, error – z.B. Authentifizierungsfehler, I/O Fehler

� crit – ein kritischer Fehler, sorgt immer für Probleme

� alert – ein Alarm, weist immer auf schwerwiegende Probleme hin

� emerg panic – wird (wenn überhaupt noch) als letzter Eintrag vor dem Sys-temcrash geschrieben. Das gilt natürlich nicht, wenn ein unwichtiges Pro-gramm abstürzt, bei dem die Ansteuerung des Syslog völlig übertriebenwurde.

Die Level error, warn und panic sind veraltet, und es sollten stattdessen jeweilserr, warning und emerg verwendet werden.

� action ist von der Bezeichnung her irreführend. In diesem Feld wird das Zielspezifiziert, in die das Facility protokollieren soll. Hierbei wird es sich norma-lerweise um eine Datei handeln. Die Benachrichtigung kann aber auch aneinen anderen Computer oder an eine kommagetrennte Liste von Benutzerngesendet werden.

397

Systemprotokollierung 108.2

Es folgt ein Auszug aus einer typischen Debian-syslog.conf:

auth,authpriv.* /var/log/auth.logcron.* /var/log/cron.logkern.* -/var/log/kern.loglpr.* -/var/log/lpr.logmail.* -/var/log/mail.log

Wie Sie gleich sehen, verwendet Debian für jedes Facility seine eigene Log-Datei.Das ist eher außergewöhnlich, kann aber bei der Fehlersuche angenehm sein,wenn Sie kleinere Logfiles gezielt durchsuchen. Bei den meisten anderen Distri-butionen können Sie davon ausgehen, dass der Löwenanteil der protokolliertenInformationen in der Datei /var/log/messages abgelegt werden.

/etc/logrotate.conf

Damit die Log-Dateien auf einem unbeobachteten System nicht unkontrolliertanwachsen und das Dateisystem fluten, werden diese mit dem Programmlogrotate überwacht. Wie logrotate diese Dateien behandelt, hängt von denEinstellungen in der Konfigurationsdatei /etc/logrotate.conf ab. Normalerweisewerden nach Ablauf einer voreingestellten Zeit die im Verzeichnis /var/logbefindlichen Dateien komprimiert und dann im leeren Zustand neu erstellt. Es istheute der Übersichtlichkeit halber üblich, die Konfiguration mit Include-Dateienzu versehen. Deshalb sollten Sie auf Ihrem System auch nach einem Verzeichnismit der Bezeichnung /etc/logrotate.d Ausschau halten. Logrotate sollte täglichvon cron ausgeführt werden.

Einsatz von Log-Dateien zur Fehlersuche

Wenn auf einem Linux-System ein unerklärlicher Fehler auftritt, ist es immereine gute Idee, das Verzeichnis /var/log zu konsultieren und die mit dem Problemin Zusammenhang stehenden Log-Dateien zu untersuchen. Die einfachsteMethode ist wohl die Anzeige einer Log-Datei mit einem Pager:

archangel:/ # less /var/log/messagesAug 17 09:07:42 archangel named[6801]: client 172.16.0.2#2509:updating zone '0.16.172.in-addr.arpa/IN': adding an RR at'2.0.16.172.in-addr.arpa' PTRAug 17 09:45:39 archangel sshd[31158]: Accepted password for rootfrom ::ffff:192.168.0.10 port 4345

Prüfungstipp

Detaillierte Kenntnisse über die Konfiguration der logrotate.conf sind für die Prüfungnicht erforderlich. Sie sollten aber auf jeden Fall wissen, wozu logrotate eingesetzt wird.

398

Grundlegende Systemdienste108

Aug 17 10:00:32 archangel syslog-ng[6389]: STATS: dropped 0Aug 17 11:00:33 archangel syslog-ng[6389]: STATS: dropped 0

Scheinbar ist nichts Aufregendes passiert. Der DNS-Server hat einen Reverse-Lookup-Eintrag aktualisiert, und der Root hat sich via SSH eingeloggt. Danachgeschah zwei Stunden lang nichts!

Eine völlig andere Methode, sich Log-Dateien zunutze zu machen, ist das Kom-mando tail. Standardmäßig gibt tail die letzten zehn Zeilen einer Textdatei aufdem Bildschirm aus. Wenn Sie aber die Option –f übergeben, wird das Anzeigender betreffenden Log-Datei fortgesetzt. Das bedeutet, dass der Computer keinenEingabe-Prompt anzeigt, sondern die Datei samt Änderungen im laufenden Betriebanzeigt und aktualisiert. Das ist besonders nützlich, wenn Sie beabsichtigen, einenFehler zu provozieren und dessen Auswirkungen gleichzeitig auf einem anderenTerminal zu beobachten. Die vollständige Kommandozeile ist also folgende:

archangel:~ # tail /var/log/messages -f

Wenn Sie nach der Ausgabe eines bestimmten Programms in einer umfangrei-chen Protokolldatei oder nach einem bestimmten Ereignistyp suchen, empfiehltes sich, die Anzeige der Log-Datei mit grep zu filtern. Bei umfangreicheren Ergeb-nissen kann die Ausgabe natürlich nach less umgeleitet werden.

archangel:~ # grep sshd /var/log/messages | grep invalid | less

In diesem Beispiel sucht grep zunächst alle Einträge, die der sshd protokollierthat. Die anschließende Filterung nach invalid sucht fehlgeschlagene Anmel-deereignisse. Zum Schluss wird die Ausgabe an less übergeben und auf demBildschirm dargestellt:

Sep 17 13:04:47 archangel sshd[310]: Failed none for invalid userrooot from ::ffff:87.187.104.63 port 64960 ssh2Sep 25 16:58:55 archangel sshd[1774]: Failed none for invalid usermartin from ::ffff:192.168.0.53 port 55380 ssh2

Offensichtlich ist beim ersten Eintrag der Benutzername Root falsch geschriebenworden. Der zweite Eintrag ist ein Anmeldeversuch von einem Benutzer, den esauf diesem System gar nicht gibt.

Selbst Ereignisse loggen

Eine einfache Methode, ein Ereignis selbst zu generieren, bietet das Programmlogger. Dieses Tool kann natürlich auch in eigenen Skripten eingesetzt werden.Wenn z.B. ein selbst geschriebenes Skript verwendet wird, das eigenständig eineDatensicherung durchführt, ist am Ende des Skripts folgende Zeile denkbar:

399

Grundlagen von Mail Transfer Agents (MTAs) 108.3

logger -t Backup "Datensicherung ausgeführt"

Zu Testzwecken können Sie den Befehl auch einfach auf der Kommandozeile ein-geben. Ein Blick in den Syslog zeigt das Ergebnis:

archangel:~ # tail –1 /var/log/messagesSep 25 17:20:42 archangel Backup: Datensicherung ausgeführt

So haben Sie in Zukunft jederzeit die Möglichkeit, zu überprüfen, wann diesesSkript ausgeführt wurde.

Der Kernellog

Der Daemon mit dem Namen klogd fängt Meldungen des Kernels ab und proto-kolliert diese. Normalerweise wird er vom init-Prozess gestartet und läuft sinn-vollerweise in jedem Runlevel, den ein System nutzt. Die Ausgabe erfolgt in derRegel auf dem Syslog. Man kann (am besten im zugehörigen init-Skript) einigeOptionen an den klogd übergeben. Einige wichtige Optionen sind:

� -c n setzt den Loglevel für Konsolenmeldungen auf n.

� -d aktiviert den Debugging Modus.

� -f datei ändert die Ausgabe vom Syslog auf die angegebene datei.

Als Eingabedatei verwendet klogd /proc/kmsg. Auch das lässt sich mit einemSchalter (nämlich -p path) ändern. Allerdings gibt es dazu normalerweise keineVeranlassung.

108.3 Grundlagen von Mail Transfer Agents (MTAs)

Wichtung: 3

Beschreibung: Kandidaten sollten wissen, welche gebräuchlichen MTA-Pro-gramme existieren und einfache Weiterleitungs- und Alias-Konfigurationen aufeinem Client-Rechner einstellen können. Weitere Konfigurationsdateien werdennicht abgedeckt.

Wichtigste Wissensgebiete:

� Mail-Aliase anlegen

� Mail-Weiterleitung konfigurieren

� Wissen von allgemein verfügbaren MTA-Programmen (postfix, sendmail,qmail, exim) (keine Konfiguration)

400

Grundlegende Systemdienste108

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� ~/.forward

� Kommandos in der Sendmail-Emulationsschicht

� newaliases

� mail

� mailq

� postfix

� sendmail

� exim

� qmail

Allgemeines

MUA, MDA und MTA

Die Verarbeitung und Übermittlung von Mail-Nachrichten wird in der Hauptsa-che von drei Softwarekomponenten durchgeführt:

� MUA – Der Mail User Agent ist ein Mail-Clientprogramm, mit dem Mailsgeschrieben, gelesen und versendet werden. (z.B. kmail, Evolution, Thunder-bird, Outlook usw.)

� MDA – Der Mail Delivery Agent verarbeitet E-Mails auf einem Server. Er ent-scheidet, wie mit den E-Mails weiter zu verfahren ist. Handelt es sich umlokale Mail-Adressen, stellt er die E-Mail im entsprechenden Mail-Verzeichnisdes Adressaten zu. Ansonsten übergibt er die Nachricht an den MTA, der dannfür die Weiterleitung sorgt. (MDAs sind z.B. procmail, maildrop, cyrus)

� MTA – Der Mail Transfer Agent nimmt die E-Mail vom Client entgegen. Er istfür die Zustellung einer Nachricht an den richtigen Zielserver verantwortlich.Hierbei wird normalerweise das Protokoll SMTP verwendet. Auf dem Zielser-ver übernimmt dann wieder der MDA die Nachrichten und verteilt sie in dieentsprechenden Mail-Verzeichnisse. (MTAs sind z.B. sendmail, postfix, qmail,exim.)

Prüfungstipp

Für die anstehende Prüfung müssen Sie mit den Grundfertigkeiten der Konfigurationeines Mail Transfer Agents vertraut sein. Komplexere Administrationsaufgaben erwartenSie allerdings erst in der LPI-Prüfung 117-201.

401

Grundlagen von Mail Transfer Agents (MTAs) 108.3

Für die endgültige Auslieferung einer Mail-Nachricht an ein Clientprogrammbenötigen Sie letztendlich noch mindestens einen weiteren Serverdienst, wieIMAP oder POP.

Das Starten und Stoppen eines Mail Transfer Agents funktioniert genau so, wiebei den meisten anderen Netzwerkdiensten auch, wenn diese nicht gerade voninetd oder xinetd gesteuert werden. Das bedeutet zum Beispiel für postfix:

root@ubuntu-server:/# /etc/init.d/postfix start* Starting Postfix Mail Transport Agent postfix [ OK ]

Mail – Aliase

Die Datei /etc/aliases

In der Datei /etc/aliases können Sie Mail-Nachrichten umleiten. Hierbei sind vierverschiedene Verfahren möglich. Das gängigste ist dieses:

willi: wilhelmroot: wilhelm

Mit dem ersten Eintrag werden Mails, die an willi adressiert sind, dem real exis-tierenden Benutzerkonto wilhelm zugeordnet. Da Wilhelm ein Systemverwalterist, der sich äußerst selten als Root anmeldet, werden Mails, die an den Rootadressiert sind, ebenfalls Wilhelms Benutzerkonto zugewiesen.

Eine andere Methode ist die Zuweisung eines Alias zu einer Datei. So könnte manTätigkeitsberichte, automatisch mit Datum und Uhrzeit versehen, per Mail-Pro-gramm schreiben:

taetigkeiten: "/home/harald/taetigkeitsbericht"

Die Berichte müssen dann einfach an das Konto taetigkeiten gesendet werden,und die Aufzeichnung geschieht automatisch in der angegebenen Datei. Für die-ses Konto muss ebenfalls kein reales Benutzerkonto auf dem Server existieren.

freunde: :include:/home/harald/meinefreunde

Der voranstehende Eintrag macht tatsächlich das, wonach er aussieht: Wenn eineMail an Freunde gesendet wird, wird diese Nachricht an alle Mail-Adressen ver-sendet, die in der Textdatei /home/harald/meinefreunde zeilensepariert aufgeführtsind.

Die letzte, nicht selten genutzte Möglichkeit ist die Übergabe einer Nachricht anein Programm. Mit dieser Methode arbeitet etwa das MailinglistenprogrammMajordomo:

402

Grundlegende Systemdienste108

majordomo: "|/usr/lib/majordomo/wrapper majordomo"

Der Unterschied zur Umleitung in eine Datei ist das führende Pipe-Zeichen.

newaliases

Nach dem Anlegen eines neuen Alias in der Datei /etc/aliases müssen Sie denBefehl newaliases eingeben, damit Sendmail den neuen Alias auch verwendet.Alternativ können Sie auch sendmail -bi ausführen. Selbst die Antwort der bei-den Kommandos ist identisch:

[root@fedora10 home]# sendmail -bi/etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total

Weiterleitung von Mail

Ein Benutzer kann für sich selbst eine Mail-Weiterleitung einrichten. Das wird oftmit einem Nachsendeauftrag bei der Post verglichen. Ein gern genannter Verwen-dungszweck ist die Weiterleitung geschäftlicher Mails an eine Urlaubsvertretung.Dazu muss der Benutzer nichts weiter tun, als eine Datei mit dem Namen .for-ward (der Punkt muss sein) in seinem Heimatverzeichnis zu erstellen, welche dieWeiterleitungsadresse in einer einzelnen Zeile enthält. Die Weiterleitung greiftsofort. Es muss nichts weiter unternommen werden.

Wichtige Dateien und Verzeichnisse

� /var/spool/mail – in diesem Verzeichnis liegen Dateien mit den Namen derBenutzerkonten, die auf diesem System Mails empfangen. Der MDA lieferthier Nachrichten für die lokalen Benutzer aus.

� /var/spool/mqueue – das ist die Mail-Queue oder auch Warteschlange. Hier holtder MDA Nachrichten ab und entscheidet dann, ob sie lokal ausgeliefert wer-den oder an den MTA zur weiteren Verarbeitung übergeben werden müssen.

� /var/spool/postfix – hier liegt die Datenverzeichnisstruktur von postfix.

� /var/mail ist ein typischer Link auf /var/spool/mail.

� /etc/postfix beherbergt die Konfigurationsdateien von postfix.

� /etc/mail enthält die meisten Konfigurationsdateien für sendmail.

Prüfungstipp

Für die Prüfung müssen Sie die Verzeichnisse, die von den gängigen MTAs (hauptsäch-lich postfix und sendmail) verwendet werden, kennen.

403

Grundlagen von Mail Transfer Agents (MTAs) 108.3

Um den Inhalt einer Mail-Queue im laufenden Betrieb sehen zu können, verwen-den Sie das Programm mailq ohne Parameter:

archangel:/var/spool/mqueue # mailq/var/spool/mqueue (2 requests)

--Q-ID---- --Size-- --Q-Time---- ----Sender/Recipient-l9HH2A016576* 816 Wed Oct 17 19:02 <[email protected]>

<[email protected]>l929jC016576* 931 Wed Oct 17 19:02 <[email protected]>

<[email protected]>Total requests: 2

In der Regel ist hier aber nichts zu sehen, weil bei einem normal frequentiertenServer die Verarbeitung der Mails sehr schnell geschieht.

sendmail-Konfigurationsdateien

Die Hauptkonfigurationsdatei von sendmail ist die Datei sendmail.cf. WeitereKonfigurationsdateien befinden sich normalerweise in /etc/mail. Die Datei send-mail.cf selbst finden Sie z.B. bei SuSE direkt unter /etc, während sie bei Fedora 10unter /etc/mail residiert. Das ist schon ein erster Hinweis darauf, dass die Konfi-guration von sendmail stark variiert. Die Datei sendmail.cf könnte man durchausals kompliziertes Konstrukt bezeichnen. Deshalb wird sie auch normalerweisenicht von Hand erstellt. Stattdessen schreibt man M4-Makros, die dann durcheinen M4-Präprozessor verarbeitet werden. Die LPI-Prüfungen sind aber weitdavon entfernt, sich mit dieser Thematik auseinanderzusetzen.

postfix-Konfigurationsdateien

Der MTA postfix wird mit Konfigurationsdateien konfiguriert, die sich im Ver-zeichnis /etc/postfix befinden. Die Datei main.cf ist die globale Konfigurationsda-tei für postfix. Hier werden wichtige Grundeinstellungen festgelegt. Um eventu-elle Pfadangaben zu irgendwelchen Arbeitsverzeichnissen müssen Sie sichnormalerweise nicht kümmern, weil diese distributionsspezifisch schon immerrichtig eingestellt sind. Es sollte aber natürlich festgelegt werden, unter welchemNamen der Computer aus der Sicht des Internets angesprochen wird und für wel-che Domänen er verantwortlich ist:

myhostname = echtername.meinedomain.commyhostname = virtuellername.meinedomain.commydomain = meinedomain.com

Wie in dieser Datei die Smarthost-Einstellungen u.Ä. konfiguriert werden, erfah-ren Sie auf der nächsten Seite.

404

Grundlegende Systemdienste108

Eine weitere Konfigurationsdatei, die postfix verwendet, heißt master.cf. Hierbeihandelt es sich um die Konfiguration für die postfix-internen Prozesse. In dieserDatei müssen in den seltensten Fällen Änderungen vorgenommen werden.

Smarthost und SMTP-Relay

Ein Smarthost ist ein Mailserver, der als SMTP-Relay fungiert. Normalerweisewerden Sie Ihre zu versendenden Mails nicht direkt zustellen, sondern durch denSMTP-Server Ihres Internet Service Providers ausliefern lassen. Anderenfalls wür-den viele Mailserver Ihre Mail nicht entgegennehmen, weil Ihr SMTP-Server imInternet nicht bekannt ist. Daraus schließen diese Zielserver, dass Ihr Server einmögliches Relay für Spam ist, und verwerfen Ihre Mail.

Smarthost mit sendmail

Wenn Sie einen externen Smarthost für sendmail angeben wollen, ist das eine derwenigen Situationen, in denen Sie die sendmail.cf bearbeiten müssen. Suchen Sienach einem DS am Zeilenanfang (möglicherweise auskommentiert), und schrei-ben Sie dahinter lückenlos den FQDN des Relayservers.

# "Smart" relay host (may be null)DSmailrelay.myisp.org.

So sieht der Eintrag also aus, wenn der Server mailrelay.myisp.org heißt.

Soll Ihr Server selbst als SMTP-Relay fungieren, dann müssen Sie die Dateien /etc/mail/access und /etc/mail/relay-domains modifizieren und anschließend in ebendiesem Verzeichnis einmal das Kommando make ausführen, um die korrespon-dierenden db-Files zu generieren.

Smarthost mit postfix

Sollten Sie postfix als MTA verwenden, dann muss der Smarthost entsprechendin der Datei /etc/postfix/main.cf eingetragen werden. Dieser Eintrag sieht wiefolgt aus:

relayhost = mail.myisp.org

Um postfix selbst als Relay einzusetzen, gibt es verschiedene Möglichkeiten. Einesehr einfache (wenn auch umstrittene) Methode ist es, einfach mit der Angabeder eigenen Netzwerke für bestimmte Subnetze Relaying zuzulassen:

mynetworks = 127.0.0.0/8 192.168.50.0/24 172.16.0.0/28

Das setzt natürlich voraus, dass die Mitarbeiter, die sich in diesen Subnetzseg-menten aufhalten, vertrauenswürdig sind und nicht auf die Idee kommen, dieAbsender ihrer Mails zu fälschen.

405

Drucker und Druckvorgänge verwalten 108.4

Wesentlich sicherer ist es natürlich, eine Authentifizierung des Benutzers zu ver-langen. Als Mechanismus kommt hier am ehesten SASL (Simple Authenticationand Security Layer) infrage. Sollte ein authentifizierter Benutzer eine Mail mitgefälschtem Absender verschicken, ist dieser Vorgang zumindest in den Protokol-len (/var/log/mail) nachvollziehbar.

exim und qmail

Weniger bekannt sind die MTAs exim und qmail. Exim ist weitgehend ähnlich zukonfigurieren wie sendmail, die Konfiguration ist aber etwas einfacher. Debianverwendet exim sogar als Standard-MTA. Der MTA qmail wurde hauptsächlichentwickelt, um die Sicherheit gegenüber sendmail zu erhöhen. Auch qmail isterheblich leichter zu konfigurieren als sendmail.

108.4 Drucker und Druckvorgänge verwalten

Wichtung: 2

Beschreibung: Kandidaten sollten in der Lage sein, Druckerwarteschlangen undDruckaufträge von Benutzern mit CUPS und der LPD-Kompatibilitätsschnittstellezu verwalten.

Wichtigste Wissensgebiete:

� grundlegende CUPS-Konfiguration (für lokale und entfernte Drucker)

� Benutzer-Druckerwarteschlangen verwalten

� allgemeine Druckprobleme lösen

� Druckaufträge zu eingerichteten Druckerwarteschlangen hinzufügen und dar-aus löschen

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� CUPS-Konfigurationsdateien, -Werkzeuge und -Hilfsprogramme

� /etc/cups

� LPD-Kompatibilitätsschnittstelle (lpr, lprm, lpq)

Allgemeines

Drucken funktioniert unter Linux praktisch genauso wie unter Unix. Das ist auchnicht weiter verwunderlich, weil die beiden Drucksysteme, die unter Linux ver-wendet werden, Portierungen aus der Unix-Welt sind. Die ältere der beiden Vari-

406

Grundlegende Systemdienste108

anten ist an BSD-Unix angelehnt, das in Kalifornien an der Universität in Berkeleyentwickelt wurde (BSD steht für Berkeley Software Distribution). Das BSD-Druck-system wurde allerdings später für Linux komplett neu geschrieben, weil es eineSicherheitslücke aufwies, die man unter Linux nicht akzeptieren wollte. Diesesneu entwickelte System finden Sie heute unter der Bezeichnung LPRng in prak-tisch allen Linux-Distributionen wieder.

Das zweite große Drucksystem unter Linux heißt CUPS (Common Unix PrintingSolution oder auch Common Unix Printing System). CUPS wurde ursprünglich ent-wickelt, um das Internet Printing Protocol (IPP) zu unterstützen, löste aber auf vie-len Systemen BSD und LPRng ab. Auch wenn CUPS intern völlig anders arbeitetund zudem ein webbasiertes Konfigurationsfrontend anbietet, so ist bei seinerEntwicklung an Abwärtskompatibilität gedacht worden. CUPS unterstützt nichtnur die Kommandos von BSD bzw. LPRng, sondern zusätzlich auch die von Sys-tem-V, einer verbreiteten Unix-Version.

Verwalten der Druckerwarteschlangen

Ein Druckauftrag durchläuft bei den meisten Betriebssystemen, bevor er ausge-druckt wird, eine sogenannte Warteschlange. In diesem Zusammenhang wirdauch häufig der Begriff Queue verwendet. Das Wort Queue kommt ursprünglichaus der französischen Sprache und bedeutet Schlange. Billard wird also, wennman es auf gut Deutsch ausdrücken will, nicht mit einem Stock, sondern miteiner (offensichtlich erstarrten) Schlange gespielt. Einen weiteren gängigen Fach-begriff, nämlich Spooler, kann man beinahe phonetisch aus dem Englischen mitSpule übersetzen. Druckaufträge reihen sich also in eine Schlange ein oder wer-den aufgespult.

Die zu druckenden Aufträge werden unter Linux zunächst von einem Druck-Cli-ent-Programm (z.B. lpr) in die entsprechende Warteschlange gestellt. Um dasgenaue Verzeichnis zu ermitteln, in das der Druckauftrag hingespoolt werdenmuss, wird die Konfigurationsdatei /etc/printcap ausgewertet. Normalerweisebefinden sich die Warteschlangen unterhalb von /var/spool. Ein Druckauftragbesteht immer aus zwei Dateien, nämlich einem Control-File mit der Dateierwei-terung cf und einem in der Regel erheblich größeren Data-File mit der Extensiondf. Der Spool-Vorgang ist nun abgeschlossen, und die beiden Dateien bleibenjetzt so lange liegen, bis sie jemand bearbeitet. Diese Aufgabe übernimmt derLine Printer Daemon (lpd) nun, vorausgesetzt, er wurde gestartet. lpd prüftzyklisch das Vorhandensein von Dateien in allen Druckerwarteschlangen. Wirder fündig, so übergibt er die momentan noch in einem sehr rohen, RAW genann-ten Format vorliegenden, Daten an einen Druckfilter. Dieser wandelt dann dieDaten in Abhängigkeit vom verwendeten Druckermodell in einen geeigneten

407

Drucker und Druckvorgänge verwalten 108.4

Datenstrom und sendet diesen an den Drucker. Wenn der Auftrag ausgedrucktwurde, werden die Kontroll- und die Datendatei aus der Warteschlange gelöscht.

Die Verarbeitung der Dateien ist bei der Verwendung von CUPS geringfügiganders. So sind z.B. die Konventionen für die Benennung der Dateien innerhalbeiner Warteschlange different, aber das Druckprinzip ist weitestgehend gleich.

Den Line Printer Daemon startet man mit dem Befehl:

/etc/init.d/lpd start

Alternativ startet man CUPS mit:

/etc/init.d/cups start

Man beachte die Besonderheit, dass der Daemon CUPS nicht, wie die meistenanderen, auf d endet! Nach Änderungen an den Konfigurationsdateien, insbeson-dere /etc/printcap, muss der jeweilige Druckdaemon neu gestartet werden.

Befehle zur Kontrolle von Druckvorgängen

� lp und lpr senden Druckaufträge an einen angegebenen Drucker. Das Kom-mando lp entstammt dem System-V und versteht andere Optionen als lpr.Machen Sie sich für die LPI-Prüfung mit den Optionen von lpr vertraut. Mit–P wird die zu verwendende Warteschlange angegeben.

archangel:~ # lpr -Plaserjet1300 /etc/printcap

druckt die Datei /etc/printcap auf dem Printer Laserjet1300 aus.

� lpq zeigt den Inhalt von Warteschlangen an. Es kann auch hier mit der Option–P eine bestimmte Warteschlange angegeben werden:

archangel:~ # lpq -Plaserjet1300laserjet1300 is ready and printingRank Owner Job File(s) Total Sizeactive root 450 printcap 1024 bytes1st michaela 451 haushaltplan 9216 bytes2nd michaela 452 haushaltplan 9216 bytes3rd dominik 453 kinderprogramm.html 1024 bytes

� lprm löscht Aufträge aus der Warteschlange. Bereits im Druck befindliche Auf-träge können nicht mehr entfernt werden.

archangel:~ # lprm -Plaserjet1300 451

entfernt den versehentlich doppelt abgesendeten Druckauftrag aus dem Bei-spiel für lpq.

408

Grundlegende Systemdienste108

Ein Benutzer ohne administrative Rechte kann ohne Weiteres selbst alle eige-nen Aufträge löschen, indem er den Befehl lprm – eingibt. Wenn derselbeBefehl aber vom Benutzer Root ausgeführt wird, dann werden sämtlicheDruckaufträge aller Benutzer aus der Warteschlange entfernt.

lpc – Line Printer Control

lpc ist ein Programm, das man als gewöhnlichen Konsolenbefehl oder interaktivverwenden kann. Es bietet umfangreiche Funktionen, weshalb ihm auch ein eige-ner Abschnitt zusteht. Der interaktive Modus bietet einen Eingabe-Prompt undmacht vor allem dann Sinn, wenn Sie beabsichtigen, dem Druckdaemon mehrereBefehle hintereinander zu geben. Wenn lpc mit CUPS verwendet wird, sind nureinige wenige Befehle innerhalb von lpc verfügbar. Genau genommen ist dannlediglich eine Statusabfrage möglich.

lpc> statuslaserjet1300:

printer is on device 'parallel' speed –1queuing is enabledprinting is enabled4 entriesdaemon present

Unter BSD bzw. LPRng sind deutlich mehr Optionen verfügbar, wobei dieBefehlsstruktur bis auf die Ausnahmen topq und status immer die gleiche ist. Inden Beispielen wird davon ausgegangen, dass lpc im interaktiven Modus gestar-tet wurde.

lpc> up laserjet1300

startet und aktiviert den Laserjet 1300, während

lpc> up all

alle Drucker gleichzeitig startet und aktiviert. Also werden immer lpc, gefolgtvom lpc-Kommando (up) und von dem anzusteuernden Drucker (Laserjet1300bzw. all) angegeben. Die lpc-Kommandos sind im Einzelnen:

� start startet den Druckprozess als solchen, so dass jetzt Aufträge aus der War-teschlange abgearbeitet und ausgedruckt werden können.

� stop beendet den Druckprozess. Ein laufender Auftrag wird noch bis zumEnde abgearbeitet. Die Druckerwarteschlange nimmt aber weiterhin Aufträgeentgegen.

� enable aktiviert die Druckerwarteschlange.

409

Drucker und Druckvorgänge verwalten 108.4

� disable deaktiviert die Druckerwarteschlange. Bereits in der Warteschlangebefindliche Aufträge werden noch fertig abgearbeitet. Neue Jobs werdenjedoch abgelehnt.

� up kombiniert die Kommandos enable und start.

� down kombiniert die Kommandos disable und stop.

� abort beendet den Druckprozess sofort. Auch ein bereits in Arbeit befindli-cher Druckauftrag wird sofort abgebrochen. Sollte der Drucker seine Tätigkeitnicht sofort einstellen, ist dies auf Restdaten im Druckerspeicher zurückzufüh-ren.

� topq stellt einen bereits gespoolten Druckauftrag an die erste Position in derWarteschlange. Hier sieht die Befehlssyntax etwas anders aus als bei den ande-ren Kommandos:

� lpc> topq Laserjet1300 453 verschiebt den Druckjob mit der Nummer 453 andie erste Position der Druckerwarteschlange. Ein bereits in Arbeit befindlicherDruckauftrag wird hierdurch nicht abgebrochen.

� quit beendet letztendlich den interaktiven Modus des lpc und kehrt zur nor-malen Shell zurück.

Drucken mit CUPS

CUPS ist ein Drucksystem, das von Anfang an auf das Drucken im Netzwerk aus-gelegt wurde. Deshalb modifiziert CUPS auch gleich nach seiner Installation diealtbekannte /etc/printcap, in der er sich selbst als Netzwerkdrucker deklariert:

# This file was automatically generated by cupsd(8) from the# /etc/cups/printers.conf file. All changes to this file# will be lost.laserjet1300|laserjet1300:rm=archangel:rp=laserjet1300:

Abgesehen vom Namen des Druckers und seinem Alias, findet man hier alsonoch einen remote printer an einer remote machine und das, obwohl der Druckerlokal angeschlossen ist. Die Konfigurationsdateien für CUPS befinden sich alleunterhalb von /etc/cups. Aber selbst diese müssen Sie nur selten modifizieren,weil die komplette Konfiguration über Frontends durchgeführt werden kann. Ameinfachsten ist die Konfiguration mit einem Webbrowser. CUPS horcht am TCP-Port 631 und kann somit über http://localhost:631 angesprochen werden. Aufdiesem Weg können nicht nur Wartungsaufgaben wie das Löschen von Druckauf-trägen u.Ä. durchgeführt, sondern dem System auch neue Drucker hinzugefügtwerden. Der TCP-Port für die Konfiguration lässt sich übrigens in der Datei /etc/cups/cupsd.conf ändern. CUPS kennt von sich aus sehr viele verschiedene Drucker

410

Grundlegende Systemdienste108

und bringt die nötigen Filter alle mit. Die normalen Befehle zur Verwaltung vonWarteschlangen, wie lpr, lprm, lpq und lpc, stehen genauso zur Verfügung wieunter BSD. Einzig der lpc ist in seiner Funktionsweise stark eingeschränkt. Zurkonsolenbasierten Konfiguration dient das Tool lpadmin, was Sie sich auch unbe-dingt für die Prüfung merken sollten. In der Praxis werden Sie nach kurzer Ein-gewöhnungszeit auf die angenehme HTML-Oberfläche von CUPS nicht mehr ver-zichten wollen.

465

Übungsfragen zu LPI 117-102

Die folgenden Fragen sollen Ihnen helfen, sich an die Art der Fragestellung inder wirklichen Prüfung zu gewöhnen. Es macht keinen Sinn, die Fragen einfachauswendig zu lernen, denn es sind keine Prüfungsfragen. Sie sollten stattdessenversuchen, die Antworten zu jeder einzelnen Frage zu verstehen. Deshalb wer-den sowohl die richtigen als auch die falschen Antworten im Lösungsteil desBuches detailliert besprochen. Das Üben mit diesen Fragen soll Ihnen auch dieHerangehensweise an eventuell Ihnen unbekannte Themen nahe bringen. Einunbekanntes Kommando in einer Frage ist nämlich noch längst kein Grund, eineFrage einfach nicht zu beantworten. Oft führt ein wenig Logik oder das Aus-schlussverfahren dennoch zum Ziel.

Fragen

Frage 1:

Während Ihrer täglichen administrativen Arbeit verwenden Sie häufig das Kom-mando ps -aux. Sie bemerken, dass Sie das Programm ps eigentlich nie ohnediese Schalter verwenden. Wie können Sie erreichen, dass in Zukunft durch dieeinfache Eingabe von ps automatisch das Kommando ps -aux ausgeführt wird?

A: ps = "ps -aux"

B: let ps = "ps -aux"

C: alias ps= "ps -aux"

D: set ps = "ps -aux"

E: alias ps -aux = ps

466

Übungsfragen zu LPI 117-102

Frage 2:

Sie müssen ein Programm ausführen und dabei verhindern, dass dieses Pro-gramm auf Ihre gesetzten Umgebungsvariablen zurückgreift. Welches Kom-mando können Sie dem Programm voranstellen, damit es in einer »leeren Umge-bung« läuft?

A: export

B: env -i

C: set -i

D: unset

E: clear

Frage 3:

Sie haben die Variable http_proxy gesetzt. Während der Arbeit in einer Subshellstellen Sie fest, dass Ihnen die Variable nicht zur Verfügung steht. Welches Kom-mando können Sie auf der übergeordneten Shell ausführen, damit die Variableund ihr Inhalt für Subshells verfügbar wird?

A: set http_proxy

B: env -u http_proxy

C: let http_proxy

D: export http_proxy

E: unset http_proxy

Frage 4:

Die Variablen a und b enthalten jeweils einen numerischen Wert. Sie wollen diebeiden Werte addieren und in der Variablen c zusammenführen. Welches Kom-mando können Sie verwenden?

A: let c=$a+$b

B: c=$a+$b

C: $c=$a+$b

D: let $c=$a+$b

E: let c=a$+b$

467

Fragen

Frage 5:

Sie wollen der Variablen a den Wert 102 zuordnen und für Subshells verfügbarmachen. Welches Kommando werden Sie verwenden?

Frage 6:

Sie haben zu Ihrer Arbeitserleichterung durch die Eingabe des folgenden Kom-mandos einen Alias erstellt:

alias ps="ps -aux"

Nun benötigen Sie den Befehl ps in seiner ursprünglichen Form. Aber immer,wenn Sie ps eingeben, wird der Alias anstatt des Originalbefehls ausgeführt. Wiekönnen Sie das Originalkommando ausführen?

A: set ps

B: let ps

C: do ps

D: sudo ps

E: builtin ps

Frage 7:

Während Ihrer täglichen Arbeit kommt es häufiger vor, dass Sie bestimmte Kom-mandos in immer der gleichen Reihenfolge ausführen müssen. Sie wollen dieseKommandos zusammenfassen, ohne ein Skript zu schreiben. Welchen Befehlkönnen Sie hier zum Einsatz bringen?

A: alias

B: env

C: set

D: function

E: unset

502

Übungsfragen zu LPI 117-102

Antworten und Erklärungen zu den Prüfungsfragen

Hier finden Sie die Erläuterungen zu allen Fragen des zweiten Teils. Sie solltenunbedingt auch die Kommentare zu den falschen Antworten lesen. Einige Faktenwerden hier nicht zufällig mehrfach erwähnt, sondern weil wesentliche Prüfungs-inhalte auf diese Weise besser in Ihrem Gedächtnis haften bleiben.

Frage 1:

C: alias ps="ps -aux" legt den alias ps an. Bei der Eingabe des Kommandos pswird dann stattdessen ps -aux ausgeführt. Es macht natürlich Sinn, dieses Kom-mando in ein Anmeldeskript (z.B. .profile) aufzunehmen.

zu A und B: ps = "ps -aux" und let ps = "ps -aux" sorgen beide dafür, dass dieVariable ps definiert und mit dem Wert »ps -aux« gefüllt wird.

zu D: set ps = "ps -aux" ist falsch. Das Programm set zeigt lediglich die Shell-variablen an.

zu E: alias ps -aux = ps funktioniert nicht. Die Reihenfolge in der Syntax istfalsch.

Frage 2:

B: env -i startet ein Programm in einer von Umgebungsvariablen bereinigtenUmgebung.

zu A: export exportiert Variablen samt ihrem Inhalt in Subshells.

zu C: set -i ist hier das falsche Programm, weil set nur für Shellvariablen zustän-dig ist.

zu D: unset entfernt Werte aus einer angegebenen Variablen.

zu E: clear bereinigt einen Terminalbildschirm.

Frage 3:

D: export http_proxy exportiert die bereits gesetzte Variable in alle Subshells.

zu A: set http_proxy kann Variablen weder setzen, noch exportieren. Lassen Siesich durch den Namen des Kommandos nicht in die Irre führen!

zu B: env -u http_proxy würde die Umgebung für ein Programm um die Variablehttp_proxy reduzieren, wenn es sich um eine Umgebungsvariable handelnwürde.

zu C: let http_proxy ruft lediglich eine Fehlermeldung hervor.

zu E: unset http_proxy setzt die Variable wieder zurück.

503

Antworten und Erklärungen zu den Prüfungsfragen

Frage 4:

A: let c=$a+$b addiert die Werte der Variablen a und b und übergibt das Ergebnisder Addition an die Variable c.

zu B: c=$a+$b übergibt nicht das Ergebnis der Addition an die Variable c, sonderndie Addition als solche. Wenn a=5 und b=7 wären, dann würde c=5+7. Das ist abernicht die Aufgabe.

zu C: $c=$a+$b wird versuchen, den Inhalt der Variablen auszuführen. Es gibt alsolediglich eine Fehlermeldung.

zu D: let $c=$a+$b wird versuchen, dem Inhalt der Variablen c das Ergebnis derAddition von a und b zuzuweisen. Es gibt also auch hier eine Fehlermeldung.

zu E: let c=a$+b$ verursacht auf jeden Fall eine Fehlermeldung, weil die Shellhier die aufeinander folgenden Zeichen $+ als einen fehlerhaften Operator inter-pretieren wird. Die $-Zeichen müssen immer vor die Variable gesetzt werden.

Frage 5:

export a=102 weist der Variablen a den Wert 102 zu und exportiert diese für dieVerwendung in Subshells.

Frage 6:

E: builtin ps sorgt dafür, dass der eingebaute Originalbefehl verwendet wird.

zu A, B und C: set ps, let ps und do ps ergeben in diesem Zusammenhang über-haupt keinen Sinn und können deshalb sofort ausgeschlossen werden.

zu D: sudo ps führt das Kommando als sudo aus, aber eben immer noch den Aliasund nicht den Originalbefehl.

Frage 7:

D: function ist hier das Mittel der Wahl. Mit einer Shellfunktion können Siemehrere Kommandos zu einem Befehl zusammenfassen und auch Parameterübergeben.

zu A: alias hat einen ähnlichen Verwendungszweck, dient aber hauptsächlichdem Abkürzen von langen Kommandos (auch mit Optionen und Parametern).

zu B: env zeigt hauptsächlich die Umgebungsvariablen an.

zu C: set zeigt gesetzte Shellvariablen an.

zu E: unset setzt Variablen zurück.

535

Index

#!/bin/bash 294$? 93, 296$0 296$1 93, 296$2 93, 296$HISTSIZE 93$PS1 93* 144./ 96.bash_history 94.bash_login 291.bash_profile 91, 192, 291.bashrc 90, 291.forward 402.rpmrc 77.Xdefaults 328.xinitrc 328.Xresources 328.xserverrc 328/bin/bash 295/bin/login 48/boot 29, 159/boot/grub/ 62/boot/grub/grub.conf 42/boot/grub/stage2 62/boot/grub2 63/dev 30/dev/cdrom 30/dev/ft0 32/dev/hd 30/dev/hda 30/dev/hda1 31/dev/hda2 31/dev/hda3 31/dev/hda5 31/dev/hdb 30/dev/hdc 30/dev/hdd 30/dev/sd 30/dev/sda 30, 32/dev/sdb 30, 32/dev/st0 32/dev/zero 165/etc/.bashrc 290/etc/aliases 401, 402

/etc/anacron 374/etc/apt/apt.conf 69/etc/apt/sources.list 69/etc/bashrc 90, 291/etc/crontab 370/etc/cups 409/etc/cups/cupsd.conf 409/etc/default/grub 64/etc/default/useradd 362, 365/etc/event.d 53/etc/false 358/etc/fstab 88, 164, 174, 175, 176, 182/etc/group 360, 368, 432/etc/grub.d 64/etc/gshadow 361, 368/etc/host.conf 432/etc/HOSTNAME 430/etc/hostname 430/etc/hosts 431, 432/etc/hosts.allow 448, 453/etc/hosts.deny 448, 453/etc/hotplug 37/etc/inetd.conf 446, 447/etc/init 53/etc/init.d 49, 51, 95/etc/inittab 47, 49, 340/etc/inputrc 292/etc/known_hosts 454/etc/ld.so.cache 65/etc/ld.so.conf 65/etc/localtime 378, 391/etc/logrotate.conf 397/etc/mail 402, 403/etc/mail/access 404/etc/mail/relay-domains 404/etc/manpath.config 98/etc/modprobe.conf 42/etc/modules.conf 42/etc/mtab 179/etc/network/interfaces 434/etc/networks 431/etc/nologin 449, 453/etc/nsswitch.conf 432/etc/ntp.conf 393/etc/ntp.drift 393

536

Index

/etc/passwd 357, 359, 368, 432/etc/printcap 406, 409/etc/profile 90, 94, 192, 291/etc/rc.d 49, 51/etc/rc.d/xfs 334/etc/resolv.conf 431/etc/rpmrc 77/etc/services 414/etc/shadow 189, 359, 368/etc/skel 292, 362/etc/ssh/ssh_config 452/etc/ssh/ssh_host_dsa_key 454/etc/ssh/ssh_host_dsa_key.pub 454/etc/ssh/ssh_host_key 455/etc/ssh/ssh_host_key.pub 455/etc/ssh/ssh_host_rsa_key 455/etc/ssh/ssh_host_rsa_key.pub 455/etc/ssh_known_hosts 453/etc/sshrc 453/etc/sudoers 445/etc/syslog.conf 396/etc/timezone 378, 392/etc/updatedb.conf 206/etc/usbmgr/host 37/etc/usbmgr/preload.conf 36/etc/usbmgr/usbmgr.conf 36/etc/X11/fs/config 334/etc/xinetd.conf 448/etc/xinetd.d 448/etc/yum.conf 82/etc/yum.repos.d 82/home 59/lib/modules 23, 29/proc 33, 158/proc/bus/pci 34/proc/dma 32/proc/interrupts 32/proc/ioports 32/proc/kmsg 399/proc/modules 24, 25/proc/partitions 158/proc/pci 32/proc/scsi 33/proc/swaps 165/sbin/mingetty 48/tmp 59/usl/lib/locale 380/usr 59/usr/bin 296

/usr/lib/rpm 77/usr/lib/rpm/rpmrc 77/usr/lib/rpmrc 77/usr/lib/X11/app-defaults/XTerm 329/usr/sbin 296/usr/share/i18n/SUPPORTED 380/usr/share/zoneinfo 391/usr/src 29/usr/src/ 23/usr/src/linux 29/var 59/var/cache/man 98/var/lib/dpkg/available 68/var/lib/dpkg/info 67/var/lib/dpkg/status 68/var/lib/rpm 77/var/log 397/var/log/mail 405/var/log/messages 44, 397/var/mail 402/var/spool 406/var/spool/cron 372/var/spool/mail 402/var/spool/mqueue 402? 144~./ssh/known_hosts 453~/.bash_login 91, 291~/.bash_logout 292~/.bash_profile 291~/.bashrc 292~/.gnupg 461~/.inputrc 292~/.profile 291~/.ssh/authorized_keys 455~/.ssh/id_dsa 456~/.ssh/id_dsa.pub 456~/.ssh/id_rsa 455~/.ssh/id_rsa.pub 455~/.ssh/ssh_know_hosts 453~/.xinitrc 328

A

Absolute Pfadangaben 113ACL 198Aktive Partition 160Akzent Circumflex 146alias 288Aliase 287

537

Index

alien 75ALTER TABLE 306, 317anacron 374AND 323Änderungszeit 117Anwendungsschicht 413apache2 50append only 194apropos 99, 100, 204apt-cache 74apt-get 69, 71aptitude 73aquota.group 182aquota.user 182Argumente 88ARP 416ARPA 412ARPANET 412Assistive Techniken 341at 373at.allow 374at.deny 375atd 373aterm 329authorized_keys 456auto 179awk 143

B

Backslash 143Barrierefreies Anmelden 342Barrierefreiheit 342Bash 88bash 284bash.bashrc.local 291Baudot, Jean-Maurice-Émile 381Baudot-Code 381Befehls-History 94Bevorzugte Anwendungen 342, 346bg 137Bildschirmlupe 347Bildschirmtastatur 352BIOS 39, 160BIOS-Uhr 391Bootloader 41Boot-Strap-Loader 41, 42, 61Brailledisplay 342, 348Brailleschrift 342

Braillezeile 342BRLTTY 348Broadcastadresse 420builtin 290bunzip2 119, 121bzip2 119, 121

C

case 301cat 102, 128catman 98cd 113CD-ROM 30cfdisk 158chage 365, 440chattr 193chfn 358chgrp 192chmod 187, 188, 190, 294, 295chown 191CIDR 418, 419clear 301, 302Coldplug 37COMMIT 306cp 115cpio 121cpio-Paket 82CREATE DATABASE 309CREATE TABLE 306cron 370cron.allow 374cron.deny 374crond 370crontab 370, 372csh 88, 284CSV 150CTRL-ALT-DEL 49CUPS 407, 409cut 108, 128

D

Data Control Language 306Data Definition Language 306Data Manipulation Language 306Data Query Language 306date 390Dateiattribute 193

538

Index

Dateideskriptoren 125dbus 38DCL 306dd 122, 165DDL 306debugfs 169DEC 325defaults 179DELETE 323depmod 27, 28Desktop Environment 327Device 332df 130, 171dig 425DISPLAY 336Display Manager 327, 339DISTINCT 306dmesg 44DML 306do 297DoD 412DoD Modell 413Dollarzeichen 143Donald Murray 382done 297, 298Doppelkreuz 145dosfsck 167Dotted Quad 416dpkg 67, 69, 75dpkg-reconfigure 71DQL 306DROP 323DROP DATABASE 324DROP TABLE 306, 324Druckfilter 406DSA-Schlüssel 454dselect 69, 71du 172, 173dump 58, 178dumpe2fs 170, 184DVD-Laufwerk 30Dynamic Link Library 65dynamically linked 65

E

e2fsck 167echo 90, 293, 300Echtzeituhr 391

ed 152edquota 184, 185egrep 144, 148EHCI 35Einfügemodus 153elif 301else 301elvis 152emacspeak 353Endzylinder 159env 91, 287esac 301eterm 329Ethernet 413exec 179exim 400, 405expand 104export 92, 286ext2 160, 162, 168ext3 160, 162, 168Eyetracker 344

F

FAT-32 161FDDI 413fdisk 158, 164Festplatte 30fg 137fgrep 148FHS 200fi 301file 124Filesystem Hierarchy Standard 200find 117, 204, 300finger 358Fingerprint 453Firewire 37fmt 104Fontpath 330for 300FQDN 431free 138, 165fsck 167, 168, 177, 178fsck.cramfs 167fsck.ext2 167fsck.ext3 167fsck.jfs 167fsck.minix 167

539

Index

fsck.msdos 167fsck.reiserfs 167fsck.vfat 167fsck.xfs 167fslsfonts 334ftp 428ftp.kernel.org 429function 289Funktionen 289

G

gawk 143gdm 339, 340gdm.conf 340gdmconfig 340GECOS 358Gesten 345GNOME 327, 339Gnopernicus 353GNU 88GNU Privacy Guard 457GnuPG 457GOK 352gpasswd 367GPG 457gpg.conf 461Gpg4win 458Gracetime 181GRANT 306grep 44, 126, 143, 144, 145, 146GROUP 315group 357groupadd 365groupdel 366groupmod 366grpck 369grpconv 368grpquota 179grpunconv 368GRUB 42, 62GRUB 2 63GRUB Stages 62grub.cfg 64grub.conf 63grub-mkconfig 64gshadow 357GTK 329gunzip 119, 121gzip 119

H

hald 38halt 52Hardlimit 181, 184, 441Hardlinks 198Hardware Abstracion Layer 38Hashes 145head 103Headtracker 344hexdump 106hid.o 35Hilfstechnologien 342HISTSIZE 94host 425Host zu Host 413Hostkey 453, 454hosts.allow 453hosts.deny 453Hotkeys 292Hotplug 37hotplug 37HPFS 161http

//lpievent.lpice.eu/ 18//tools.ietf.org/html/rfc791 416//www.denic.de/de/whois/index.jsp 428//www.ntp.org 392

hwclock 391

I

IBM 325ICMP 416iconv 386id_rsa 455id_rsa.pub 456if 301ifconfig 433ifdown 434ifup 434IGMP 413IMAP 401immutable 194inetd 446inetd.conf 447init 46, 47, 49, 52, 129initdefault 47inittab 47

540

Index

Inodes 172Inputdevice 331INSERT 306insmod 25, 26Internetschicht 413IP-Klassen 417IPv4 415, 416IPv6 415, 421IRIX 161ISO 8859 385ISO-8859-1 385

J

jobs 136, 137JOIN 320join 108Joker 118, 144journal 169

K

KDE 327, 339kdm 339, 340kdmrc 340Kernel 22Kernel-Parameter 42Kernel-Ring-Buffer 44KGpg 458kill 134killall 135Klebrige Tasten 342klogd 399klogin 447Kommandomodus 153ksh 88, 284

L

LANG 380LANG=C 380LC_ALL 380ldconfig 65ldd 65LEFT JOIN 320less 127let 293, 294, 297LIMIT 315Link-Layer 413

ln 196, 198, 199locale 380locate 205logger 398Logical Volume Manager 59Logische Volumen 60logrotate 369logrotate.conf 397lp 407lpadmin 410lpc 408, 410lpd 406lpq 407, 410lpr 406, 407, 410lprm 407, 410ls 112lsattr 193lsdel 169lsmod 24, 27, 35lsof 442lspci 33lsusb 35LVM 59, 161

M

mail 300Mail Transfer Agent 400Mail User Agent 400Mail-Aliase 401mailq 403Major Release 23man 99Manpages 97MANPATH 97manpath 98manpath.config 97Master Boot Record 31, 40master.cf 404Maussteuerung 342Maustasten 344MBR 41MDA 400menu.lst 63Metacity 327Metazeichen 143, 147MEZ 391mingetty 48Minor Release 23

541

Index

MIT 325mkdir 116mkdosfs 161mke2fs 162, 163, 170mkfs 161, 162mkfs.cramfs 162mkfs.ext2 161mkfs.ext3 161mkfs.jfs 162mkfs.msdos 161mkfs.ntfs 161mkfs.reiserfs 161mkfs.vfat 161mkfs.xfs 161mkswap 164, 165modinfo 24modprobe 26modprobe.conf 28modprobe.conf.local 28modules.conf 28modules.dep 27, 28Monolithische Kernel 22Morse-Code 381mount 88, 174, 176, 177Mounten 174Mountpoint 175MTA 400MUA 400Murray-Code 382mv 116

N

nano 148netstat 415, 436, 440Netzwerk-Zugriff 413Neustart 52newaliases 402newgrp 367NFS 176nfs 176nfsd 130nice 140, 141nl 104nmap 415, 440noauto 179noexec 179nohup 138nohup.out 138

nosuid 179nouser 179nslookup 425NTFS 161NTP 392ntp.conf 393ntpd 392, 393ntpdc 393ntpq 393

O

od 106OHCI 34Oktett 416Optionen 88Orca 347ORDER BY 306, 315OSPF 416

P

Partition 158, 159Partitionierung 57Partitionstabelle 31, 41, 160passwd 189, 357, 364, 440paste 155Patchlevel 23PATH 90, 287, 296PATH Variable 95PCI Bus 33PCMCIA 37Pearson Vue 17Perl 143PGP 457Physikalische Volumen 60pico 148PID 129, 134, 141PID 1 46ping 423Pipe 125Pipes 127pkg 75postfix 400poweroff 52Power-On-Self-Test 39pr 105Primärschlüssel 310Primary IDE 30

542

Index

Prozesspriorität 140ps 46, 129, 131, 134, 141pstree 46, 131pubring.gpg 461putty 452pwck 368pwconv 368pwd 96, 113pwunconv 368Python 143

Q

qmail 400, 405QT Librarys 329Quellen 29Queue 406Quota 181quota 185quota.group 182quota.user 182quotacheck 182, 183quotaoff 183quotaon 183

R

RAID 59RAW 406read 301Real-Time-Clock 390reboot 52redirect 125regex 143, 144regexp 143, 155regular expression 143Regulärer Ausdruck 149Rekursive Befehlsausführung 96Relative Pfadangaben 114renice 140, 142repquota 185Resolver 433respawn 48REVOKE 306RgbPath 330RIGHT JOIN 321RIP 415rm 117rmdir 117

rmmod 25, 26ro 179ROOLBACK 306Root-Passwort vergessen 43route 434Routing-Tabelle 435RPM 76rpm 75, 78rpm2cpio 78, 82rpmarchive 78rpmbuild 78RPM-Datenbank 79rpmdb 78rpme 78rpmgraph 78rpmheader 78rpmi 78rpmlead 78rpmlocate 78rpmqpack 78rpmquery 78rpmrc 77rpmsign 78rpmsignature 78rpmu 78rpmverify 78RSA-Key 454rsh 88RTC 390, 391Rückgabewerte 296Runlevel 46runlevel 52Runlevel-Wechsel 52rw 179rxvt 329

S

Samuel Morse 381SASL 405Sawfish 327Screen 333Screenreader 341, 347, 353SCSI 158SCSI Laufwerke 30Seahorse 458Secondary IDE 30secring.gpg 461secure deletion 194

543

Index

sed 143, 144, 148, 149SELECT 306, 311semikolonsepariert 150sendmail 400sendmail.cf 403Serverflags 331set 91, 286Setgid 189Setuid 189SGID 189, 299sh 284shadow 357shareable 201Shared Object 65she-bang! 294Shell 88, 284Shell-Variablen 90, 285shift 297shutdown 49, 52, 168SIGCONT 134, 137SIGHUP 133SIGINT 133SIGKILL 133Signale 133SIGSTOP 134SIGTERM 133, 134SIGTSTP 134Skeleton 292slp 75Smarthost 404smbfs 177SMTP-Relay 404socket 440Softlimit 181, 184, 441Softlinks 51, 195sort 106, 128source 294split 107Spooler 406SRI 412SSH 450ssh_config 452ssh_known_hosts 453ssh-add 457ssh-agent 457sshd_config 452ssh-keygen 454sshrc 453stable 23

Standardgateway 421, 435Startprotokollierung 43Startskripte 51startx 328Startzylinder 159stat 197, 199static 201statically linked 65stderr 125stdin 125stdout 125, 127Sticky Bit 190Sticky-Bit 299stream 447Stream Editor 148Stream-Editor 143su 444Subnetzmaske 418Subselects 319Subshell 92, 286Substitution 151Suchmuster 145, 147sudo 444SUID 189, 190, 295suid 179SUID-Bit 299, 440Superblocks 169Superdaemon 446swap 161Swap-Datei 165swapoff 164swapon 164Swap-Partition 164Synopsis 99sysfs 37syslog 395syslogd 395syslog-ng 395systemctl 55Systemd 54Systemzeit 390, 391

T

tac 102tail 103, 398tar 89Tastatursteuerung 342TCP 413, 414

544

Index

TCP/IP 412, 413tcpd 448tcpdchk 447TCP-Wrapper 448tcsh 88tee 128telinit 49, 52telnet 429test 297Textanker 143, 145tgz 75Thomson Prometric 17Tilde 113Timestamp 117Token Ring 413top 132, 140, 141, 142topq 408touch 117tr 110, 127traceroute 423tracetpath 425Transportlayer 413trustedb.gpg 461tsclient 452TTL 424tune2fs 163, 164, 168, 169tzselect 376, 378, 392

U

Übergabevariablen 296UCLA 412UCSB 412udev 38UDP 413, 414UHCI 34ulimit 441umask 188, 192, 193Umgebungsvariablen 90, 285umount 37, 168, 174, 177, 442uname 23, 26, 97undeletable 194unexpand 104Unicode 386uniq 107, 128unmounten 174unset 93, 287, 300unshareable 201UPDATE 306, 314

updatedb 136, 206update-grub2 64Upstart 53uptime 138USB 34USB 1.1 34USB 2.0 34usb-ehci 37usb-ehci.o 35USB-Klassen 35USB-Maus 35USB-Memory-Sticks 35usbmgr 36, 37usbmgr.conf 36usb-ohci 37usb-ohci.o 34usb-storage.o 35usb-uhci 37usb-uhci.o 34user 179useradd 362userdel 363usermod 363users 179usrquota 179UTC 391UTF-8 386

V

variable 201vi 148, 152, 153vile 152vim 152visudo 445vmlinuz 29Volumen-Gruppen 60

W

w 138Warteschlange 406wc 105, 173whatis 99, 204WHERE 311, 312whereis 100, 202which 96, 100, 203while 297whois 427

545

Index

Wildcards 118, 143, 144, 147Window Manager 327

X

X.org 326X11R6 326X11-Tunnel 451xargs 128X-Clients 326X-Consortium 326xdm 339, 340xdm-config 340xdpyinfo 337XF86Config 329X-Fontserver 333XFree86 326xfs 333xhost 335xinetd 447xinetd.conf 448xinit 328xinitrc 328X-Librarys 329

xntpd 393xorg.conf 329X-Server 326xserverrc 328Xsetup 340xterm 329xvidtune 332X-Windows 325, 328xwininfo 336

Y

yank 155yum 77, 82yumdownloader 85

Z

Zeitsynchronisation 392Zeitzone 376zsh 88, 284Zugriffsrechte 186Zugriffszeit 117

Harald Maaßen

LPIC-2Sicher zur erfolgreichen Linux-Zertifizierung

Auf einen Blick

Auf einen Blick

LPI 201

201 Der Linux-Kernel ................................................................................................... 19

202 Systemstart ............................................................................................................ 47

203 Dateisystem und Devices .................................................................................. 63

204 Erweiterte Administration von Storage Devices ........................................ 103

205 Netzwerkkonfiguration ...................................................................................... 133

206 Systemverwaltung und Wartung ................................................................... 179

207 Domain Name Service (DNS) ............................................................................ 201

Übungsfragen zu LPI 117-201 ..................................................................................... 231

LPI 202

208 Web-Dienste .......................................................................................................... 299

209 Freigabe von Dateien .......................................................................................... 329

210 Verwaltung von Netzwerk-Clients ................................................................. 349

211 E-Mail-Dienste ....................................................................................................... 375

212 Systemsicherheit .................................................................................................. 399

213 Systemprobleme lösen ....................................................................................... 437

Übungsfragen zu LPI 117-202 ..................................................................................... 477

5

Inhalt

Vorwort ................................................................................................................................................... 13

LPI 201

201 Der Linux-Kernel 19

201.1 Kernel-Komponenten .......................................................................................... 19

Allgemeines ............................................................................................................ 19Zu den Kernel-Quellen gehörende Dateien und Verzeichnisse ........................ 21

201.2 Kernel kompilieren ............................................................................................... 22

Allgemeines ............................................................................................................ 22Identifizieren von Kernel-Versionen .................................................................... 23Den Kernel konfigurieren ...................................................................................... 24

201.3 Kernel patchen ...................................................................................................... 29

Allgemeines ............................................................................................................ 30Arbeiten mit patch, gunzip und bzip2 ................................................................. 30Einen Patch wieder entfernen .............................................................................. 31

201.4 Anpassen, Kompilieren und Installieren eines Kernels

inklusive Kernel-Module ..................................................................................... 31

Allgemeines ............................................................................................................ 32Eine Konfiguration mit Debian ............................................................................. 33Eine Konfiguration mit Fedora .............................................................................. 35

201.5 Kernel und Kernel-Module zur Laufzeit verwalten und abfragen ............ 37

Allgemeines ............................................................................................................ 38Zum Kernel gehörende Dateien und Verzeichnisse ........................................... 39Module zur Laufzeit beeinflussen und konfigurieren ........................................ 40Modulkonfigurationsdateien ................................................................................ 44Das Verzeichnis /proc/sys/kernel ......................................................................... 45

202 Systemstart 47

202.1 Anpassen des Systemstarts und der Bootprozesse ....................................... 47

Allgemeines ............................................................................................................ 47Die Runlevel und ihre Funktion ............................................................................ 48

Inhalt

6

Die Konfigurationsdatei inittab ............................................................................ 49Verzeichnisse und Dateien des init-Prozesses .................................................... 50chkconfig und update-rc.d .................................................................................... 53Runlevel-Wechsel, Herunterfahren, Neustart .................................................... 54Linux Standard Base (LSB) ..................................................................................... 56

202.2 Systemwiederherstellung .................................................................................. 56

Allgemeines ............................................................................................................ 57GRUB-Konfiguration .............................................................................................. 57Die GRUB Shell ........................................................................................................ 59Dateisysteme prüfen und reparieren ................................................................... 59

203 Dateisystem und Devices 63

203.1 Arbeiten mit dem Linux-Dateisystem .............................................................. 63

Allgemeines ............................................................................................................ 63Manuelles Mounten und Unmounten ................................................................. 64Automatisches Mounten über die Datei /etc/fstab ........................................... 67

203.2 Pflege des Linux-Dateisystems .......................................................................... 72

Allgemeines ............................................................................................................ 73Sicherstellen der Integrität des Dateisystems und Problembehebung ........... 73Erzeugen der Dateisysteme .................................................................................. 78Formatieren der Dateisysteme ............................................................................. 81Erstellen einer Swap-Datei .................................................................................... 85

203.3 Anlegen und Konfigurieren von Dateisystemen ........................................... 88

Allgemeines ............................................................................................................ 89Automatisches Mounten ....................................................................................... 89ISO-Dateien und CDs erstellen ............................................................................. 91Verschlüsselte Dateisysteme ............................................................................... 96

203.4 Verwaltung von Devices mit udev .................................................................... 100

Allgemeines ............................................................................................................ 100udev konfigurieren ................................................................................................. 100udev überwachen ................................................................................................... 102

204 Erweiterte Administration von Storage Devices 103

204.1 RAID-Konfiguration ............................................................................................. 103

Allgemeines ............................................................................................................ 103RAID-Level ............................................................................................................... 104

Inhalt

7

Ein Software-RAID erstellen .................................................................................. 105RAID-Arrays verwenden, konfigurieren und überprüfen ................................... 107Ein RAID-Array erweitern ....................................................................................... 109

204.2 Konfiguration von Storage Devices .................................................................. 111

Allgemeines ............................................................................................................ 112hdparm .................................................................................................................... 112sdparm ..................................................................................................................... 115tune2fs ..................................................................................................................... 115Die Gerätedateien für Festplatten und CD-ROMs .............................................. 117Die Gerätedateien für Partitionen ........................................................................ 117sysctl ........................................................................................................................ 119

204.3 Logical Volume Manager .................................................................................... 119

Allgemeines ............................................................................................................ 120LVM-Komponenten und Zusammenhänge ........................................................ 121LVM-Konfiguration ................................................................................................ 121LVM-Snapshots ....................................................................................................... 129Device Mapper ........................................................................................................ 131

205 Netzwerkkonfiguration 133

205.1 Grundlagen der Netzwerkkonfiguration ........................................................ 133

Allgemeines ............................................................................................................ 133Werkzeuge zur Netzwerkkonfiguration .............................................................. 134

205.2 Fortgeschrittene Netzwerkkonfiguration und Fehlersuche ........................ 141

Allgemeines ............................................................................................................ 142Werkzeuge und Konfigurationsdateien .............................................................. 142

205.3 Kernpunkte der Fehlerbehebung in Netzwerken .......................................... 164

Allgemeines ............................................................................................................ 165Werkzeuge und Konfigurationsdateien .............................................................. 165

205.4 Benutzer benachrichtigen .................................................................................. 175

Allgemeines ............................................................................................................ 176Konfigurationsdateien und Werkzeuge .............................................................. 176

206 Systemverwaltung und Wartung 179

206.1 Programme aus dem Quellcode übersetzen und installieren ..................... 179

Allgemeines ............................................................................................................ 180Aufbau von Tar-Balls .............................................................................................. 180

Inhalt

8

Einen Tar-Ball installieren ..................................................................................... 181Archivierung im Allgemeinen ............................................................................... 182

206.2 Datensicherung ..................................................................................................... 185

Allgemeines ............................................................................................................ 186Was muss gesichert werden? ............................................................................... 186Backupstrategien ................................................................................................... 187Sicherungsarten ..................................................................................................... 188Hardware und Verbrauchsmaterial ..................................................................... 189Zur Sicherung benötigte Gerätedateien .............................................................. 189Geeignete Programme zur Erstellung von Datensicherungen ......................... 190

207 Domain Name Service (DNS) 201

207.1 Grundlagen der DNS-Serverkonfiguration ..................................................... 201

Allgemeines ............................................................................................................ 201Cache-Only-DNS-Server ......................................................................................... 203Dateien, Verzeichnisse und Kommandos ............................................................ 206

207.2 Erstellen und Pflegen von DNS-Zonen ............................................................. 210

Allgemeines ............................................................................................................ 211Inhalt von Zonendateien und Eintragstypen ...................................................... 211Erstellen von primären Zonen ............................................................................... 214Erstellen von sekundären Zonen .......................................................................... 215Bedingte Weiterleitung ......................................................................................... 217Delegieren von Zonen ............................................................................................ 217DNS-Diagnoseprogramme .................................................................................... 219

207.3 Absicherung eines DNS-Servers ........................................................................ 219

Allgemeines ............................................................................................................ 220Einschränkungen in named.conf .......................................................................... 220named einschränken ............................................................................................. 223DNSSEC .................................................................................................................... 225TSIG .......................................................................................................................... 226Aufteilung der BIND-Konfiguration ..................................................................... 227

Übungsfragen zu LPI 117-201 231

Fragen ...................................................................................................................... 231Antworten und Erklärungen zu den Prüfungsfragen ......................................... 267

Inhalt

9

LPI 202

208 Web-Dienste 299

208.1 Implementierung eines Webservers ................................................................ 299

Allgemeines ............................................................................................................ 300Installation von Apache ......................................................................................... 300Konfigurationsdateien ........................................................................................... 302Wichtige Einträge in der Datei httpd.conf .......................................................... 303Starten und stoppen .............................................................................................. 304Zugriffssteuerung .................................................................................................. 305Module integrieren ................................................................................................ 308Protokollierungseinstellungen ............................................................................. 311Leistungseinstellungen ......................................................................................... 312

208.2 Pflege eines Webservers ..................................................................................... 312

Allgemeines ............................................................................................................ 313Konfiguration von SSL ............................................................................................ 313Konfiguration virtueller Hosts .............................................................................. 316Die Redirect-Direktive ............................................................................................ 317

208.3 Implementierung eines Proxy-Servers ............................................................ 318

Allgemeines ............................................................................................................ 318Installation des Squid Proxy-Servers .................................................................... 319Konfiguration .......................................................................................................... 321Zugriffssteuerung mithilfe von ACLs ................................................................... 323Benutzer-Authentifizierung .................................................................................. 324

209 Freigabe von Dateien 329

209.1 Konfiguration eines Samba-Servers ................................................................. 329

Allgemeines ............................................................................................................ 330smbd und nmbd ..................................................................................................... 330Samba-Konfigurationsdateien ............................................................................. 331Werkzeuge und Dienstprogramme für Samba ................................................... 333SWAT ....................................................................................................................... 338Samba-3-Dokumentation ...................................................................................... 338Samba-Freigaben unter Linux einbinden ............................................................ 339

209.2 Konfiguration eines NFS-Servers ...................................................................... 340

Allgemeines ............................................................................................................ 340

Inhalt

10

Serverseitige Konfiguration .................................................................................. 341NFS-Clientkonfiguration ........................................................................................ 343Tools für NFS ........................................................................................................... 344Zugriffsbeschränkungen ....................................................................................... 348

210 Verwaltung von Netzwerk-Clients 349

210.1 DHCP-Konfiguration ............................................................................................ 349

Allgemeines ............................................................................................................ 349DHCP-Clients .......................................................................................................... 350DHCP-Server ............................................................................................................ 351DHCP-Relay-Agent ................................................................................................. 355

210.2 LDAP-Client-Konfiguration ................................................................................. 356

Allgemeines ............................................................................................................ 356Installation des OpenLDAP-Servers ...................................................................... 358Installation und Verwendung des LDAP-Clients ................................................. 359

210.3 PAM-Authentifizierung ....................................................................................... 367

Allgemeines ............................................................................................................ 367PAM-Konfiguration ................................................................................................ 368PAM-Module ........................................................................................................... 371PAM-Authentifizierung mit LDAP ......................................................................... 373

211 E-Mail-Dienste 375

211.1 E-Mail-Server ......................................................................................................... 375

Allgemeines ............................................................................................................ 375Sendmail .................................................................................................................. 376Postfix ...................................................................................................................... 379Exim ......................................................................................................................... 381Gemeinsamkeiten der MTAs ................................................................................. 385

211.2 Konfiguration der lokalen Mailzustellung ...................................................... 389

Allgemeines ............................................................................................................ 389Konfiguration von Procmail .................................................................................. 390Mbox- und Maildir-Formate ................................................................................. 392

211.3 Mails an entfernte Clients ausliefern ............................................................... 393

Allgemeines ............................................................................................................ 393Dovecot Mailserver ................................................................................................ 394Courier Mailserver .................................................................................................. 396

Inhalt

11

212 Systemsicherheit 399

212.1 Routerkonfiguration ............................................................................................ 399

Allgemeines ............................................................................................................ 399/proc/sys/net/ipv4 ................................................................................................. 400/etc/services ........................................................................................................... 401iptables .................................................................................................................... 402

212.2 Absichern von FTP-Servern ................................................................................. 408

Allgemeines ............................................................................................................ 409vsftpd ....................................................................................................................... 410Pure-FTPd ................................................................................................................ 412ProFTPD ................................................................................................................... 415

212.3 Secure Shell (SSH) ................................................................................................. 416

Allgemeines ............................................................................................................ 416SSH verwenden ....................................................................................................... 417SSH-Client-Verbindung ......................................................................................... 417SSH-Konfigurationsdateien .................................................................................. 419Authentifizierung der Server mit Schlüsseln ...................................................... 420Generieren von Schlüsseln .................................................................................... 421Benutzer-Authentifizierung mit Schlüsseln ........................................................ 422Der Authentifizierungs-Agent .............................................................................. 424

212.4 TCP-Wrapper ......................................................................................................... 425

Allgemeines ............................................................................................................ 425tcpd .......................................................................................................................... 425inetd ......................................................................................................................... 426

212.5 Sicherheitsmaßnahmen ...................................................................................... 428

Allgemeines ............................................................................................................ 428Sicherheitsinstitutionen ........................................................................................ 428Manuelle Untersuchung ........................................................................................ 429Automatische Sicherheitssysteme ....................................................................... 431

213 Systemprobleme lösen 437

213.1 Identifizieren des Boot-Stadiums und Problembehebung

bei Bootloadern .................................................................................................... 437

Allgemeines ............................................................................................................ 438Master Boot Record (MBR) .................................................................................... 438GRUB (Legacy) ......................................................................................................... 440GRUB 2 ..................................................................................................................... 442

Inhalt

12

LILO ........................................................................................................................... 442Probleme beim Laden des Kernels ........................................................................ 445Initialisierung der Daemons .................................................................................. 446

213.2 Allgemeine Fehlerbehandlung .......................................................................... 446

Allgemeines ............................................................................................................ 447Analyse der Protokolldateien ............................................................................... 447Tools zur Analyse .................................................................................................... 448Analyse am laufenden Kernel .............................................................................. 455Analyse am /proc-Dateisystem ............................................................................ 455

213.3 Problemanalyse von System-Ressourcen ........................................................ 456

Allgemeines ............................................................................................................ 457Kernel und Daemons ............................................................................................. 457Bibliotheken ............................................................................................................ 459Shell-Konfiguration ................................................................................................ 461Hard- und Softlinks ............................................................................................... 463

213.4 Fehleranalyse von Umgebungs-Einstellungen .............................................. 465

Allgemeines ............................................................................................................ 466Ende des Systemstarts und Anmeldung .............................................................. 466Bash personalisieren ............................................................................................. 468Benutzer und Gruppen ......................................................................................... 469Syslog anpassen ..................................................................................................... 472Cron ......................................................................................................................... 474Zugriffssteuerung auf cron ................................................................................... 476

Übungsfragen zu LPI 117-202 477

Fragen ...................................................................................................................... 477Antworten und Erklärungen zu den Prüfungsfragen ......................................... 512

Index ..................................................................................................................................... 543

299

208 Web-Dienste

Der Apache Webserver ist eines der erfolgreichsten Open-Source-Pro-

jekte überhaupt. Aufgrund seiner Sicherheit, Stabilität und Leistungs-

fähigkeit wurde sein Erfolg bis heute durch keinen anderen Webserver

in Frage gestellt.

208.1 Implementierung eines Webservers

Wichtung: 3

Beschreibung: Die Prüflinge sollten in der Lage sein, einen Webserver zu installieren

und einzurichten. Dieses Lernziel beinhaltet die Überwachung der Serverauslastung

und -leistung, die Beschränkung von Benutzerzugriffen, Einrichtung der Unterstüt-

zung von Skriptsprachen-Modulen und clientseitige Benutzer-Authentifizierung.

Des Weiteren ist auch die Konfiguration der Serveroptionen, die zur Einschränkung

der Ressourcennutzung dienen, mit eingeschlossen.

Wichtigste Wissensgebiete:

� Apache 2.x-Konfigurationsdateien, -Begriffe und Dienstprogramme

� Konfiguration der Apache-Protokolldateien und deren Inhalte

� Methoden und Dateien zur Zugriffsbeschränkung

� Konfiguration von mod_perl und PHP

� Client-Benutzerauthentifizierungdateien und -Dienstprogramme

� Einstellung der maximalen Anzahl an Anfragen, der minimalen und maximalen

Anzahl an Serverprozessen und Clients

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� Zugriffs-Logdateien (access logs) und Fehler-Logdateien (error logs)

� .htaccess

� httpd.conf

� mod_auth

� htpasswd

� htgroup

� apache2ctl

� httpd

208 Web-Dienste

300

Allgemeines

Apache ist nach wie vor der erfolgreichste Webserver im Internet. Statistiken (Quelle:

news.netcraft.com) zufolge (Stand April 2012) hat er einen Marktanteil von 65,24%

gefolgt von Microsofts Internet Information Server mit lediglich 13,81%. Andere Web-

server spielen im Internet eher eine untergeordnete Rolle. Die Ursprünge des Apache

Webservers liegen in einem inzwischen ausgestorbenen Webserver, dem NCSA-Web-

server »httpd«. Dieser wurde von der Organisation NCSA im Jahre 1995 eingestellt

und nicht weiter entwickelt. Die NCSA ist übrigens dieselbe Organisation, die im

Jahre 1993 den damals sensationellen Webbrowser Mosaic entwickelte. Das war der

erste Browser, der auch von normalen Menschen bedient werden konnte, die nicht

als absolute Computerfreaks bekannt waren.

Nachdem die NCSA ihren Webserver in der Version httpd 1.3 eingestellt hatte, fingen

diverse Entwickler, die sich später zur Apache Software Foundation zusammen

schlossen an, Sicherheitslücken in diesem Webserver zu beheben und neue Funk-

tionen hinzuzufügen. Es wurden immer mehr Patches zusammengetragen und den

Aussagen von Zeitzeugen nach wurde daraus zunächst die Bezeichnung »A patchy

Server«. Es gibt aber auch die Aussage, der Name wäre eine Hommage an den gleich-

namigen nordamerikanischen Indianerstamm. Möglicherweise ist an beiden Ge-

schichten etwas dran.

Installation von Apache

Es gibt verschiedene Möglichkeiten, wie man zu einem Apache Webserver kommen

kann. In Abhängigkeit von der verwendeten Linux-Distribution können Sie natürlich

yum oder aptitude verwenden, um den Webserver zu installieren. Damit Sie den Web-

server in seiner reinsten Form kennenlernen, ist es im Rahmen der Prüfungsvorbe-

reitung allerdings sinnvoller, Apache aus einem tar-Ball heraus zu installieren. Sie

finden die entsprechenden Downloadlinks zu etlichen HTTP- und FTP-Mirrorservern

auf http://www.apache.org.

Die folgende Beispielinstallation wurde auf einem Server unter CentOS ausgeführt.

Führen Sie einfach die folgenden Kommandos aus, um einen funktionierenden Web-

server zu installieren:

[root@arch-cent ~]# mkdir /usr/src/apache-2.2[root@arch-cent ~]# cd /usr/src/apache-2.2/

Aus dem vorbereiteten Installationsverzeichnis heraus kann man mittels wget den

tar-Ball gleich an Ort und Stelle herunterladen. Sie können natürlich auch eine

andere Quelle und eine andere Version von Apache verwenden, wenn Sie das möch-

ten.

208.1 Implementierung eines Webservers

301

[root@arch-cent apache-2.2]# wgethttp://apache.linux-mirror.org//httpd/httpd-2.2.19.tar.gz

Packen Sie den tar-Ball aus:

[root@arch-cent apache-2.2]# tar xvzf httpd-2.2.19.tar.gz

Wechseln Sie in das Verzeichnis, das gerade durch die Extraktion des tar-Balls ent-

standen ist:

[root@arch-cent apache-2.2]# cd httpd-2.2.19

Damit Sie den Webserver konfigurieren und kompilieren können, benötigen Sie spä-

testens jetzt einen Compiler. Ich persönlich bevorzuge den GNU C und C++ Compiler:

[root@arch-cent httpd-2.2.19]# yum install gcc

Bei der Konfiguration sollten Sie zumindest das Installationsverzeichnis mit

--prefix übergeben. Das Verzeichnis /usr/local/apache2 ist ein typisches Ziel für den

Webserver. Die anderen Optionen wählen die Funktionalitäten http, https, cgi und

das automatische Einbinden von Modulen.

[root@arch-cent httpd-2.2.19]# ./configure --prefix=/usr/local/apache2--enable-http --enable-https --enable-so --enable-cgi

Es gibt sehr viele Optionen, die Sie für die Konfiguration übergeben können. Sie er-

halten eine komplette Liste der Optionen, indem Sie im Installationsverzeichnis das

Kommando ./configure --help ausführen oder die Webseite http://httpd.apache.org/

docs/2.2/install.html besuchen.

Wenn die Konfiguration abgeschlossen ist, können Sie den httpd mit make kom-

pilieren:

[root@arch-cent httpd-2.2.19]# make

Wie bei der Installation vieler anderer tar-Balls folgt jetzt die eigentliche Installation

des Webservers:

[root@arch-cent httpd-2.2.19]# make install

Wenn alles gut gegangen ist, können Sie den Apache-Server jetzt zum ersten Mal

starten:

[root@arch-cent /]# /usr/local/apache2/bin/apachectl start

httpd: Could not reliably determine the server's fully qualified domain name,using 127.0.0.1 for ServerName

208 Web-Dienste

302

Es ist wahrscheinlich, dass Sie beim Start des Servers obige Fehlermeldung erhalten.

Der Webserver läuft dann trotzdem, aber Sie sollten diesen Schönheitsfehler behe-

ben, indem Sie der Datei

/usr/local/apache2/conf/httpd.conf (das ist übrigens die Hauptkonfigurationsdatei

des Webservers) eine Zeile wie diese hinzufügen:

ServerName arch-cent.homelinux.net:80

Prüfen Sie nach, ob der Webserver läuft, indem Sie nach Instanzen des Daemons

httpd suchen. Das ist der Daemon des Apache-Webservers:

[root@arch-cent /]# ps -A|grep httpd9487 ? 00:00:00 httpd9488 ? 00:00:00 httpd9489 ? 00:00:00 httpd9490 ? 00:00:00 httpd

Den eigentlichen Test führen Sie dann mit einem Webbrowser aus. Wenn Sie lokal an

derselben Maschine arbeiten, die den Webserver ausführt, rufen Sie einfach die URL

http://localhost auf. Alternativ können Sie natürlich auch von einem anderen PC aus

über das Netzwerk zugreifen. Der Kontent, der angezeigt wird, befindet sich im Docu-

mentRoot-Verzeichnis /usr/local/apache2/htdocs, wenn Sie Apache von Hand instal-

liert haben und Sie können hier Ihre eigenen Inhalte unterbringen.

Konfigurationsdateien

Die Konfigurationsdateien für Apache befinden sich üblicherweise in den Verzeich-

nissen /usr/local/apache2/conf (wenn Sie den Server selbst kompiliert haben, befin-

den Sie sich genau da), /etc/apache, /etc/apache2 oder /etc/httpd/conf. In Abhängig-

keit von der verwendeten Linux-Distribution können Sie sich aber auch noch in

anderen Verzeichnissen befinden (Hier hilft z. B. find /etc -name httpd.conf). Leider

variiert auch der Inhalt des jeweiligen Konfigurationsverzeichnisses. Das liegt daran,

dass in den meisten Linux-Distributionen Teile der Hauptkonfigurationsdatei

httpd.conf in kleinere Dateien ausgelagert wurden, um die Übersichtlichkeit zu erhö-

hen. In der LPI-Prüfung wird häufig nach folgenden Dateien gefragt:

� httpd.conf ist die Hauptkonfigurationsdatei. In dieser Datei stehen alle Parameter,

die für den Betrieb des Webservers notwendig sind.

� srm.conf enthielt früher die ResourceConfig Anweisungen. Da diese Anweisungen

inzwischen mit in die httpd.conf integriert wurden, ist die srm.conf heutzutage

leer oder gar nicht mehr vorhanden.

� access.conf enthielt früher die Anweisungen zur Zugriffssteuerung. Auch diese

Anweisungen wurden inzwischen mit in die Datei httpd.conf aufgenommen.

208.1 Implementierung eines Webservers

303

Wenn Sie Apache selbst konfiguriert und kompiliert haben, dann enthält sein Konfi-

gurationsverzeichnis /usr/local/apache2/conf ein Unterverzeichnis namens extra. In

diesem Unterverzeichnis finden Sie weitere Konfigurationsdateien, die mittels

include-Anweisungen in die Datei httpd.conf integriert wurden:

httpd-autoindex.confhttpd-languages.confhttpd-ssl.confhttpd-dav.confhttpd-manual.confhttpd-userdir.confhttpd-default.confhttpd-mpm.confhttpd-vhosts.confhttpd-info.confhttpd-multilang-errordoc.confInclude

Standardmäßig sind die zu diesen Dateien gehörenden include-Anweisungen aus-

kommentiert. Wenn Sie eine der Konfigurationsdateien benötigen, müssen Sie ledig-

lich in der Datei httpd.conf in der entsprechenden Zeile am Anfang die Raute

entfernen. Der Verwendungszweck der einzelnen Dateien ist in der Hauptkonfigura-

tionsdatei httpd.conf dokumentiert.

Wichtige Einträge in der Datei httpd.conf

Unabhängig von deren tatsächlichen Wichtigkeit werden nun einige Einträge aus der

httpd.conf aufgezählt, die in der Prüfung häufig auftauchen. Lassen Sie sich nicht von

Fragen erschrecken, die Optionen enthalten, die Sie gar nicht kennen. Oft kann man

durch Logik und Ausschlussverfahren die richtige Antwort herausfinden.

� Port ändert den Port, an dem Apache für eingehende Webanfragen lauscht. Der

Standardport ist 80. Diese Direktive wurde in neueren Apache-Versionen durch

Listen ersetzt.

� Listen ändert den Port und ggf. die IP-Adresse, an der Apache für eingehende Web-

anfragen lauscht. Standardmäßig ist hier Port 80 ohne IP-Adresse angegeben.

Tipp

Wenn Sie httpd-manual.conf aktivieren, indem Sie die vorangestellte Raute entfer-

nen, dann haben Sie Zugriff auf das Manual von Apache. Sie müssen anschließend

lediglich apachectl restart ausführen und können dann auf die URL http://local-

host/manual zugreifen.

208 Web-Dienste

304

� MinSpareServers legt die Anzahl der Instanzen fest, die beim Starten von Apache in

den Speicher geladen werden. Ein typischer Wert für kleine bis mittlere Serveraus-

lastungen ist 10.

� ServerType legt fest, ob Apache von inetd gestartet wird oder ob er selbstständig

läuft. Mögliche Werte sind standalone oder inetd.

� ServerRoot ist das Verzeichnis in dem Apache seine Protokolle, Serverkonfigura-

tion, CGI Skripte und Ähnliches findet.

� DocumentRoot ist das Hauptverzeichnis für Dokumente, zu dem die Öffentlichkeit

Zugang haben soll.

Starten und stoppen

Es gibt mehrere Methoden, einen Apache Server zu starten, zu beenden oder neu zu

starten. Sie sollten die hierfür benötigten Kommandos kennen:

� Wie jeden anderen Daemon können Sie auch httpd mit dem Kommando /etc/

init.d/httpd start starten. Sollten Sie den Server selbst kompiliert haben, dann

gibt es kein Startskript. Sie können dann einfach ein vorhandenes Skript kopieren

und entsprechend anpassen.

� Ohne init-skript: /usr/local/apache2/bin/httpd -f /usr/local/apache2/conf/

httpd.conf

� /usr/local/apache2/bin/apachectl ist zur Laufzeit allerdings die eleganteste

Lösung. Das Skript versteht die folgenden Optionen:

– start startet den Server.

– stop beendet den Server.

– restart startet den Server neu.

– graceful startet den Server neu, aber bestehende Verbindungen bleiben erhal-

ten. So können etwaige Konfigurationsänderungen registriert werden.

– configtest überprüft die Konfigurationsdateien auf Syntaxfehler.

Sie werden auf einigen Systemen apache2ctl anstatt apachectl antreffen. Die beiden

Skripte unterscheiden sich allerdings nicht nennenswert voneinander.

Prüfungstipp

Diese Einträge sollten Sie unbedingt kennen. Achten Sie darauf, dass Sie nicht Portund Listen miteinander verwechseln. Die Anzahl der MinSpareServers für eine

kleine bis mittlere Umgebung wird oft und in vielen Varianten gefragt. Merken Sie

sich also hierbei unbedingt die Zahl 10!

208.1 Implementierung eines Webservers

305

Im Allgemeinen ist apachectl nicht sehr gesprächig und gibt lediglich beim config-

test eine Erfolgsmeldung aus. In allen anderen Fällen sollten Sie sich bei einem Pro-

duktionsserver davon überzeugen, dass er die von Ihnen angeforderte Aktion auch

wirklich durchgeführt hat.

[root@arch-cent bin]# ./apachectl configtestSyntax OK

Die Richtigkeit der Konfigurationsänderungen wurde bestätigt.

Zugriffssteuerung

Wenn eine Webseite Informationen enthält, die nicht für die Öffentlichkeit be-

stimmt sind, dann sollten Sie eine Authentifizierung von den Benutzern anfordern.

Die erforderlichen Benutzerkonten können mit dem Programm htpasswd erstellt

und anschließend einer Webseite bzw. einem Webverzeichnis zugeordnet werden.

htpasswd verwenden

Die Befehlsfolge im folgenden Beispiel ist so gewählt, dass Sie sich einerseits über-

sichtlich darstellen lässt und außerdem durch kurze Kommandos leicht nachzustel-

len ist:

[root@arch-cent /]# cd /usr/local/apache2/bin/

Das folgende Kommando erstellt eine Passwortdatei und legt im selben Arbeits-

schritt den ersten Benutzer samt Passwort an. Die Passwortdatei befindet sich

anschließend im ServerRoot /usr/local/apache2.

[root@arch-cent bin]# ./htpasswd -c ../password.list user1New password:Re-type new password:Adding password for user user1

Wenn Sie weitere Benutzer für Ihren Webserver erstellen wollen, dann verwenden

Sie ein ähnliches Kommando. Sie müssen dann lediglich die Option -c (das c steht für

create) weglassen.

[root@arch-cent bin]# ./htpasswd ../password.list user2New password:Re-type new password:Adding password for user user2

Wechseln Sie eine Verzeichnisebene höher, um den Inhalt der Passwortdatei zu

betrachten. Sie werden feststellen, dass die Passworte verschlüsselt abgespeichert

wurden:

208 Web-Dienste

306

[root@arch-cent bin]# cd ..[root@arch-cent apache2]# cat password.listuser1:$apr1$MSADRkjD$RiOkhfPNrxeM3sFWu0vvf/user2:$apr1$puQJAZbN$sgfv1MEZ2AnimKzqIY22D0

Um Authentifizierung für die standardmäßig vorhandene Webseite zu anzufordern,

müssen Sie die Konfigurationsdatei httpd.conf anpassen. Suchen Sie die Sektion

<Directory /> und fügen Sie die unten fett gedruckten Zeilen hinzu:

<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from allAuthName "Authentifizierung erforderlich" AuthType Basic AuthUserFile password.list require valid-user

</Directory>

Der Inhalt des Statements AuthName ist frei wählbar und wird dem Benutzer im

Authentifizierungs-Dialog angezeigt. Mit AuthType Basic wird die Methode der

Authentifizierung eingestellt. AuthUserFile zeigt auf die soeben erstellte Passwortda-

tei. Diese Datei befindet sich im vorliegenden Beispiel im Hauptverzeichnis des Web-

servers, weshalb hier auf eine Pfadangabe verzichtet werden kann. Das Statement

require valid-user legt fest, dass sich hier nur gültige Benutzer anmelden können. Es

ist übrigens auch möglich, konkreten Benutzern exklusiven Zugriff einzuräumen.

Sie können die Authentifizierung jetzt mithilfe eines Webbrowsers testen und

anschließend die soeben gemachten Änderungen aus der Datei httpd.conf löschen

oder auskommentieren. Diese Maßnahme ist für die nächste Lektion notwendig.

.htaccess

Eine andere Methode der Zugriffssteuerung ist die Verwendung einer verborgenen

Datei mit der Bezeichnung .htaccess. Dieses Verfahren unterscheidet sich kaum von

dem bereits beschriebenen. Sie können sogar die zuvor erstellte Passwortdatei ver-

wenden.

Damit Sie .htaccess-Dateien verwenden können, müssen Sie zuerst in der Datei

httpd.conf folgende globale Einstellung konfigurieren:

AllowOverride All

208.1 Implementierung eines Webservers

307

Sie sollten diese Einstellung, wie gesagt global festlegen und nicht innerhalb einer

<Directory>- Direktive. Erstellen Sie anschließend eine Datei mit der Bezeichnung

.htaccess und folgendem Inhalt im DocumentRoot des Webservers:

AuthName "Authentifizierung erforderlich"AuthType BasicAuthUserFile password.listrequire valid-user

Wie Sie sehen, ist der Inhalt und die Syntax mit den Einträgen in der httpd.conf-Datei,

die Sie vorher gemacht haben, absolut identisch. Der einzige Vorzug dieser Datei ist

der, dass auch ein gewöhnlicher Benutzer diese Datei erstellen kann. Dazu benötigt

der Benutzer keine Schreibrechte auf die Datei httpd.conf, sondern lediglich im jewei-

ligen Webverzeichnis. Auf diese Art kann die Verwaltung einzelner Webverzeich-

nisse an unterschiedliche Benutzer delegiert werden.

Testen Sie nun erneut den Zugriff auf den Webserver. Wenn Sie wiederholt Tests

durchführen, dann sollten Sie nach jedem Test den Cache Ihres Browsers löschen.

Ansonsten werden Ihre Tests zu unerwarteten Ergebnissen führen, weil Webseiten

eventuell ohne Authentifizierung direkt aus dem Browsercache heraus angezeigt

werden. Sie können die Datei .htaccess ganz einfach immer in die Verzeichnisse

kopieren, auf die Sie den Zugriff beschränken wollen. Es sollte bei hoch frequentier-

ten Servern aber berücksichtigt werden, dass die Verwendung dieser Methode die

Performance des Servers negativ beeinflusst.

.htgroup

In größeren Umgebungen kann es sinnvoll sein, die Benutzer, die auf Webressourcen

zugreifen dürfen, zu gruppieren. Im Prinzip können Sie die Datei zur Gruppierung

von Benutzern nennen, wie Sie wollen, aber der Name .htgroup hat sich im Laufe der

Jahre eingebürgert. Diese Datei durch einen Punkt am Anfang zu verstecken ist

grundsätzlich eine gute Idee, um die Datei vor neugierigen Augen zu verbergen, auch

wenn sie keine Passworte enthält. Um das Verfahren zu testen, erstellen Sie passend

zu den bereits erstellten Benutzern in der Datei password.list die Datei .htgroup eben-

falls im DocumentRoot-Verzeichnis des Servers. Die Datei .htgroup könnte diesen

Inhalt haben:

all:user1,user2agents:user1

Ändern Sie nun Ihre bestehende .htaccess-Datei ab, um die Gruppendatei zu ver-

wenden:

208 Web-Dienste

308

AuthName "Zugriff nur für Agents"AuthType BasicAuthUserFile password.listAuthGroupFile .htgrouprequire group agents

Beachten Sie bitte, dass AuthUserFile angegeben werden muss, auch wenn die

Zugangsvoraussetzung von der Gruppe abhängig ist. AuthName zeigt einem Benutzer

schon beim ersten Zugriff, wer auf dieses Webverzeichnis zugreifen darf. Wenn Sie

einen Test durchführen (nachdem Sie den Browsercache gelöscht haben), werden Sie

feststellen, dass user1 auf das Webverzeichnis zugreifen darf und user2 nicht.

Module integrieren

Funktionen, die von den meisten Anwendern benötigt werden, sind im Kern von

Apache fest integriert. Wenn weitere Funktionen benötigt werden, dann müssen

diese als Module eingebunden werden. Das als prüfungsrelevant genannte Modul

mod_auth, das für die Basis-Authentifizierung zuständig ist, wurde inzwischen ein fes-

ter Bestandteil des Apache Kerns und muss nicht mehr nachträglich integriert wer-

den. Die Integration von Perl und insbesondere PHP gehört allerdings immer noch

zu den Standardaufgaben bei der Apache-Konfiguration.

Integration von mod_php

PHP ist eine Skriptsprache, mit der es möglich ist, HTML-Code dynamisch zu generie-

ren. Sehr viele der heutigen Webseiten verwenden PHP auch, um Zugriffe auf

MySQL-Datenbanken durchzuführen. Die folgende Anleitung wird Ihnen helfen,

PHP in Ihren Webserver zu integrieren. Erstellen Sie zunächst ein Installationsver-

zeichnis und wechseln Sie hinein:

[root@arch-cent /]# mkdir /usr/src/php[root@arch-cent /]# cd /usr/src/php

Laden Sie anschließend den entsprechenden tar-Ball für PHP vom Webserver von

php.net herunter, und packen Sie ihn aus:

Hinweis

Es gibt wesentlich komplexere Methoden, den Zugriff auf einen Webserver bzw.

dessen Verzeichnisse zu steuern, wie Sie sich wahrscheinlich schon gedacht haben.

Für die Prüfung müssen Sie aber lediglich die bisher beschriebenen Mechanismen

kennen.

208.1 Implementierung eines Webservers

309

[root@arch-cent php]# wget http://de.php.net/distributions/php-5.3.6.tar.bz2[root@arch-cent php]# tar -xvjf php-5.3.6.tar.bz2

Beachten Sie bitte, dass es inzwischen eine neuere Version von PHP geben könnte.

Besuchen Sie ggf. die php.net-Webseite um Näheres zu erfahren, falls der oben

genannte Downloadlink nicht mehr funktionieren sollte. Wechseln Sie nun in das

entstandene Installationsverzeichnis.

[root@arch-cent php]# cd php-5.3.6

Die Konfiguration von PHP setzt das Entwicklungspaket libxml2-devel voraus. Sie

sollten das Paket also spätestens jetzt nachinstallieren:

[root@arch-cent php-5.3.6]# yum install libxml2-devel

Bei Systemen, die auf Debian basieren, heißt das entsprechende Paket übrigens

libxml2-dev. Jetzt können Sie die Konfiguration durchführen. Sie müssen bei der

Konfiguration zumindest das Verzeichnis angeben, in dem Apache seine Erweiterun-

gen erwartet:

[root@arch-cent php-5.3.6]# ./configure --with-apxs2=/usr/local/apache2/bin/apxs

Wenn die Konfiguration sauber durchgelaufen ist, können Sie PHP kompilieren, tes-

ten und installieren. Der Test ist übrigens optional und dauert relativ lange. Wenn Sie

also lediglich ein Testsystem zu Prüfungsvorbereitungszwecken konfigurieren, dann

können Sie den Test getrost überspringen.

[root@arch-cent php-5.3.6]# make[root@arch-cent php-5.3.6]# make test[root@arch-cent php-5.3.6]# make install

Die Installationsroutine hat der Konfigurationsdatei httpd.conf eine Zeile hinzuge-

fügt, die dafür sorgt, dass das PHP-Modul beim nächsten Neustart des Webservers

geladen wird:

LoadModule php5_module modules/libphp5.so

Damit Apache die Dateierweiterungen von PHP selbstständig erkennen kann, sollten

Sie allerdings noch folgende Zeile von Hand in die globale Sektion der Datei

httpd.conf eintragen:

AddType application/x-httpd-php .php .phtml

Überprüfen Sie die Konfiguration des Webservers, und starten Sie ihn anschließend

neu, um die Konfigurationsänderungen zu übernehmen:

[root@arch-cent bin]# ./apachectl configtest[root@arch-cent bin]# ./apachectl restart

208 Web-Dienste

310

PHP-Programmierung ist nicht Bestandteil Ihrer Prüfung, aber Sie finden im Internet

leicht Beispielskripte um Ihre Konfiguration zu testen, wenn Sie das möchten.

Integration von mod_perl

Perl ist eine Skriptsprache, die ursprünglich nicht für Webseitenprogrammierung

geschrieben wurde. In den letzten Jahren wurde Perl, zumindest was Webseiten

anbelangt, mehr und mehr von PHP verdrängt. Die Installation des Perl-Moduls für

Apache funktioniert etwas anders, als die Integration von PHP. Konsequenterweise

kommt bei der Installation ein Perl-Skript zum Einsatz, was natürlich voraussetzt,

dass der Perl-Interpreter schon auf dem System vorhanden ist. Bei den meisten aktu-

ellen Linux-Distributionen ist dieser Interpreter in einer Standardinstallation schon

enthalten. Wenn Sie die folgenden Schritte durchführen, sollten Sie eine funktionie-

rende Apache-Konfiguration mit Perl erhalten. Legen Sie zunächst wieder ein Instal-

lationsverzeichnis an und wechseln Sie hinein:

[root@arch-cent /]# mkdir /usr/src/mod_perl[root@arch-cent /]# cd /usr/src/mod_perl

Laden Sie anschließend das Perl-Modul als tar-Ball von der Apache-Webseite herun-

ter:

[root@arch-cent mod_perl]# wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz

Sollten Sie gerade in einer älteren Ausgabe dieses Buches lesen, könnte es natürlich

schon neuere Versionen des Moduls geben. Passen Sie dann die Kommandos (bzw.

hier die URL) entsprechend an. Packen Sie den tar-Ball aus:

[root@arch-cent mod_perl]# tar -xvzf mod_perl-2.0-current.tar.gz

Wechseln Sie anschließend in das gerade entstandene Installationsverzeichnis und

führen Sie das Perl-Skript zur Erstellung des Makefile aus, wie angegeben. Die Vari-

able MP_APXS gibt hierbei den absoluten Pfad zu den Apache-Erweiterungen an.

[root@arch-cent mod_perl]# cd mod_perl-2.0.5[root@arch-cent mod_perl-2.0.5]# perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs

Ab hier unterscheidet sich die Installation nicht mehr von der Installation anderer

Programme, die als tar-Ball vorliegen:

[root@arch-cent mod_perl-2.0.5]# make[root@arch-cent mod_perl-2.0.5]# make install

Sie müssen jetzt nur noch dafür sorgen, dass Apache das Perl-Modul lädt. Fügen Sie

der Konfigurationsdatei httpd.conf deshalb noch folgende Zeile hinzu:

208.1 Implementierung eines Webservers

311

LoadModule perl_module modules/mod_perl.so

Starten Sie Apache anschließend einmal neu, damit die Konfigurationsänderungen

wirksam werden:

[root@arch-cent mod_perl-2.0.5]# /usr/local/apache2/bin/apachectl restart

Auch Perl-Programmierung ist nicht Bestandteil der LPI-Prüfungen. Deshalb muss

ich auch hier bezüglich Perl-Programmen zu Testzwecken auf das Internet verwei-

sen.

Protokollierungseinstellungen

Was die Protokollierung anbelangt, werden Sie bei den meisten Apache-Servern, die

paketbasiert installiert wurden feststellen, dass die Protokolle der Webserver im Ver-

zeichnis /var/log/apache2 liegen. Hier befinden sich im Normalfall die Dateien

access.log und error.log. Da diese Dateien üblicherweise von Logrotate rotiert wer-

den, finden Sie hier natürlich auch noch archivierte, komprimierte Versionen dieser

beiden Dateien.

In der Datei access.log wird jede einzelne URL, die abgerufen wird protokolliert. Es ist

deshalb möglich, sehr genau festzustellen, von welchen Computern aus auf welche

Inhalte zugegriffen wurde. Fehlgeschlagene Zugriffe werden hier ebenfalls protokol-

liert.

Die Datei error.log enthält keine Einträge, die auf Zugriffe durch Benutzer zurückzu-

führen sind, sondern vielmehr nur schwerwiegende Fehler. Hierbei kann es sich um

Fehler durch Fehlkonfiguration des Servers handeln oder Module, die sich aus

irgendeinem Grund nicht laden lassen. Sie sollten diese Datei also unbedingt konsul-

tieren, wenn es zu Fehlfunktionen des Servers kommt.

Wenn Sie Ihren Webserver nach der Anleitung in diesem Buch konfiguriert haben,

dann finden Sie die Protokolldateien in einem Unterverzeichnis des Webservers,

nämlich in /usr/local/apache2/logs. Die Dateinamen sind hier access_log und error_

log.

Die Position und die Dateinamen der Protokolldateien werden in der Konfigurati-

onsdatei httpd.conf festgelegt. Hierbei sind die Pfadangaben relativ ab dem Server-

Root zu betrachten:

CustomLog "logs/access_log" commonErrorLog "logs/error_log"

208 Web-Dienste

312

Leistungseinstellungen

In der Konfigurationsdatei httpd.conf finden Sie einige Direktiven, die sich auf die

Leistung des Servers auswirken. Diese Direktiven müssen an die Umstände ange-

passt werden, unter denen der Server läuft. Wenn zu erwarten ist, dass ein Webserver

ständig von sehr vielen Benutzern verwendet wird, dann sollten natürlich auch

entsprechend viele Arbeitsprozesse zur Verfügung stehen, um diese Anfragen zu

handhaben. Umgekehrt würden zu viele Arbeitsprozesse unnötigerweise die Sys-

temressourcen verschwenden. Entsprechend den Anforderungen können Sie fol-

gende Parameter konfigurieren:

� StartServers: Anzahl der Serverprozesse beim Start

� MinSpareServers: minimale Anzahl von Serverprozessen, die als Reserve zur Ver-

fügung stehen müssen

� MaxSpareServers: maximale Anzahl von Serverprozessen, die als Reserve zur Ver-

fügung stehen dürfen

� ServerLimit: maximale Anzahl der Serverprozesse, die zur Laufzeit des Servers

ausgeführt werden dürfen

� MaxClients: maximale Anzahl der Serverprozesse, die gleichzeitig ausgeführt wer-

den dürfen

� MaxRequestsPerChild: maximale Anzahl von Anfragen, die an einen Serverprozess

gesendet werden dürfen

208.2 Pflege eines Webservers

Wichtung: 2

Beschreibung: Die Prüflinge sollten in der Lage sein, einen Webserver für die Nut-

zung von virtuellen Hosts und Secure Sockets Layer (SSL) zu konfigurieren und

Regeln für den Dateizugriff zu setzen.

Wichtigste Wissensgebiete:

� SSL-Konfigurationsdateien, -Begriffe und -Dienstprogramme

� Handhabung von SSL-Zertifikaten

� Apache 2.x-Implementierung von virtuellen Hosts (mit und ohne fest zugeord-

nete IP-Adressen)

� Einsatz von Redirect-Anweisungen in Apache-Konfigurationsdateien, um Datei-

zugriffe zu individualisieren

208.2 Pflege eines Webservers

313

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� Apache-Konfigurationsdateien

� /etc/apache2/*

� /etc/ssl/*

� openssl

Allgemeines

Auf den letzten Seiten haben Sie eine Menge über die Grundkonfiguration eines Apa-

che-Webservers erfahren. In der Praxis werden Sie aber noch weitere Funktionen

eines Webservers benötigen. Webserver, die von Internet Service Providern betrie-

ben werden, hosten normalerweise mehrere Webseiten. Es ist nicht ungewöhnlich,

dass ein einziger Apache-Webserver die Seiten von fünfzig und mehr Kunden hostet.

Zu diesem Zweck werden virtuelle Hosts auf den Servern konfiguriert.

Eine weitere Funktionalität, die häufig benötigt wird, ist SSL (Secure Socket Layer).

Mit SSL wird die Authentizität einer Webseite garantiert, die Integrität gewahrt und

der Inhalt während der Übertragung durch Verschlüsselung gesichert. Damit Sie

HTTPS verwenden können, muss das entsprechende Modul SSL installiert sein.

Die Beispiele der folgenden Seiten basieren diesmal auf einer Apache Installation

mittels yum. Auf diese Art lernen Sie gleichzeitig eine andere Variante von Apache

kennen. Der wesentliche Unterschied zum manuell installierten Webserver sind die

Positionen der Verzeichnisse des Servers im Dateisystem. Installieren Sie Apache

mit:

[root@arch-cent ~]# yum install httpd

Wenn Sie CentOS verwenden, dann wird das Modul mod_ssl automatisch mit instal-

liert. Bei einem System auf dem Fedora ausgeführt wird, müssen Sie SSL zusätzlich

installieren:

[root@arch-fc /]# yum install mod_ssl

Bei den Red Hat-basierten Systemen finden Sie die Konfigurationsdateien im Ver-

zeichnis /etc/httpd. Die Datei httpd.conf liegt jeweils im Verzeichnis /etc/httpd/conf.

Alle anderen Verzeichnisse sind durch Lesen der Hauptkonfigurationsdatei problem-

los zu ermitteln (z. B. ServerRoot und DocumentRoot).

Konfiguration von SSL

Wenn eine Webseite eine Authentifizierung verlangt oder vertrauliche Daten über-

mittelt, dann sollte die Verbindung verschlüsselt erfolgen. Es wäre sonst zu befürch-

208 Web-Dienste

314

ten, dass jemand die Verbindung abhorcht und dabei die Authentifizierungs-Daten

oder den vertraulichen Inhalt der Verbindung abfängt. In einer solchen Situation

kommt HTTPS zum Einsatz. Im Grunde genommen handelt es sich hier immer noch

um HTTP-Kommunikation, aber die Datenpakete werden in einer SSL-Verbindung

gesichert übermittelt. Das gesamte Konstrukt basiert auf einer Infrastruktur für

öffentliche Schlüssel (Public Key Infrastructure, PKI). Da hier Zertifikate im Spiel sind,

können Sie HTTPS nicht nur für die Verschlüsselung verwenden. Es ist auch eine

gegenseitige Authentifizierung von Webserver und Client möglich, wobei in der Pra-

xis meist nur die Authentifizierung des Servers gegenüber dem Client implementiert

wird. Schließlich müssen Sie als Kunde wissen, ob Sie einer Webseite trauen können,

wenn Sie z. B. Kreditkartentransaktionen durchführen wollen.

Wenn Sie eine mit SSL gesicherte Webseite konfigurieren, auf die vom Internet aus

zugegriffen wird, dann sollten Sie über ein Zertifikat für diese Seite verfügen, das von

einer öffentlichen Zertifizierungsstelle (z. B. Global Sign, Thawte, Verisign) ausgestellt

wurde. Ansonsten werden Benutzer beim Zugriff auf die Webseite eine Warnmel-

dung erhalten und die Seite möglicherweise meiden. Damit das Zertifikat eines Web-

servers von einem Client ohne Warnmeldungen akzeptiert wird, müssen drei

Kriterien erfüllt sein:

� Das Zertifikat muss von einer vertrauten Zertifizierungsinstitution stammen.

� Das Zertifikat muss gültig sein (nicht abgelaufen oder zurückgezogen).

� Der Antragstellername im Zertifikat muss mit der URL übereinstimmen, die ein

Benutzer in den Browser eingibt.

Das bedeutet, dass Sie problemlos zu Testzwecken ein Zertifikat verwenden können,

das Sie selbst ausgestellt haben. Wenn Sie SSL verwenden, um so etwas wie eine Ver-

waltungswebseite (z. B. phpMyAdmin, CUPS, Webmin o.Ä.) abzusichern, dann wollen

Sie wahrscheinlich lediglich sicherstellen, dass die Kommunikation verschlüsselt

erfolgt und nicht die Echtheit des Zielservers überprüfen. Auch in solchen Fällen kön-

nen Sie ohne Weiteres selbst signierte Zertifikate verwenden und entsprechende

Warnmeldungen des Browsers ignorieren.

Wenn Sie, wie im Abschnitt »Allgemeines« beschrieben, mittels yum einen Apache-

Webserver installiert haben, dann verfügt dieser bereits über ein selbst signiertes

Zertifikat. Sie sollten aber natürlich wissen, wie man ein solches Zertifikat mit

openssl selbst erzeugt und an eine Webseite bindet. Sie finden hier wieder eine

Schritt-für-Schritt-Anleitung. Denken Sie aber daran, dass diesem Zertifikat nicht

öffentlich vertraut wird. Erstellen Sie zunächst ein Unterverzeichnis für das Zertifikat

und den privaten Schlüssel und wechseln Sie anschließend hinein.

[root@arch-cent /]# mkdir /etc/httpd/ssl[root@arch-cent /]# cd /etc/httpd/ssl

208.2 Pflege eines Webservers

315

Verwenden Sie anschließend openssl um das Zertifikat und den Schlüssel zu generie-

ren. Die Benutzereingaben sind wieder fett gedruckt:

[root@arch-cent ssl]# openssl req -new -x509 -nodes -out arch-cent.homelinux.net.crt -keyout arch-cent.homelinux.net.keyGenerating a 1024 bit RSA private key.................++++++....................++++++writing new private key to 'arch-cent.homelinux.net.key' ---You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank. -----Country Name (2 letter code) [GB]:DEState or Province Name (full name) [Berkshire]:GermanyLocality Name (eg, city) [Newbury]:BerlinOrganization Name (eg, company) [My Company Ltd]:MaassenOrganizational Unit Name (eg, section) []:.Common Name (eg, your name or your server's hostname)

[]:arch-cent.homelinux.netEmail Address []:[email protected]

Es sollten nun zwei Dateien im aktuellen Verzeichnis liegen. Die Datei mit der Erwei-

terung crt enthält das Zertifikat mit dem öffentlichen Schlüssel, während die Datei

mit der Erweiterung key den privaten Schlüssel enthält:

[root@arch-cent ssl]# ls -linsgesamt 16-rw-r--r-- 1 root root 1277 20. Jun 21:50 arch-cent.homelinux.net.crt-rw-r--r-- 1 root root 887 20. Jun 21:50 arch-cent.homelinux.net.key

Damit der Webserver das Zertifikat und den Schlüssel auch verwendet, müssen Sie

die entsprechenden Direktiven der Datei httpd.conf anpassen. Im Fall von CentOS

bzw. Fedora wurde der hierfür zuständige Bereich per include-Anweisung in die

Datei /etc/httpd/conf.d/ssl.conf ausgelagert. Öffnen Sie diese Datei mit einem Editor

und suchen Sie nach den Einträgen SSLCertificateFile und SSLCertificateKeyFile.

Passen Sie die Dateien an Ihr eigenes Zertifikat und den privaten Schlüssel an:

SSLCertificateFile /etc/httpd/ssl/arch-cent.homelinux.net.crtSSLCertificateKeyFile /etc/httpd/ssl/arch-cent.homelinux.net.key

Damit die Konfigurationseinstellungen sofort wirksam werden, sollten Sie Apache

neu starten.

208 Web-Dienste

316

[root@arch-cent ssl]# apachectl restart

Greifen Sie nun mit einem beliebigen Webbrowser auf die abgesicherte Webseite zu,

indem Sie das Präfix https:// angeben. Sie sollten dann eine Sicherheitswarnung

erhalten, weil das vom Webserver verwendete Zertifikat nicht von einer vertrauens-

würdigen Zertifizierungsstelle ausgestellt wurde. Die Warnung können Sie in diesem

Fall natürlich ignorieren. Nur wenn Sie eine abgesicherte Webseite anderen Benut-

zern zur Verfügung stellen, sollten Sie ein Zertifikat von einer öffentlichen Zertifizie-

rungsstelle erwerben.

Konfiguration virtueller Hosts

Wenn auf einem Webserver mehrere Webseiten gehostet werden sollen, gibt es

grundsätzlich drei verschieden Möglichkeiten, diese Seiten voneinander zu unter-

scheiden. Sie könnten jeder Webseite eine eigene IP-Adresse zuordnen und die jewei-

ligen IP-Adressen in den entsprechenden DNS-Zonen eintragen (lassen). Da

öffentliche IP-Adressen Geld kosten, ist das allerdings keine sehr gute Wahl. Eine wei-

tere Möglichkeit besteht darin, unterschiedliche TCP-Ports für die verschiedenen

Webseiten zu verwenden. Das ist allerdings bei öffentlich zugänglichen Webseiten

schon aus kosmetischen Gründen abzulehnen, weil die Besucher der Webseite den

entsprechenden Port dann in der URL angeben müssten. Das sähe dann z. B. so aus:

http://www.google.de:82, also nicht gerade besonders professionell. Die dritte und

im Normalfall beste Lösung ist die Unterscheidung von Webseiten über den Hostna-

men. Die URL, die der Benutzer in seinen Browser eingegeben hat, wird innerhalb der

Abfrage an den Webserver übermittelt. Diese URL kann der Webserver auswerten

und einem virtuellen Host zuordnen.

Unabhängig davon, welche dieser drei Varianten konfiguriert werden soll, müssen in

der Datei httpd.conf virtuelle Hosts erstellt werden. Hierbei handelt es sich jeweils

um Gruppen von Direktiven, die am Anfang durch <VirtualHost> und am Ende mit

</VirtualHost> eingeschlossen werden. Eine komplette Konfiguration für einen vir-

tuellen Host könnte z. B. so aussehen:

<VirtualHost www.super-admin.org>ServerAdmin [email protected] /var/www/super-adminServerName www.super-admin.orgErrorLog logs/super-admin-error_logCustomLog logs/super-admin-access_log common

</VirtualHost>

Der Inhalt der Direktiven erklärt sich fast von selbst. Der wichtigste Eintrag ist jedoch

DocumentRoot, weil diese Direktive dem Webserver sagt, in welchem Verzeichnis der

208.2 Pflege eines Webservers

317

zur angegebenen URL passende Kontent zu finden ist. Die einleitende Zeile fällt

unterschiedlich aus, je nachdem, auf welche Art die Webseite identifiziert werden

soll. Hier ein paar Beispiele:

Identifikation durch die IPv4-Adresse:

<VirtualHost 24.215.7.162>

Identifikation durch die IPv6-Adresse:

<VirtualHost [2a01:198:5dd:7a03:a00:27ff:fe2d:5987]>

Identifikation durch den verwendeten TCP-Port:

<VirtualHost *:82>

Identifikation durch den Hostnamen und einen TCP-Port:

<VirtualHost www.super-admin.org:82>

Beachten Sie, dass die Angabe eines TCP-Ports innerhalb eines virtuellen Hosts nicht

verhindert, dass der Server weiterhin zusätzlich an Port 80 lauscht.

Die Redirect-Direktive

Redirects werden z. B. verwendet, wenn der Inhalt eines Webverzeichnisses an eine

andere Stelle verschoben wurde. Der Inhalt des entsprechenden Verzeichnisses kann

sich hierbei auch auf einem anderen Webserver befinden. In der Redirect-Direktive

kann ein Statuscode angegeben werden. Wenn Sie keinen Statuscode angeben, dann

wird per Voreinstellung der Wert 302 (found) an den Client gesendet. Das lokale Ver-

zeichnis wird relativ zum DocumentRoot angegeben, während das Ziel absolut und als

URL notiert wird.

Im folgenden Beispiel wird das lokale Unterverzeichnis /pdf an die URL http://

www.super-admins.org/dokumente umgeleitet. An den Client wird der Statuscode

301 (moved permanently) ausgegeben. Diese Statusinformation ist besonders für

Suchmaschinen interessant, weil eine dauerhafte Änderung (im Gegensatz zu einer

temporären Änderung) im Index der Suchmaschinen berücksichtigt werden sollte.

Redirect permanent /pdf http://www.super-admins.org/dokumente

Für den Statuscode eines Redirects können folgende Argumente verwendet werden:

� permanent: Der Server sendet den Statuscode 301 (moved permanently), um anzu-

zeigen, dass die Ressource dauerhaft unter der neuen URL erreichbar ist.

� temp: Der Server gibt den Statuscode 302 (found) zurück. Dies ist die Standardein-

stellung, wenn Sie kein Statusargument angeben.

208 Web-Dienste

318

� seeother: Der Server gibt den Statuscode 303 (see other) zurück. Das bedeutet, dass

die ursprüngliche Ressource ersetzt wurde.

� gone: Der Server sendet den Statuscode 410 (gone). Die angeforderte Ressource ist

auf dem Server dauerhaft nicht mehr erreichbar. Es ist keine neue URL bekannt.

Sie sollten übrigens nicht versuchen, ein Unterverzeichnis des ursprünglichen Web-

verzeichnisses als neues Ziel in einem Redirect zu verwenden. Diese Methode wird

von der Redirect-Direktive nicht unterstützt und führt zu einer Fehlermeldung im

Browser des Clients.

208.3 Implementierung eines Proxy-Servers

Wichtung: 1

Beschreibung: Die Prüflinge sollten in der Lage sein, einen Proxy-Server zu installie-

ren und zu konfigurieren, einschließlich der Zugriffsregeln, der Authentifizierung

und der Ressourcennutzung.

Wichtigste Wissensgebiete:

� Squid 2.x-Konfigurationsdateien, -Begriffe und -Dienstprogramme

� Methoden zur Zugriffsbeschränkung

� Methoden zur Client-Benutzerauthentifikation

� Aufbau und Inhalt von ACLs in den Squid-Konfigurationsdateien

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

� squid.conf

� acl

� http_access

Allgemeines

Ein Proxy-Server wird verwendet, um Webinhalte stellvertretend für Clients anzufor-

dern, zwischenzuspeichern und anschließend an die Clientcomputer auszuliefern.

Ursprünglich wurden Proxy-Server in Unternehmensnetzwerken hauptsächlich ein-

gesetzt, um die Bandbreite des Internetzugangs optimal nutzen zu können und um

Clientanfragen mit zwischengespeicherten Webseiten schneller versorgen zu kön-

nen. Die Möglichkeit, den Zugriff auf bestimmte Webseiten zu sperren oder den

Zugriff auf das Web auf bestimmte Clientcomputer zu beschränken, spielte zunächst

eine untergeordnete Rolle.

208.3 Implementierung eines Proxy-Servers

319

Heutzutage hat sich die Aufgabe eines Proxys eher in Richtung Zugriffssteuerung

verlagert. Da Webinhalte mehr und mehr dynamisch generiert und Webseiten

immer schneller aktualisiert werden, ist die Zwischenspeicherung oftmals nicht

sinnvoll. Aufgrund der inzwischen verfügbaren Bandbreiten heutiger Internetzu-

gänge ist das Caching von Webseiten außerdem nicht mehr so wichtig wie früher.

Trotzdem hat ein Proxy immer noch seine Daseinsberechtigung. Schließlich kann er

verhindern, dass die Mitarbeiter eines Unternehmens ihre Arbeitszeit verschwenden

und dass Kinder jugendgefährdendes Material aus dem Internet herunterladen.

Installation des Squid Proxy-Servers

Das LPI nennt als Prüfungsthema ausdrücklich die Konfigurationsdateien von Squid

2.x. Sie können sich aber ohne Probleme mit Squid 3.x auf die Prüfung vorbereiten.

Da die fertigen Squid-Proxys, die als Pakete für die verschiedenen Linux-Distributio-

nen vorliegen, sich nicht wesentlich voneinander unterscheiden, können Sie diesmal

auch auf ein solches Paket zurückgreifen. Die Konfiguration eines von Hand instal-

lierten Squid ist allerdings übersichtlicher und deshalb für Proxy-Einsteiger leichter

zu lesen.

Wenn Sie IPv6-Unterstützung für Internetzugriffe implementieren wollen, sollten

Sie mindestens die Squid-Version 3.1 installieren. Die Webseite des Projekts finden

Sie unter http://www.squid-cache.org. Hier finden Sie auch Informationen über

Bezugsquellen der aktuellen Squid-Versionen. Die hier Schritt für Schritt dokumen-

tierte Installation von Squid 3.2.0.9 wurde auf einem Debian 6.0-System durchge-

führt.

Die ersten Arbeitsschritte sind Routinearbeiten: Arbeitsverzeichnis erstellen, Quell-

paket herunterladen, dekomprimieren und auspacken.

root@arch-deb:~# mkdir /usr/src/squidroot@arch-deb:~# cd /usr/src/squidroot@arch-deb:/usr/src/squid# wget ftp://ftp.fu-berlin.de/unix/www/squid/archive/3.2/squid-3.2.0.9.tar.bz2root@arch-deb:/usr/src/squid# bunzip2 squid-3.2.0.9.tar.bz2root@arch-deb:/usr/src/squid# tar -xvf squid-3.2.0.9.tarroot@arch-deb:/usr/src/squid# cd squid-3.2.0.9/

Das Konfigurationsskript benötigt für seine Ausführung, zumindest unter Debian,

das Paket build-essential. Sie sollten dieses Paket also spätestens jetzt installieren:

root@arch-deb:/usr/src/squid/squid-3.2.0.9# apt-get install build-essential

Übergeben Sie dem Konfigurationsskript das Zielverzeichnis des Programms mit der

Option --prefix.

208 Web-Dienste

320

root@arch-deb:/usr/src/squid/squid-3.2.0.9# ./configure --prefix=/usr/local/squid

Wenn die Konfiguration fertig ist, können Sie wie gewohnt kompilieren und instal-

lieren:

root@arch-deb:/usr/src/squid/squid-3.2.0.9# makeroot@arch-deb:/usr/src/squid/squid-3.2.0.9# make install

Nach der Installation finden Sie den kompletten Server inklusive Konfigurationsda-

teien und dem Verzeichnis für Logfiles unterhalb von /usr/local/squid. Wenn Sie

zunächst mit dieser rohen Konfiguration arbeiten wollen, dann müssen Sie die das

Unterverzeichnis logs für Squid beschreibbar machen. Da Squid per default unter

dem Sicherheitskontext von nobody läuft, können Sie einfach dem User nobody die

Eigentümerschaft an dem Verzeichnis für die Logdateien übertragen:

root@arch-deb:/# chown nobody /usr/local/squid/var/logs/ -R

Da es sich lediglich um eine Testumgebung handelt, in der Sicherheit keine große

Rolle spielt, kann diese unsaubere, aber einfache Konfiguration verwendet werden.

Bevor Sie den Server in Betrieb nehmen können, muss der Cache einmalig initiali-

siert werden:

root@arch-deb:/# /usr/local/squid/sbin/squid -z2011/06/25 19:25:35 kid1| Creating Swap Directories

Beachten Sie bitte, dass in der Standardeinstellung nur im Arbeitsspeicher zwischen-

gespeichert wird. Um einen Festplattencache einzurichten, muss zunächst die Konfi-

gurationsdatei squid.conf modifiziert werden. Sie finden auf den nächsten Seiten

genaue Informationen über diese Konfigurationsdatei. Wenn der Cache fertig initia-

lisiert wurde, können Sie den Proxy testweise starten:

root@arch-deb:/# /usr/local/squid/sbin/squid

Es sind keine weiteren Optionen für den Start erforderlich. Squid läuft standardmä-

ßig als Daemon. Warten Sie ein paar Sekunden und prüfen Sie dann nach, ob der Ser-

ver nun läuft (ps aux|grep squid oder pidof squid sind hier hilfreich). Sollte es wider

Erwarten zu Problemen kommen, dann konsultieren Sie die soeben erstellte Proto-

kolldatei cache.log. Sollte diese Datei leer sein, dann gibt es ein Berechtigungsprob-

lem mit dieser Datei.

Im Lieferumfang von Squid ist ein Testprogramm enthalten, mit dem Sie die Funkti-

onsfähigkeit des Proxys testen können. Mit dem folgenden Kommando greifen Sie

über den lokal installierten Proxy (localhost TCP-Port 3128) auf eine Webseite zu. Die

Ausgabe des Kommandos sollte der HTML-Code der Webseite sein:

208.3 Implementierung eines Proxy-Servers

321

root@arch-deb:/# /usr/local/squid/bin/squidclient http://www.lpi.orgHTTP/1.1 200 OKDate: Sun, 26 Jun 2011 14:08:06 GMTServer: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-22 mod_ssl/2.8.22 OpenSSL/0.9.7e mod_perl/1.29X-Powered-By: eZ publishSet-Cookie: eZSESSID=aa69db352a0ec2e3fb9ab1bbe347135b; path=/Expires: Mon, 26 Jul 1997 05:00:00 GMTCache-Control: no-cache, must-revalidate

Konfiguration

Damit Sie die Ergebnisse Ihrer Konfigurationsarbeiten überprüfen können, sollten

Sie zunächst einen Webbrowser Ihrer Wahl so konfigurieren, dass er durch den

Squid-Proxy hindurch auf das Internet zugreift. Wenn Sie Firefox oder Iceweasel

unter Linux verwenden, dann finden Sie die entsprechende Registerkarte unter

Bearbeiten > Einstellungen > Erweitert > Netzwerk > Einstellungen. Tragen

Sie hier die Adresse des Proxy-Servers und den TCP-Port 3128 ein.

Abbildung 1 Tragen Sie die Adresse des Squid-Proxy und die zugehörige

Portnummer hier ein.

208 Web-Dienste

322

Um Fehler zu vermeiden sollten Sie überprüfen, ob der Squid Proxy-Server selbst

über eine funktionierende Internetverbindung verfügt. Wenn dennoch Fehler auf-

treten, dann lesen Sie bitte unbedingt die entsprechende Fehlermeldung im Brow-

serfenster.

Die Hauptkonfigurationsdatei des Squid-Proxy ist die Datei squid.conf. Sie finden

diese Konfigurationsdatei normalerweise unter /etc/squid.conf oder /etc/squid3/

squid.conf. Wenn Sie Squid aus einem tar-Ball heraus installiert haben, dann ist der

Dateipfad /usr/local/squid/etc/squid.conf. Sie sollten bezüglich der Grundkonfigura-

tion zumindest die folgenden Optionen in dieser Datei kennen:

� http_port legt fest, an welchem TCP-Port Squid lauschen soll. Der Standardwert ist

3128.

� cache_mem gibt an, wie viel Arbeitsspeicher für die Zwischenspeicherung verwen-

det werden darf (z. B. cache_mem 512 MB). In der Standardeinstellung werden ledig-

lich 8 MB verwendet.

� cache_dir konfiguriert den festplattenseitigen Cache des Proxys. Hierbei werden

(in dieser Reihenfolge) der Typ des Caches, der Verzeichnisname, die Cachegröße

in Megabyte, Anzahl der Unterverzeichnisse erster Ebene und die Anzahl der

Unterverzeichnisse zweiter Ebene festgelegt. Beispiel:

cache_dir ufs /usr/local/squid/var/cache 1024 16 256

In diesem Beispiel wird ein Cache vom Typ UFS verwendet. Das Hauptverzeichnis

des Caches ist /usr/local/squid/var/cache und wurde auf 1 GB beschränkt. In die-

sem Verzeichnis werden 16 Unterverzeichnisse erstellt und in diesen wiederum

jeweils 256 Unterverzeichnisse.

� reply_body_max_size limitiert die Größe eines reply-body und hindert Benutzer

dadurch daran, übergroße Dateien aus dem Internet herunterzuladen.

� access_log legt hauptsächlich den Pfad zu der Protokolldatei fest, in der Clientzu-

griffe protokolliert werden.

Cache auf Festplatte einrichten

In der Standardkonfiguration verwendet Squid keinen Festplattencache, wenn Sie

den Proxy aus einem tar-Ball heraus installiert haben. Damit der Cache initialisiert

werden kann, benötigt Squid Schreibrechte auf das Verzeichnis, in dem die Verzeich-

nishierarchie für den Cache erstellt werden soll. Da in der Testumgebung Sicherheit

keine Rolle spielt, können Sie einfach dieses Kommando verwenden:

root@arch-deb:/# chown nobody /usr/local/squid/var/logs/ -R

In der Datei squid.conf sollten Sie die Parameter für cache_dir Ihren persönlichen

Bedürfnissen anpassen. Besonders der erste numerische Wert, der die Cachegröße in

208.3 Implementierung eines Proxy-Servers

323

Megabyte festlegt, dürfte hier von Interesse sein. Die anderen Parameter von cache_

dir wurden bereits im vorangegangenen Abschnitt erläutert.

cache_dir ufs /usr/local/squid/var/cache 20000 16 256

Beenden Sie nun Squid, falls er noch laufen sollte, und führen Sie anschließend das

folgende Kommando aus, um den Cache neu zu initialisieren:

root@arch-deb:/usr/local/squid/var# /usr/local/squid/sbin/squid -z root@arch-deb:/usr/local/squid/var# 2011/06/26 15:24:44 kid1|2011/06/26 15:24:44 kid1| Creating Swap Directories2011/06/26 15:24:44 kid1| Making directories in /usr/local/squid/var/cache/002011/06/26 15:24:44 kid1| Making directories in /usr/local/squid/var/cache/012011/06/26 15:24:44 kid1| Making directories in /usr/local/squid/var/cache/02...2011/06/26 15:24:44 kid1| Making directories in /usr/local/squid/var/cache/0F

Die Initialisierung ist abgeschlossen, und Sie können Squid nun wieder normal star-

ten und verwenden.

Zugriffssteuerung mithilfe von ACLs

Die Zugriffssteuerung auf den Squid-Proxy wird über ACLs vorgenommen. In diesen

ACLs können Sie zunächst einige Definitionen vornehmen. Im weiteren Verlauf der

Konfiguration können Sie dann auf diese Definitionen (ACLs) zurückgreifen, um den

Zugriff jeweils zu erlauben oder zu verweigern. Typischerweise enthalten ACLs Grup-

pen von Quell-IP-Adressen, Ziel-IP-Adressen, URL-Listen oder Ports. Namen von

Zugriffssteuerungslisten können mehrfach verwendet werden. Wenn Sie Squid 3.x

selbst kompiliert haben, dann gibt es z. B. drei ACL-Einträge in der Datei squid.conf,

die für die Definition von privaten IPv4-Netzwerkadressen verwendet werden:

acl localnet src 10.0.0.0/8acl localnet src 172.16.0.0/12acl localnet src 192.168.0.0/16

Bis hierhin handelt es sich lediglich um eine Deklaration, in der alle privaten IPv4-

Adressen als mögliche Quelladressen (src) der ACL localnet hinzugefügt werden. In

einem ähnlichen Eintrag wird der lokale Computer selbst definiert:

acl localhost src 127.0.0.1/32 ::1

Ein paar Zeilen später wird dann für den lokalen Computer und die privaten IPv4-

Netzwerke der Zugriff auf den Proxy erlaubt:

http_access allow localnethttp_access allow localhost

208 Web-Dienste

324

Sie können den Zugriff auf Webseiten über reguläre Ausdrücke filtern. Dazu benöti-

gen Sie zunächst einen geeigneten ACL-Eintrag in der Datei squid.conf:

acl sperrliste url_regex "/usr/local/squid/etc/sperrliste"

Den zugehörigen Berechtigungseintrag sollten Sie vor andere Berechtigungseinträge

positionieren, weil vorangehende allow-Einträge sonst frühzeitig Zugriff gewähren,

so dass der Filter gar nicht erst greift.

http_access deny sperrlistehttp_access allow localnethttp_access allow localhost

Sie müssen jetzt nur noch die Datei /usr/local/squid/etc/sperrliste anlegen und

Schlagworte (jeweils in einer eigenen Zeile) eingeben, die in URLs nicht vorkommen

dürfen. Nach einem Neustart von Squid können Sie die Konfiguration mit einem

Browser testen.

Zum Abschluss der Zugriffssteuerung sollte immer der Zugriff für alle anderen

Clients verweigert werden. Ansonsten könnten böswillige Benutzer vom Internet aus

Ihren Proxy verwenden, um ihre Herkunft zu verschleiern und unter Ihrer Identität

z. B. Webserver attackieren. Die letzte Regel sollte also immer diese sein:

http_access deny all

Benutzer-Authentifizierung

Sie können den Zugriff auf einen Proxy einschränken, indem Sie eine Authentifizie-

rung konfigurieren. Die Benutzer werden dann beim Zugriff auf Webseiten aufgefor-

dert, einen Benutzernamen und ein Passwort einzugeben. Squid verfügt über

mehrere Authentifizierungs-Module, sodass Sie die Anmeldung z. B. über PAM,

Hinweis

Wenn Sie Squid paketbasiert installieren, dann wird in den meisten Fällen per Vor-

einstellung überhaupt kein Zugriff auf den Proxy möglich sein. Sie müssen dann

also die entsprechenden ACLs von Hand erstellen und den Zugriff erlauben.

Praxistipp

Wenn Sie den Zugriff auf einen Proxy häufig umkonfigurieren müssen oder wenn

eine recht komplexe Zugriffskonfiguration existiert, dann sollten Sie ein Frontend

verwenden, um nicht den Überblick zu verlieren. Eine gute Wahl ist hierfür Squid-

Guard. Diese Produkt ist aber nicht prüfungsrelevant.

208.3 Implementierung eines Proxy-Servers

325

LDAP, Windows-Domänen oder im einfachsten Fall über eine eigene Passwortdatei

abwickeln können. Die Verwendung einer Passwortdatei ähnelt der Konfiguration

der Basis-Authentifizierung von Apache. Führen Sie zunächst die folgenden Schritte

durch, um die Authentifizierungs-Komponenten nachzuinstallieren:

root@arch-deb:/# cd /usr/src/squid/squid-3.2.0.9/helpers/basic_auth/NCSAroot@arch-deb:/usr/src/squid/squid-3.2.0.9/helpers/basic_auth/NCSA/# makeroot@arch-deb:/usr/src/squid/squid-3.2.0.9/helpers/basic_auth/NCSA/#make install

Normalerweise kommt es bei der Installation zu keinerlei Komplikationen. Die

installierten Authentifizierungs-Module finden Sie jetzt im Verzeichnis /usr/local/

squid/libexec.

Genau wie bei der Apache Basis-Authentifizierung erstellen Sie als Nächstes eine

Passwortdatei mit Benutzernamen und den Kennwörtern.

root@arch-deb:/# cd /usr/local/squid/etcroot@arch-deb:/usr/local/squid/etc# htpasswd -c passwd williNew password:Re-type new password:

Bei der Erstellung weiterer Benutzer lassen Sie die Option -c (create) einfach weg. Es

würde sonst noch mal eine neue Datei erstellt werden und die bestehenden Benut-

zerkonten würden verloren gehen. Beispiel:

root@arch-deb:/usr/local/squid/etc# htpasswd passwd susiNew password:Re-type new password:

Die Passworte werden in der Passwortdatei verschlüsselt abgespeichert. Sie sollten

auf einem Produktionssystem trotzdem sicherstellen, dass Benutzer nicht das Recht

haben, diese Datei zu lesen.

root@arch-deb:/usr/local/squid/etc# cat passwdwilli:9EvUN84SDrJy6susi:5FMd5ieiINMf2

Hinweis

Sollten Sie Apache in der Zwischenzeit deinstalliert haben, dann verfügen Sie mögli-

cherweise nicht mehr über das Programm htpasswd. Sie können das Programm aber

bei Bedarf einzeln unter folgender Adresse aus dem Internet herunterladen.

http://www.squid-cache.org/htpasswd/

208 Web-Dienste

326

Damit die Basis-Authentifizierung funktioniert, sind einige Anpassungen an der

Datei squid.conf erforderlich. Fügen Sie zunächst in einer einzigen Zeile den folgen-

den Eintrag hinzu, um das Authentifizierungs-Modul zu laden:

auth_param basic program /usr/local/squid/libexec/basic_ncsa_auth /usr/local/squid/etc/passwd

Hierbei zeigt /usr/local/squid/libexec/basic_ncsa_auth den Pfad zum Authentifizie-

rungs-Modul und /usr/local/squid/etc/passwd die zu verwendende Passwortdatei an.

Es folgen ein paar Grundeinstellungen:

auth_param basic children 5auth_param basic realm Authentifizierung erforderlich!auth_param basic credentialsttl 8 hours

Der erste Parameter sorgt dafür, dass fünf Child-Prozesse gestartet werden, wie Sie

wahrscheinlich schon selbst vermutet haben. Mit dem zweiten Eintrag können Sie

eine Nachricht an den Benutzer übermitteln, wenn er sich anmeldet. Sie sehen das

Ergebnis in der Abbildung weiter unten. Der letzte Eintrag sorgt dafür, dass ein

Benutzer sich innerhalb von acht Stunden nur einmal authentifizieren muss. Nach

einem Browserneustart ist allerdings in jedem Falle eine neue Anmeldung fällig.

Als Nächstes müssen Sie der Datei squid.conf einen ACL-Eintrag hinzufügen, der die

Verwendung einer Authentifizierung voraussetzt:

acl users proxy_auth REQUIRED

Bei der Positionierung des Statements, das den soeben erstellten ACL-Eintrag ver-

wendet, ist Vorsicht geboten, was die Reihenfolge der Berechtigungsvergaben anbe-

langt. Wenn der Eintrag zu weit unten in der Konfiguration steht, könnte ein

Benutzer schon Zugriff erlangen, bevor die Authentifizierung überhaupt greift. Bei-

spiel:

http_access allow usershttp_access allow localnethttp_access allow localhost

Falsch wäre etwa:

http_access allow localnethttp_access allow localhosthttp_access allow users

Bei der falschen Konfiguration bekäme ein Benutzer bereits Zugriff aufgrund seiner

Position in einem lokalen Netz.

Sie können die Authentifizierung jetzt mit einem Webbrowser testen.

208.3 Implementierung eines Proxy-Servers

327

Abbildung 2 Authentifizierung bei einem Proxy-Server

Sollte der Authentifizierungs-Dialog nicht erscheinen, und Sie können den Proxy

ohne Authentifizierung verwenden, prüfen Sie noch mal die Reihenfolge der Berech-

tigungseinträge in der Datei squid.conf. Schieben Sie den Eintrag http_access allow

users im Zweifelsfall weiter nach oben.

477

Übungsfragen zu LPI 117-202

Die folgenden Fragen sollen Ihnen helfen, sich an die Art der Fragestellung in der

wirklichen Prüfung zu gewöhnen. Es macht keinen Sinn, die Fragen einfach auswen-

dig zu lernen, denn es sind keine Prüfungsfragen. Sie sollten versuchen, die Antwor-

ten zu jeder einzelnen Frage zu verstehen. Deshalb werden sowohl die richtigen als

auch die falschen Antworten im Lösungsteil des Buchs detailliert besprochen. Das

Üben mit diesen Fragen soll Sie auch an die Herangehensweise an eventuell Ihnen

unbekannte Themen nahe bringen. Ein unbekanntes Kommando in einer Frage ist

nämlich noch längst kein Grund, eine Frage einfach nicht zu beantworten. Oft führt

ein wenig Logik oder das Ausschlussverfahren dennoch zum Ziel.

Fragen

Frage 1:

Sie verwalten eine Apache-Webserver, auf dem vertrauliche Dokumente gespeichert

sind. Um die Verwaltung zu vereinfachen, wollen Sie die Benutzer, die auf den Server

zugreifen dürfen, in einer Gruppe zusammenfassen. Welche Datei werden Sie erstel-

len bzw. bearbeiten?

� A: /etc/passwd

� B: /etc/groups

� C: .htaccess

� D: .htgroup

� E: httpd.conf

Frage 2:

Sie verwenden zu Testzwecken einen Apache-Webserver auf einer Workstation. Sie

müssen den Zugriff aus dem Netzwerk verhindern. Mit welcher Direktive erreichen

Sie das?

� A: Port 81

� B: Listen 127.0.0.1:80

� C: Listen 82

� D: ServerType standalone

� E: ServerType inetd

Übungsfragen zu LPI 117-202

478

Frage 3:

Sie stellen bei einem hoch frequentierten Apache-Webserver fest, dass der Zugriff auf

Webseiten nur verzögert erfolgt. CPU-Ressourcen und Arbeitsspeicher sind jedoch nicht

ausgelastet. Wie erhöhen Sie die Serverperformance? (Wählen Sie zwei Antworten!)

� A: Fügen Sie dem Server weitere IP-Adressen hinzu.

� B: Erhöhen Sie den Wert für MinSpareServers.

� C: Legen Sie den ServerType mit standalone fest.

� D: Legen Sie den ServerType mit inetd fest.

� E: Konfigurieren Sie einen anderen Port.

Frage 4:

Sie müssen einen Apache-Webserver neu starten. Sie wollen hierfür ein Skript ver-

wenden, das ausdrücklich für solche administrativen Eingriffe gedacht ist. Welches

Kommando werden Sie verwenden? (Geben Sie ggf. benötigte Optionen mit an!)

Frage 5:

Sie müssen einer existierenden Passwortdatei eines Apache-Webservers einen

neuen Benutzer namens ritchie hinzufügen. Wie lautet das richtige Kommando,

wenn der aktuelle Pfad dem ServerRoot entspricht?

� A: bin/htpasswd passwortdatei ritchie

� B: bin/htpasswd -c passwortdatei ritchie

� C: useradd ritchie -m

� D: adduser ritchie

� E: echo ritchie >> .htaccess

Frage 6:

Welche Direktive eines Apache-Webservers legt fest, welches Verzeichnis aus der

Sicht eines Benutzers das Hauptverzeichnis des Webservers ist?

� A: ServerRoot

� B: ApacheRoot

� C: DocumentRoot

� D: Path

� E: httpd-Path

Übungsfragen zu LPI 117-202

512

Antworten und Erklärungen zu den Prüfungsfragen

Hier finden Sie die Erläuterungen zu allen Fragen des zweiten Teils. Sie sollten unbe-

dingt auch die Kommentare zu den falschen Antworten lesen. Einige Fakten werden

hier nicht zufällig mehrfach erwähnt, sondern weil wesentliche Prüfungsinhalte auf

diese Weise besser in Ihrem Gedächtnis haften bleiben.

Frage 1:

D: .htgroup ist die richtige Datei für diese Aufgabe. Hier können Sie Benutzer, die

zuvor in einer Passwortdatei angelegt wurden, gruppieren. Sie können die Datei auch

anders nennen, aber .htgroup ist der übliche Name.

zu A: /etc/passwd enthält normale Benutzerkonten.

zu B: /etc/groups enthält Benutzergruppen, die aber üblicherweise nicht zur Zugriffs-

steuerung auf Webserver verwendet werden.

zu C: .htaccess wird ebenfalls zur Zugriffssteuerung auf Apache-Server verwendet. Sie

müssen im vorliegenden Fall sogar die .htgroup-Datei in der Datei .htaccess als Auth-GroupFile angeben.

zu E: httpd.conf ist die Hauptkonfigurationsdatei des Apache-Servers.

Frage 2:

B: Listen 127.0.0.1:80 bewirkt, dass httpd nur noch an der Loopback-Adresse

lauscht. Ein Zugriff vom Netzwerk aus ist dann nicht mehr möglich.

zu A: Port 81 wird bei älteren Apache-Versionen verwendet, um den Server mit einem

alternativen Port zu konfigurieren. Aber der Server wäre weiterhin vom Netzwerk

aus erreichbar.

zu C: Listen 82 sorgt dafür, dass Apache an Port 82 lauscht. Hierbei werden aber wei-

terhin alle Netzwerkschnittstellen verwendet.

zu D: ServerType standalone klingt natürlich wie eine sehr gute Antwort, bewirkt aber

lediglich, dass Apache alleinstehend, also ohne vorgeschalteten Superdaemon

(inetd), läuft. Das ist übrigens die Standardeinstellung.

zu E: ServerType inetd teilt dem Webserver mit, dass er durch inetd aufgerufen wird.

Eine solche Konfiguration sollte man übrigens aus Gründen der schlechteren Perfor-

mance vermeiden.

Frage 3:

B: »Erhöhen Sie den Wert für MinSpareServers.« Diese Maßnahme erhöht die Anzahl

der Prozesse, die auf eingehende Verbindungen lauschen. Benutzer können so

schneller bedient werden.

Antworten und Erklärungen zu den Prüfungsfragen

513

C: »Legen Sie den ServerType mit standalone fest.« Das ist zwar die Standardeinstel-

lung, muss aber gegenüber den anderen Antworten in Erwägung gezogen werden –

insbesondere, weil die anderen Antworten entweder keine oder sogar eine negative

Auswirkung auf die Serverleistung haben.

zu A: »Fügen Sie dem Server weitere IP-Adressen hinzu.« Das bringt nichts in Bezug

auf die Leistung des Servers.

zu D: »Legen Sie den ServerType mit inetd fest.« Das verzögert sogar die Antwort bei

jedem Benutzerzugriff.

zu E: »Konfigurieren Sie einen anderen Port.« Das bringt nichts in Bezug auf die Leis-

tung des Servers.

Frage 4:

apachectl restart ist die einzige akzeptable Antwort auf diese Frage. Es gibt natürlich

auch andere Methoden, Apache neu zu starten, aber hier war ausdrücklich nach dem

dafür vorgesehenen Skript gefragt.

Frage 5:

A: bin/htpasswd passwortdatei ritchie ist richtig, wenn Sie einen Benutzer einer

existierenden Passwortdatei hinzufügen wollen. Da der aktuelle Pfad ServerRoot ent-

spricht, muss dem htpasswd-Kommando der relative Pfad bin/ vorangestellt werden.

zu B: bin/htpasswd -c passwortdatei ritchie ist hier falsch, weil die Option -c nur bei

der Erstellung einer neuen Passwortdatei verwendet wird.

zu C und D: useradd ritchie -m und adduser ritchie sind falsch, weil diese Komman-

dos zur Erstellung normaler Benutzerkonten verwendet werden und nicht für Apa-

che-Benutzer in Passwortdateien.

zu E: echo ritchie >> .htaccess ist völlig falsch, weil in dieser Datei keine Benutzer-

konten angelegt werden. Es wird hier lediglich die Passwortdatei angegeben.

Frage 6:

C: DocumentRoot ist die Direktive, die das Hauptverzeichnis für den Kontent des Web-

servers angibt.

zu A: ServerRoot ist das Serverhauptverzeichnis, in dem sich auch Module und Kon-

figurationsdateien des Servers befinden. Hierauf darf ein Benutzer natürlich nicht

zugreifen.

zu B, D und E: ApacheRoot, Path und httpd-Path sind einfach frei erfunden, also falsch.

Index

543

Index

$HISTSIZE ....................................................................462

$PS1................................................................................462

.bashrc .......................................................................... 461

.config..............................................................................25

.forward ....................................................................... 387

.htaccess ............................................................306, 307

.htgroup .......................................................................307

/bin ................................................................................ 186

/bin/hostname ...........................................................171

/bin/login ...................................................................467

/boot ................................................... 21, 34, 39, 79, 186

/boot/boot.b ..............................................................443

/boot/grub.....................................................................57

/boot/grub/............................................................... 440

/boot/grub/grub.cfg ..................................................35

/boot/grub/stage2.................................................. 440

/boot/grub2 ...............................................................442

/boot/initrd......................................................... 29, 445

/dev ........................................................................117, 186

/dev/cdrom ..................................................................117

/dev/disk/by-uuid ......................................................72

/dev/fd0 ...................................................................... 189

/dev/ft0 .......................................................................190

/dev/hd ..........................................................................117

/dev/hda........................................................................117

/dev/hda1 ..................................................................... 118

/dev/hda2 .................................................................... 118

/dev/hda3 .................................................................... 118

/dev/hda5 .................................................................... 118

/dev/hdb .......................................................................117

/dev/hdc ........................................................................117

/dev/hdd .......................................................................117

/dev/mapper .............................................................. 131

/dev/nft0 ....................................................................190

/dev/nst0 ....................................................................190

/dev/sd...........................................................................117

/dev/sda ........................................................................117

/dev/sdb ........................................................................117

/dev/st0 .............................................................. 190, 196

/dev/zero ...................................................................... 85

/etc................................................................................. 186

/etc/aliases .................................................................386

/etc/auto.master ....................................................... 90

/etc/bashrc ................................................................. 461

/etc/bind/db.root ................................................... 204

/etc/bind/named.conf...........................................203

/etc/courier ................................................................396

/etc/crontab ......................................................474, 476

/etc/default/grub.....................................................442

/etc/dhclient.conf....................................................350

/etc/dovecot ..............................................................394

/etc/exports ................................................................341

/etc/fail2ban .............................................................. 433

/etc/false .................................................................... 470

/etc/fstab..................... 63, 64, 66, 67, 68, 85, 89, 193

/etc/group ......................................................... 169, 472

/etc/grub.d........................................................... 58, 442

/etc/HOSTNAME ...................................................... 170

/etc/hostname .......................................................... 170

/etc/hosts........................................................... 169, 201

/etc/hosts.allow.............................170, 348, 420, 425

/etc/hosts.deny ......................................170, 420, 425

/etc/inetd.conf .................................................426, 427

/etc/init.d .................................................................51, 52

/etc/inittab ............................................................49, 50

/etc/issue .....................................................................176

/etc/issue.net.............................................................. 177

/etc/known_hosts ....................................................421

/etc/ld.so.cache........................................................460

/etc/ld.so.conf ..........................................................460

/etc/ldap/ldap.conf ................................................. 359

/etc/lilo.conf ....................................................... 29, 443

/etc/login.defs.......................................................... 468

/etc/lvm........................................................................122

/etc/lvm/cache/.cache............................................122

/etc/mail/local-host-names ................................ 379

/etc/mailname ......................................................... 380

/etc/mdadm/mdadm.conf ..................................109

/etc/motd..................................................................... 177

/etc/mtab ......................................................................69

/etc/named.boot ......................................................210

/etc/named.conf ............................................203, 204

/etc/network...............................................................165

/etc/nologin.............................................................. 420

/etc/nsswitch.conf ................................ 169, 370, 373

/etc/openldap ........................................................... 358

/etc/openvpn .............................................................158

/etc/pam.conf ...........................................................368

/etc/pam.d ..................................................................368

/etc/passwd..................................... 169, 367, 469, 471

/etc/postfix ............................................................... 380

/etc/procmailrc ....................................................... 390

/etc/profile ................................................................ 468

/etc/proftpd ................................................................415

Index

544

/etc/pump.conf ........................................................350

/etc/pure-ftpd ............................................................412

/etc/rc.boot ................................................................467

/etc/rc.d ....................................................................51, 52

/etc/rc.local ................................................................467

/etc/resolv.conf ........................................................ 168

/etc/rsyncd.conf....................................................... 199

/etc/samba/smbpasswd ....................................... 334

/etc/security/limits.conf ...................................... 372

/etc/security/limits.d............................................. 372

/etc/security/opasswd........................................... 372

/etc/services ..............................................................401

/etc/shadow ................................................................471

/etc/squid.conf ......................................................... 322

/etc/squid3/squid.conf.......................................... 322

/etc/ssh/ssh_config ............................................... 420

/etc/ssh/ssh_host_dsa_key .................................421

/etc/ssh/ssh_host_dsa_key.pub ........................421

/etc/ssh/ssh_host_key .......................................... 422

/etc/ssh/ssh_host_key.pub ................................. 422

/etc/ssh/ssh_host_rsa_key ................................. 422

/etc/ssh/ssh_host_rsa_key.pub ........................ 422

/etc/ssh_known_hosts......................................... 420

/etc/sshrc ................................................................... 420

/etc/sysconfig/iptables .........................................205

/etc/sysconfig/network-scripts/ ........................167

/etc/sysctl.conf ...............................................400, 458

/etc/syslog.conf........................................................ 472

/etc/udev ................................................................... 100

/etc/udev/rules.d......................................................101

/etc/udev/udev.conf ...............................................101

/etc/vsftpd.conf........................................................410

/home........................................................................... 186

/lib.................................................................................. 186

/lib/modules..........................................................23, 39

/lib/security ...............................................................368

/mnt ...............................................................................187

/opt.................................................................................187

/proc........................................................................ 78, 187

/proc/config.gz ............................................................27

/proc/kmsg ................................................................448

/proc/mdstat .............................................................108

/proc/modules.....................................................40, 42

/proc/partitions ......................................................... 78

/proc/swaps .................................................................86

/proc/sys/kernel ........................................................ 45

/proc/sys/net/ipv4 ................................................400

/proc-Dateisystem .................................................. 455

/root ...............................................................................187

/sbin ...............................................................................187

/sbin/mingetty ...........................................................50

/tmp ...............................................................................187

/usr .................................................................................187

/usr/local/apache2 .................................................. 301

/usr/local/apache2/conf ...................................... 302

/usr/local/apache2/conf/httpd.conf .............. 302

/usr/local/squid ...................................................... 320

/usr/src ............................................................ 21, 39, 181

/usr/src/ ........................................................................ 23

/usr/src/linux .................................................21, 33, 39

/usr/src/linux/Documentation............................21

/var .................................................................................187

/var/log/fail2ban.log ..............................................434

/var/log/maillog ...................................................... 379

/var/log/messages .......................................... 175, 447

/var/log/syslog ................................................. 175, 447

/var/named ................................................................207

/var/named/named.ca ......................................... 204

/var/spool/cron........................................................476

~./ssh/known_hosts................................................421

~/.bash_login............................................................ 468

~/.bash_profile ........................................................ 468

~/.bashrc..................................................................... 468

~/.procmailrc ............................................................ 390

~/.profile..................................................................... 468

~/.ssh/authorized_keys ........................................422

~/.ssh/id_dsa ............................................................. 423

~/.ssh/id_dsa.pub .................................................... 423

~/.ssh/id_rsa ..............................................................423

~/.ssh/id_rsa.pub ..................................................... 423

~/.ssh/ssh_know_hosts ....................................... 420

A

ACCEPT........................................................................ 405

access.conf ................................................................. 302

access.db............................................................. 378, 379

access.log...................................................................... 311

ACL (Bind) ................................................................... 222

ACL (squid)......................................................... 323, 324

action.d ........................................................................ 433

Active Directory ........................................................357

Ad-hoc Netzwerke ...................................................140

agetty ............................................................................467

Aktive Partition ......................................................... 80

Aktiver Modus .........................................................409

Amanda ....................................................................... 196

anonymous ................................................................410

Apache.........................................................................300

apache2 ........................................................................... 51

apache2ctl .................................................................. 304

Index

545

apachectl .................................................................... 304

AppArmor................................................................... 224

arch/i386/boot/bzImage ........................................ 28

arp ................................................................................... 137

ARP-Cache.................................................................... 137

Auslagerungsdatei ....................................................70

authorized_keys ...................................................... 423

auto .................................................................................68

auto.master ................................................................. 90

auto.misc...................................................................... 90

autofs........................................................................89, 91

B

BackupPC .................................................................... 196

Backupstrategien ......................................................187

Bacula ........................................................................... 196

Bandlaufwerk ............................................................ 189

Bedingte Weiterleitung ..........................................217

Benutzerkonten (ldap)........................................... 362

Bibliotheken ..............................................................459

BIND ....................................................................202, 204

binrpm-pkg ...................................................................37

BIOS ....................................................................... 80, 438

Birthday-Attacke ...................................................... 228

blkid ................................................................................. 71

Bootloader ..................................................................439

Bootpartition.............................................................442

Bugtraq ........................................................................428

bunzip2 .........................................................................185

bzcat ...............................................................................185

bzip2...................................................................... 184, 185

C

Cache (squid) ............................................................. 322

Cache-Only-DNS.......................................................203Cache-Poisoning ...................................................... 222

C-Compiler ....................................................................25

cdrecord......................................................................... 93CD-ROM .........................................................................117

CDRW............................................................................ 189

CERT ..............................................................................429

cfdisk............................................................................... 78chkconfig .......................................................................53

chroot ........................................................................... 223

CIAC...............................................................................429CIDR-Notation .......................................................... 144

co .......................................................................................25

configure ...................................................................... 181

Courier ............................................................... 394, 396cpio ................................................................................190

cron ...............................................................................474

cron.allow ...................................................................476cron.deny ....................................................................476

crond.............................................................................474

crontab ................................................................474, 476cryptoloop ....................................................................99

cryptsetup.....................................................................99

CTRL-ALT-DEL..............................................................50

Cyrus .............................................................................394

D

Datensicherung ........................................................ 186dd ............................................................................. 85, 191debugfs .......................................................................... 76debugreiserfs ................................................................77defaults ..........................................................................69Delivermail................................................................. 376depmod.......................................................................... 44devfs ............................................................................. 100device.map ................................................................... 58dhclient........................................................................350DHCP.............................................................................349DHCP-Bereiche ......................................................... 352dhcpcd ..........................................................................350DHCP-Clients .............................................................350dhcpd.conf...................................................................351dhcpd.leases............................................................... 354DHCP-Relay-Agent ...................................................355DHCP-Server ...............................................................351dhcrelay ....................................................................... 356Differenzielles Backup ........................................... 188dig ...........................................................................173, 174Distinguished Name.............................................. 360dm_mod........................................................................99dma.................................................................................451DM-Crypt ......................................................................99dmesg .....................................................35, 60, 175, 448DNAT...................................................................405, 407DNS .......................................................................201, 202DNSSEC ........................................................................ 225dnssec-keygen........................................................... 225DocumentRoot ...............................................302, 304dosfsck ........................................................................... 74Dovecot........................................................................394dovecot.conf ..............................................................394dracut ..............................................................................37DROP............................................................................ 405DSA-Schlüssel ............................................................422

Index

546

dump ......................................................................68, 193

dumpe2fs ...................................................................... 76

DVD-Laufwerk.............................................................117

DVDRW ........................................................................ 189

Dynamic Link Library ............................................459

dynamically linked .................................................459

E

e2fsck ...................................................................... 73, 128

Endzylinders................................................................ 79

error.log ........................................................................ 311

ethereal ......................................................................... 155

evice Mapper .............................................................. 131

exec .................................................................................68

Exim ...............................................................................381

exim .............................................................................. 376

exim.conf ....................................................................384

export ...........................................................................463

exportfs ....................................................................... 342

ext2.............................................................. 73, 75, 80, 82

ext3 .............................................................. 73, 75, 80, 82

ext4...................................................................................73

F

facility........................................................................... 472

fail2ban ........................................................................ 433

fail2ban.conf ..............................................................434

FAT-32 ..............................................................................81

fdisk..................................................................78, 84, 105

Festplatte ......................................................................117

filter.d ........................................................................... 433

Fingerprint ..................................................................421

Floppystreamer ........................................................190

FORWARD .................................................................. 404

forwarders ................................................................. 206

Forward-Lookup-Zonen ....................... 208, 211, 214

FQDN ............................................................................ 169

free...................................................................................86

fsck......................................................... 61, 66, 68, 73, 75

fsck.cramfs.....................................................................73

fsck.ext2..........................................................................73

fsck.ext3..........................................................................73

fsck.jfs ............................................................................. 74

fsck.minix ......................................................................73

fsck.msdos .................................................................... 74

fsck.reiserfs ...................................................................73

fsck.vfat.......................................................................... 74

fsck.xfs ........................................................................... 74

FTP ................................................................................409

FTP-Server..................................................................409

G

gadmin-proftpd.........................................................415

gcc ......................................................................25, 34, 182

Gerätedateien............................................................. 117

getty ..............................................................................467

grpquota ........................................................................68

GRUB.............................................................57, 438, 440

GRUB (Legacy) ........................................................... 441

GRUB 2 .........................................................................442

GRUB Shell.................................................................... 59

GRUB Stages.............................................................. 440

grub.cfg ................................................................. 28, 442

grub.conf ..................................................................... 441

grub2-mkconfig ..................................................37, 442

grub-mkconfig ....................................................37, 442

gunzip........................................................................... 184

gzip ........................................................................ 183, 184

H

halt....................................................................................55

Hardlink...................................................................... 464

Hardwarerouter.......................................................400

hdparm ......................................................................... 112

hide files ...................................................................... 332

host................................................................................. 173

host (Kommando) .................................................... 173

Hostkey...............................................................420, 421

Hostname .................................................................... 171

Hostroute.....................................................................145

hosts.allow................................................................. 420

hosts.deny ................................................................. 420

HPFS .................................................................................81

htdocs .......................................................................... 302

htpasswd .....................................................................305

http

//lpievent.lpice.eu/ ................................................ 15

//www.isc.org ...............................................350, 351

//www.linuxbase.org........................................... 56

//www.linuxfoundation.org............................. 56

//www.samba.org............................................... 338

httpd .................................................................. 300, 302

httpd.conf ......................................................... 302, 303

HTTPS ................................................................... 313, 314

Index

547

I

ICMP-Anfragen ..........................................................147

id_rsa ............................................................................ 423

id_rsa.pub ................................................................... 423

ifconfig ................................................................. 134, 142

ifconfig (IPv4) .............................................................143

ifconfig (IPv6)............................................................ 144

IMAP ............................................................................. 376

IMAP4 ........................................................................... 393

inetd ..............................................................................426

inetd.conf.................................................................... 427

init ............................................... 47, 48, 49, 50, 55, 442

initdefault ..................................................................... 49

initramfs ..............................................................29, 446

initrd .............................................................................444

inittab ....................................................................49, 442

Inkrementelles Backup ......................................... 188

INPUT .......................................................................... 403

insmod .....................................................................42, 43

interaktive Shell .......................................................468

interfaces .................................................................... 166

interrupts.....................................................................451

ioports ...........................................................................451

ip (Kommando) .................................................138, 152

IP-Forwarding........................................................... 408

iptables ...............................................................402, 431

iptables-restore ....................................................... 408

iptables-save ............................................................. 408

IRIX ...................................................................................81

isc.org ...........................................................................202

ISO9660 .........................................................................91

iwconfig ........................................................................139

iwlist.............................................................................. 140

J

Jail .................................................................................. 223

jail.conf ........................................................................434

Joliet ................................................................................ 92

journal.............................................................................75

K

Kerberos ...................................................................... 367

Kernel ................................................................20, 22, 38

Kernelparameter......................................................442

kinitrd..............................................................................35

klogin............................................................................ 427

Kopierbackup ............................................................ 188

L

lame-servers ............................................................. 208

LDAP......................................................................357, 367

ldapadd ............................................................... 361, 362

LDAP-Client................................................................ 359

ldapdelete ...................................................................366

ldapmodify ........................................................ 361, 366

ldappasswd................................................................. 365

ldapsearch..........................................................363, 364

LDAP-Servers ............................................................. 358

ldconfig .......................................................................460

ldd ..................................................................................459

LDIF ............................................................................... 359

LDIF-Dateien .............................................................. 365

Lease-Vorgang...........................................................350

libncurses5-dev........................................................... 34

libpam-ldap ................................................................ 373

libpam-ldapd ............................................................. 373

libwrap ......................................................................... 427

Lilo .................................................................................438

lilo.conf ........................................................................443

Linus Torvalds....................................................... 19, 39

Linux Foundation...................................................... 56

Linux Standard Base ................................................. 56

Linux Unified Key Setup.........................................99

ln.................................................................................... 464

login ............................................................................. 468

Loginprozess..............................................................467

Login-Shell................................................................. 468

Logische Volumen.................................................... 121

loop-aes..........................................................................99

LSB ................................................................................... 56

lsdel ................................................................................. 76

lsdev ...............................................................................451

lsmod .......................................................................40, 43

lsof .................................................................60, 149, 453

lspci .............................................................................. 450

lsusb ............................................................................. 450

ltrace ............................................................................. 453

LUKS ................................................................................99

lvcreate..........................................................................125

lvdisplay ...................................................................... 126

lvextend....................................................................... 126

LVM .........................................................................81, 120

lvm.conf........................................................................122

lvm2 ............................................................................... 121

LVM-Konfiguration.................................................. 121

LVM-Snapshot........................................................... 129

lvreduce ........................................................................128

lvremove ..................................................................... 130

Index

548

M

Mail Transfer Agent ................................................ 376

Mail User Agent........................................................ 376

Mail-Aliasse ................................................................386

Maildir.......................................................................... 392

maildirmake .............................................................. 393

Maildrop......................................................................394

mailq .............................................................................388

main.cf ........................................................................ 380

Major Release ...............................................................23

make ........................................................................25, 181

make bzImage ............................................................. 28

make clean.................................................................... 28

make cloneconfig .......................................................27

make config ..................................................................25

make deb-pkg...............................................................35

make dep....................................................................... 28

make gconfig ............................................................... 26

make install.................................................................182

make menuconfig ...............................................26, 33

make modules ............................................................ 28

make modules_install .......................................28, 34

make mrproper .......................................................... 29

make oldconfig............................................................27

make xconfig............................................................... 26

make zImage ............................................................... 28

Makefile ........................................................... 25, 33, 181

makemap .................................................................... 378

Map-Installer .............................................................444

MASQUERADE ................................................402, 405

Master Boot Record ............................... 117, 438, 442

master.cf..................................................................... 380

MaxSpareServers ......................................................312

Mbox............................................................................. 392

MBR ....................................................438, 439, 442, 443

md_mod...................................................................... 105

MDA .....................................................................376, 389

mdadm ............................................................... 105, 107

mdadm.conf ..............................................................109

menu.lst ................................................................58, 441

Microkernel.................................................................. 38

mingetty........................................................................ 49

Minix ........................................................................ 19, 39

Minor Release...............................................................23

MinSpareServers ............................................. 304, 312

mkdosfs ..........................................................................81

mke2fs ............................................................... 77, 82, 83

mkfs .......................................................................... 81, 82

mkfs.cramfs ................................................................. 82

mkfs.ext2 .......................................................................81

mkfs.ext3........................................................................81

mkfs.jfs........................................................................... 82

mkfs.msdos ...................................................................81

mkfs.ntfs ........................................................................81

mkfs.reiserfs .................................................................81

mkfs.vfat.........................................................................81

mkfs.xfs ..........................................................................81

mkinitramfs ..................................................................35

mkinitrd ........................................................ 29, 37, 446

mkisofs.....................................................................91, 94

mkswap................................................................... 84, 85

mod_auth .................................................................. 308

mod_perl..................................................................... 310

mod_php.................................................................... 308

mod_ssl ........................................................................313

modinfo..........................................................................41

modprobe ..................................................................... 43

modprobe.conf ........................................................... 45

modprobe.conf.local ................................................ 45

Module ........................................................................ 308

modules.conf............................................................... 45

modules.dep ................................................................ 44

Monolithische Kernel .............................................. 38

mount............................................................... 64, 65, 66

mountd ................................................................341, 344

mounten .......................................................................64

Mountpoint .................................................................64

mt ................................................................................... 196

MTA .......................................................................376, 377

MUA .............................................................................. 376

N

named ......................................................................... 204

named.conf ...................................................... 203, 207

NAT ............................................................................... 407

nc .................................................................................... 150

NCSA ............................................................................300

ncurses .................................................................... 26, 34

ncurses-devel .............................................................. 36

net (samba).................................................................336

NetBIOS........................................................................330

netcat ..........................................................150, 385, 430

netstat .......................................................................... 146

Neustart ......................................................................... 54

newaliases...................................................................386

NFS ......................................................................... 66, 340

nfs ....................................................................................66

NFS-Client ................................................................... 343

NFS-Server ...................................................................341

Index

549

nfsstat...........................................................................346

Nicht interaktive Shell ...........................................468

Nicht rückspulend...................................................190

nmap.............................................................................. 153

nmbd ............................................................................330

nmblookup ................................................................ 334

noauto............................................................................68

noexec............................................................................68

Normalbackup .......................................................... 188

nosuid ............................................................................68

nouser ............................................................................69

nslookup .................................................... 173, 174, 206

nss_ldap .......................................................................373

NTFS .................................................................................81

O

OpenLDAP ...................................................................357

OpenLDAP-Server.................................................... 358

openssl .......................................................................... 315

OpenVAS .....................................................................436

Openvpn.......................................................................158

openvpn .......................................................................158

Organisationseinheit ..............................................361

OUTPUT ...................................................................... 404

P

Paging.............................................................................70

PAM ............................................................................... 367

pam_cracklib .............................................................. 371

pam_cracklib.so .......................................................369

pam_ldap.so .......................................................371, 373

pam_limits ......................................................... 371, 372

pam_listfile ........................................................ 371, 372

pam_unix .................................................................... 371

pam_unix.so..............................................................369

Partition ........................................................................ 79

Partitione ...................................................................... 78

Partitionstabelle........................................80, 117, 439

Passiver Modus........................................................ 409

passwd.......................................................................... 472

patch ...............................................................................30

Patchlevel ..................................................................... 24

PATH ............................................................................. 461

Perl................................................................................ 308

PHP ............................................................................... 308

Physikalische Volumen.......................................... 121

PID 1................................................................................. 47

ping.................................................................................147

ping6............................................................................. 148

POP ................................................................................ 376

POP3 ..............................................................................393

Portforwarding ........................................................ 407

Portlistener .................................................................431

portmap........................................................................341

Portscanner................................................................. 153

POSIX-Shell................................................................ 468

POST ..............................................................................438

Postfix .......................................................................... 379

postfix .......................................................................... 376

POSTROUTING ......................................................... 404

Power On Self Test...................................................438

poweroff .........................................................................55

prepare-all......................................................................27

PREROUTING ............................................................ 404

Primary IDE ................................................................. 117

Procmail ......................................................................389

ProFTPD ........................................................................415

proftpd.conf ................................................................415

promiskuitiver Modus ...........................................156

Protokolldateien ......................................................447

Proxy-Server .............................................................. 319

ps ...................................................................................... 48

pstree .............................................................................. 48

Pulled Pork .................................................................436

pump ............................................................................350

Pure-FTPd.....................................................................412

putty.............................................................................. 419

pvcreate ........................................................................124

pvdisplay ......................................................................124

Q

qmail ............................................................................. 376

Quellen........................................................................... 39

Queues .........................................................................388

R

RAID .............................................................................. 103

RAID-Arrays ............................................................... 107

RAID-Level ..................................................................104

reboot ..............................................................................55

REDIRECT ................................................................... 405

Redirect-D ....................................................................317

reiserfs........................................................................... 80

reiserfstune ...................................................................77

Index

550

REJECT ..........................................................................405

Rekursion einschränken........................................221

Relay-Server ................................................................377

Remote-Shell .............................................................468

reshape........................................................................... 111

resize2fs ........................................................ 111, 127, 128

respawn .........................................................................50

restore ..................................................................193, 194

Reverse-Lookup-Zone ........................................... 209

rmmod .....................................................................42, 43

rndc .....................................................................206, 207

ro ......................................................................................68

Rockridge ...................................................................... 92

ROM ..............................................................................438

Root-Server ......................................................202, 209

route ..................................................................... 135, 144

Router...........................................................................399

Routing-Tabelle .........................................................136

rpc.mountd .................................................................341

rpcinfo.......................................................................... 345

RPC-Portmapper .......................................................341

RSA-Key ....................................................................... 422

rsync ..............................................................................197

rsync-Dämon............................................................. 199

rückspulend ...............................................................190

Runlevel...................................................................47, 48

runlevel.......................................................................... 54

Runlevelwechsel ........................................................ 54

rw .....................................................................................68

S

Samba ...........................................................................330

Sandbox....................................................................... 223

SCSI .................................................................................. 78

SCSI Laufwerke............................................................117

SCSI Streamer ............................................................190

SCSI-Geräte...................................................................115

sdparm ...........................................................................115

Secondary IDE .............................................................117

Sekundäre Zonen......................................................215

SELinux ........................................................................ 224

Sendmail ..................................................................... 376

sendmail.cf ..................................................................377

sendmail.mc ...............................................................377

ServerRoot ................................................................. 304

ServerType................................................................. 304

sfdisk..............................................................................110

Shared Object ............................................................459

showmount................................................................344

sh-Shell........................................................................ 468

shutdown ..................................................50, 55, 75, 177

Sicherungsarten ....................................................... 188

slapd .............................................................................. 358

slapd.conf.................................................................... 358

slurpd............................................................................ 358

Smarthost ....................................................................377

SMB................................................................................330

smb.conf.......................................................................331

smbclient ....................................................................339

smbd .............................................................................330

smbfs .....................................................................66, 339

smbmount..................................................................339

smbpasswd................................................................. 334

smbstatus ................................................................... 333

smbusers ............................................................. 331, 333

SMTP .....................................................................377, 385

Snapshot...................................................................... 129

Snapshotvolumen ................................................... 129

SNAT....................................................................405, 407

Snort ............................................................................. 435

Softlink........................................................................ 464

Softlinks..........................................................................52

Software-RAID........................................................... 105

Softwarerouter.........................................................400

sparedisk ......................................................................110

Split-Brain ................................................................... 227

Split-DNS-Konfiguration ......................................228

Split-Horizon ............................................................. 227

Split-View ....................................................................228

Squid ............................................................................. 319

squid.conf ................................................................... 322

srm.conf...................................................................... 302

SSH.........................................................................416, 417

ssh_config.................................................................. 420

ssh_known_hosts................................................... 420

ssh-add .........................................................................424

ssh-agent .....................................................................424

sshd .......................................................................417, 419

sshd_config ................................................................ 419

ssh-keygen.................................................421, 422, 423

sshrc ............................................................................. 420

SSH-Tunnel................................................................. 418

SSID ...............................................................................140

SSL ...................................................................................313

SSLCertificateFile ......................................................315

SSLCertificateKeyFile...............................................315

stable............................................................................... 23

Standardgateway ..................................................... 136

Startscripten .................................................................52

StartServers .................................................................312

Index

551

Startzylinder ................................................................ 79

static.key ......................................................................158

statically linked ........................................................459

strace..............................................................................451

stream .......................................................................... 427

strings........................................................................... 452

submit.mc................................................................... 378

suid ..................................................................................68

Superblocks.................................................................. 76

Superdaemon............................................................426

Superserver ................................................................426

swap .................................................................................81

Swapdatei...................................................................... 85

swapoff..................................................................... 71, 84

swapon ..................................................................... 71, 84

Swappartition.............................................................. 84

SWAT............................................................................. 338

sync .................................................................................70

sysctl .............................................................................. 119

syslogd ......................................................................... 472

System.map ........................................................... 21, 34

T

Tanenbaum, Andrew S. ..................................... 19, 39

tar ...................................................33, 180, 182, 195, 196

tcpd................................................................................ 170

tcpdchk ...............................................................426, 427

tcpdmatch ..................................................................426

tcpdump ...................................................................... 148

TCP-Wrapper ............................................................. 425

TCP-Wrappern........................................................... 170

telinit ........................................................................50, 55

telnet....................................................................385, 430

testparm ...................................................................... 334

time ................................................................................. 36

traceroute .................................................................... 172

truecrypt .......................................................................99

tsclient ......................................................................... 418

TSIG ...............................................................................226

tune2fs ..............................................................75, 83, 115

U

udev ............................................................................. 100

udev_rules...................................................................101

udevadm ..................................................................... 102

udevmonitor ............................................................. 102

UDF...................................................................................91

UFS ................................................................................. 322

Umgebungs-Variablen .......................................... 461

umount................................................... 64, 66, 74, 453

uname ..............................................23, 40, 43, 185, 451

unmounten..................................................................64

update-grub ...........................................................28, 35

update-grub2 .............................................................442

update-rc.d ....................................................................53

user ..................................................................................68

useradd ........................................................................ 472

userdel.......................................................................... 472

Userland ........................................................................20

usermod ...................................................................... 472

users ................................................................................69

usrquota ........................................................................68

UW-IMAP.....................................................................394

V

Verschlüsselte Dateisysteme ................................96

veto files ...................................................................... 332

vgcreate ........................................................................125

vgdisplay ......................................................................125

vgextend ..................................................................... 129

vgreduce ...................................................................... 129

vgscan............................................................................122

VirtualBox ..................................................................106

VirtualHost................................................................. 316

virtuelle Hosts (Apache).........................................313

vmlinuz.................................................................... 21, 39

Volumen-Gruppen................................................... 121

vsftpd............................................................................410

W

wall ................................................................................. 177

Warteschlangen........................................................388

wget ..................................................................................33

WINS .............................................................................330

wireshark...................................................................... 155

X

X11-Tunnel ...................................................................417

XFS ................................................................................... 83

xfs_check ......................................................................86

xfs_fsr.............................................................................86

xfs_info..........................................................................86

Index

552

xfs_repair......................................................................86

xfsdump ........................................................................ 87

xfsrestore ................................................................87, 88

xinetd ........................................................................... 170

Z

zcat................................................................................. 184

zImage .............................................................................21

zlib ................................................................................... 28

Zonendateien ....................................................207, 211

Zonentransfer einschränken ...............................221