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.
107
Embed
Das Komplettpaket LPIC-1 & LPIC-2 - ReadingSample · Galileo Computing Das Komplettpaket LPIC-1 & LPIC-2 Das gesamte Prüfungswissen Bearbeitet von Harald Maaßen 1. Auflage 2012.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
Ü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
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.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.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
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
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
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
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
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
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.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:
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:
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:
� 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:
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.
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:
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.
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:
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:
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:
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:
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:
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
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:
� 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.
Allgemeines ............................................................................................................ 30Arbeiten mit patch, gunzip und bzip2 ................................................................. 30Einen Patch wieder entfernen .............................................................................. 31
201.4 Anpassen, Kompilieren und Installieren eines Kernels
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
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 ............................................................................................................ 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
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
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 ............................................................................................................ 356Installation des OpenLDAP-Servers ...................................................................... 358Installation und Verwendung des LDAP-Clients ................................................. 359
LILO ........................................................................................................................... 442Probleme beim Laden des Kernels ........................................................................ 445Initialisierung der Daemons .................................................................................. 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-
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:
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)
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:
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:
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