Leseprobe. LPIC-1»Grundlegende Systemdienste«LPIC-2»HTTP-Dienste« Inhalt: LPIC-1, LPIC-2. Index: LPIC-1, LPIC-2. Der Autor. Leseprobe weiterempfehlen

Größe: px
Ab Seite anzeigen:

Download "Leseprobe. LPIC-1»Grundlegende Systemdienste«LPIC-2»HTTP-Dienste« Inhalt: LPIC-1, LPIC-2. Index: LPIC-1, LPIC-2. Der Autor. Leseprobe weiterempfehlen"

Transkript

1 Wissen, wie s geht. Leseprobe Mit unseren LPIC-Büchern eignen Sie sich das Prüfungswissen für die LPI-Prüfungen an, inkl. Prüfungssimulator, Übungsaufgaben und Lösungen. In dieser Leseprobe befassen Sie sich mit den Prüfungsthemen»Systemdienste«und»HTTP-Dienste«. Zu beiden Themen finden Sie auch passende Aufgaben, Lösungen und Erklärungen. LPIC-1»Grundlegende Systemdienste«LPIC-2»HTTP-Dienste«Inhalt: LPIC-1, LPIC-2 Index: LPIC-1, LPIC-2 Der Autor Leseprobe weiterempfehlen Harald Maaßen Das Komplettpaket LPIC-1 & LPIC-2 Das gesamte Prüfungswissen Seiten, broschiert, 3. Auflage ,90 Euro, ISBN

2 108 Grundlegende Systemdienste 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. Und zur Vereinfachung der Kontrolle können Sie die Protokollierung auf Ihre Bedürfnisse zuschneiden Die Systemzeit verwalten Wichtung: 3 Beschreibung: Kandidaten sollten in der Lage sein, die Systemzeit korrekt zu halten und die Uhr mittels NTP zu synchronisieren. Wichtigste Wissensgebiete: 왘 Systemzeit und -datum setzen 왘 die Hardwareuhr auf die korrekte Zeit in UTC setzen 왘 die korrekte Zeitzone einstellen 왘 grundlegende NTP-Konfiguration 왘 Wissen über den Gebrauch von pool.ntp.org 왘 Kenntnis des ntpq-kommandos Liste wichtiger Dateien, Verzeichnisse und Anwendungen: 왘 /usr/share/zoneinfo 왘 /etc/timezone 왘 /etc/localtime 왘 /etc/ntp.conf 왘 date 왘 hwclock 왘 ntpd 왘 ntpdate 왘 pool.ntp.org 389

3 108 Grundlegende Systemdienste Die Systemzeit verwalten Allgemeines Für viele Abläufe auf einem Computer ist es wichtig, dass die Systemzeit korrekt eingestellt ist. Vergleichsweise harmlos ist hier noch der Umstand, dass bei abweichender Systemzeit Wartungsarbeiten, die durch cron oder anacron ausgeführt werden, möglicherweise zu Zeiten mit Spitzenbelastung laufen und so die Produktionsumgebung negativ beeinflussen. Unangenehm ist dann schon, dass Protokollierungen mit einer falschen Uhrzeit oder gar mit einem falschen Datum versehen werden. Verwirrend kann es auch werden, wenn Mails anscheinend eintreffen, bevor Sie überhaupt geschrieben wurden. All diese Unannehmlichkeiten lassen sich durch eine richtig eingestellte Systemzeit vermeiden. Eine Automatisierung der Zeitkorrektur macht bei Servern, die unbeaufsichtigt in einem Keller 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 Uhrzeit ausgegeben. ~]# date Di 28. Apr 17:54:52 CEST 2009 Hierbei ist zu beachten, dass es sich tatsächlich um die Systemzeit handelt. Diese ist unter Umständen nicht synchron mit der Hardwareuhr (RTC bzw. Real-Time-Clock). Wenn Sie die Uhrzeit mittels date ändern wollen, dann gehen Sie folgendermaßen vor: archangel:~ # date -s 1755 Di 28. Apr 17:55:00 CEST 2009 Die Uhr wird auf Uhr eingestellt. Es ist aber auch möglich, date zu verwenden, um recht elegante Uhrzeitausgaben zu generieren. Das kann etwa in eigenen Skripten verwendet werden. Wenn date auf ein + trifft, wird die darauf folgende Zeichenkette von date ausgegeben und die enthaltenen Variablen entsprechend ergänzt. Das sieht z. B. so aus: # date "+Heute ist der %d.%m.%y. Das ist der %j. Tag des Jahres." Heute ist der Das ist der 118. Tag des Jahres. Das Programm unterstützt zahlreiche weitere Variablen. Diese können Sie sich mit date --help anzeigen lassen. Die RTC-Uhr einstellen Mit dem Kommando hwclock können Sie die Systemzeit in die Hardwareuhr schreiben oder umgekehrt. Sie müssen beide Verfahren für die Prüfung kennen. Das sollte 390 aber nicht weiter problematisch sein, weil Sie die benötigten Optionen leicht wiedererkennen können. Folgendes Kommando schreibt die Systemzeit in die Echtzeituhr: archangel:~ # hwclock --systohc Umgekehrt holt folgender Befehl die Zeit bei der RTC ab und stellt danach die Systemzeit ein: archangel:~ # hwclock --hctosys Interessant ist es auch zu beobachten, wie die Uhrzeiten zwischen der Hardwareuhr und der Systemzeit driften. Die Differenz lässt sich mit hwclock ermitteln, indem Sie folgendes Kommando verwenden: archangel:~ # hwclock --show Di 28 Apr :58:13 CEST Sekunden Die Genauigkeit, mit der die Abweichung ermittelt wird, ist eine millionstel Sekunde. 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 der Sie sich befinden, oder Sie verwenden UTC. Heutzutage geben die meisten Administratoren der zweiten Methode den Vorzug, was im Zuge internationaler Kommunikation auch nur vernünftig ist. Das Kürzel UTC leitet sich ursprünglich von Coordinated Universal Time ab. Im Lauf der Jahre ist der Buchstabe C aus irgendwelchen Gründen, die heute niemand mehr kennt, an den Schluss gestellt worden. Die UTC löst die MEZ inzwischen auch in Europa weitestgehend ab. UTC+1 entspricht der MEZ. Damit der Computer dem Benutzer die lokale Zeit anzeigt, muss dem System noch mitgeteilt werden, dass die BIOS-Uhr (RTC) auf UTC eingestellt ist. Das kann über folgende Konfigurationsdateien geschehen: /usr/share/zoneinfo in diesem Verzeichnis befinden sich Binärdateien, die mit allen existierenden Zeitzonen korrespondieren. /etc/localtime diese Datei ist die mit der aktuellen Zeitzone übereinstimmende Binärdatei aus /usr/share/zoneinfo. Es kann sich hier um eine Kopie oder einen Softlink zur Originaldatei handeln. /etc/timezone ist eine textbasierte Konfigurationsdatei. Sie können die richtige Zeitzone in dieser Datei einfach eintragen. Um einen Überblick über die verfügbaren Zeitzonen zu bekommen, können Sie tzselect verwenden, wie Sie ja bereits aus dem vorangegangenen Kapitel wissen. Dieses nützliche Werkzeug ist in den meisten aktuellen Distributionen enthalten. 391

4 108 Grundlegende Systemdienste Die Systemzeit verwalten Zeitsynchronisation über das Netzwerk Zeitsynchronisation über das Netzwerk heißt in den meisten Fällen natürlich Synchronisation über das Internet. Zu diesem Zweck kommt das Network Time Protocol (NTP) zum Einsatz. Es handelt sich hier um ein relativ altes Protokoll, das schon 1985 in RFC 958 definiert wurde. Wegen der geringen zu übertragenden Datenmengen nutzt NTP das UDP. Der verwendete UDP-Port ist 123. Viele interessante Informationen und aktuelle NTP-Programmpakete erhalten Sie auf Hier finden Sie auch Listen mit öffentlichen Servern, von denen Sie synchronisieren können. Interessant ist in diesem Zusammenhang auch ein Projekt, in dem ganze NTP- Pools mittels Round Robin zur Verfügung gestellt werden. Es folgt ein Beispiel mit einem Zugriff auf eben diese Server: ntpdate pool.ntp.org 28 Apr 18:03:14 ntpdate[30836]: adjust time server offset sec Wie Sie sehen, können Sie mit ntpdate einfach durch Angabe eines Zeitservers die Uhrzeit des Systems aktualisieren. Es wird allerdings empfohlen, bei der Synchronisation mehrere Server gleichzeitig zurate zu ziehen, damit die Richtigkeit der übermittelten Uhrzeit gegengeprüft werden kann. 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 Synchronisation durchführen. In Abhängigkeit von der verwendeten Distribution wurde ntpd bereits durch xntpd ersetzt. Die Konfigurationsdateien sind jedoch identisch. Die Driftdatei wird von ntpd verwendet, um Ungenauigkeiten der Systemuhr festzuhalten. Die Abweichung von der tatsächlichen Zeit wird auf eine millionstel Sekunde ermittelt und in die Driftdatei geschrieben. Sie können den Daemon ntpd mithilfe des Programms ntpq abfragen. Die genaue Syntax des Programms ist nicht prüfungsrelevant, aber Sie sollten zumindest wissen, dass es ntpq gibt. Wenn Sie wissen wollen, welche Server Ihr ntpd kontaktiert, können Sie z. B. dieses Kommando verwenden: ntpq -p remote refid st t when poll reach delay offset jitter =================================================================== arcturos.gr u pyxis.my-rz.de u bytesink.de u ntp1.wtnet.de u golem.canonical u Automatische Zeitsynchronisation Wenn die Systemzeit automatisch synchronisiert werden soll, könnten Sie natürlich einfach ntpdate regelmäßig von cron ausführen lassen. Das ist sogar in einigen Prüfungsfragen so vorgesehen. Komfortabler und genauer funktioniert dies allerdings 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 Schwierigkeiten einen Windows-XP-Computer von einem Linux-Host synchronisieren. Dazu müssen Sie auf dem Windows-XP-Computer lediglich einen Doppelklick mit der seriellen Zeigereinheit (Maus o. Ä.) auf der Uhr ausführen. Auf der Registerkarte Internetzeit können Sie den Zeitserver festlegen. Diese Methode funktioniert nicht, wenn der Windows-Computer Mitglied einer Domäne ist. Die Hauptkonfigurationsdatei für den ntpd ist /etc/ntp.conf. Hier findet der Daemon vor allem die Adressen mit den zur Aktualisierung vorgesehenen Servern und einen Verweis auf den Driftfile. Dieser liegt, zumindest offiziell (und somit für die Prüfung), unter /etc/ntp.drift. Der tatsächliche Speicherort hängt von der verwendeten Distribution ab. Die Mindestausstattung der ntp.conf könnte etwa so aussehen: server de.pool.ntp.org server ptbtime1.ptb.de driftfile /var/lib/ntp/drift/ntp.drift 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ützen einen interaktiven Modus, der nach Eingabe eines Fragezeichens Aufschluss über die Möglichkeiten der beiden Programme liefert. Das Beispiel zeigt eine Abfrage nach sysinfo mit ntpdc im interaktiven Modus: archangel:/ # ntpdc ntpdc> sysinfo system peer: ptbtime1.ptb.de system peer mode: client leap indicator: 00 stratum: 2 precision: -18 root distance: s root dispersion: s reference ID: [ ] reference time: cab10cf1.fd8090b4 Fri, Oct :20: system flags: auth monitor ntp kernel stats jitter: s

5 108 Grundlegende Systemdienste Systemprotokollierung stability: broadcastdelay: authdelay: ntpdc> ppm s s Journalsubsystems ist einbezogen. Außerdem ist die Kenntnis von rsyslog und syslog-ng als alternative Logging-Systeme erforderlich. Wichtigste Wissensgebiete: Beide Diagnoseprogramme geben große Informationsmengen aus, weshalb es hier auch bei diesem einen Beispiel bleiben soll. Sehr interessant sind sicherlich noch die Abfragen nach peers und monlist. Probieren Sie diese doch einfach einmal aus. Syslog-Konfigurationsdateien Standard-Facilities, -prioritäten und -aktionen Konfiguration von logrotate Kenntnis von syslog-ng und rsyslog pool.ntp.org Eine beliebte Quelle zur Synchronisation ist pool.ntp.org. Hierbei handelt es sich um einen sehr großen virtuellen Cluster, der über die ganze Welt verteilt ist. Europa ist hier übrigens mit etwas über Nodes vertreten. Die Verteilung an die Clients wird über DNS mittels Round Robin abgewickelt. Das ist auch der Grund, 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 nicht darum, 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 einfach pool.ntp.org ein und hoffen, per Round Robin immer einen funktionstüchtigen Server anzutreffen. Bei Linux- Clients schreibt man gerne in die /etc/ntp.conf: server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org So haben Sie trotz Round Robin eine realistische Chance auf einen Treffer. Prüfungstipp Das Thema pool.ntp.org ist in den LPI-Prüfungen neu. Die Wahrscheinlichkeit ist also recht hoch, dass zu diesem Thema Fragen kommen Systemprotokollierung Wichtung: 3 Beschreibung: Kandidaten sollten in der Lage sein, den Syslog-Daemon zu konfigurieren. Dieses Lernziel umfasst auch die Konfiguration des Syslog-Daemons für den Versand von Logmeldungen an einen zentralen Protokollserver oder das Annehmen von Logmeldungen als zentraler Protokollserver. Die Verwendung des systemd- Liste wichtiger Dateien, Verzeichnisse und Anwendungen: syslog.conf syslogd klogd /var/log logger logrotate /etc/logrotate.conf /etc/logrotate.d journalctl /etc/systemd/journald.conf /var/log/journal Allgemeines Viele Programme und natürlich auch Linux selbst protokollieren zur Laufzeit Ereignisse, die sich in den jeweiligen Programmabläufen ergeben. Diese Protokolle kann sich ein Administrator zunutze machen, um Fehler zu diagnostizieren oder Engpässe frühzeitig zu erkennen. Dazu ist es wichtig, die Speicherorte dieser Protokolldateien zu kennen und gegebenenfalls Anpassungen am Verhalten der für die Protokollierung zuständigen Konfigurationsdateien vornehmen zu können. Programme zur Protokollierung Damit überhaupt eine Protokollierung von Ereignissen stattfindet, brauchen Sie zunächst einmal ein Programm, das diese Protokollierung durchführt. Auf Linux-Systemen finden Sie in Abhängigkeit von der verwendeten Distribution unterschiedliche Produkte vor. Diese sind, was die LPI-Prüfung anbelangt, unterschiedlich wichtig

6 108 Grundlegende Systemdienste Systemprotokollierung syslogd ist das wohl am weitesten verbreitete Produkt und hat eine entsprechend hohe Relevanz. journald kommt zum Einsatz, wenn Sie systemd statt SysVinit verwenden. Es muss also ein besonderes Augenmerk darauf gelegt werden. syslog-ng und rsyslog sind nicht sehr verbreitet, und Sie müssen lediglich wissen, dass es diese Programme gibt. Allen gemeinsam ist, dass diese Programme in der Standardeinstellung zur Protokollierung das Verzeichnis /var/log verwenden. Die Konfigurationsdateien von syslogd und logrotate Zunächst einmal muss festgelegt werden, was wohin von wem protokolliert wird. Normalerweise sind die Voreinstellungen brauchbar und müssen nicht sofort modifiziert werden. Da Protokolldateien ohne regelmäßige Überprüfung sehr stark anwachsen können, muss auch noch ein Mechanismus verwendet werden, der ein Überlaufen der Festplatte verhindert. /etc/syslog.conf Das Protokollierungsverhalten des syslogd wird mit der Datei /etc/syslog.conf gesteuert. Achtung bei der Prüfung: Es gibt keine /etc/syslogd.conf! Das kleine d gibt es nur bei dem entsprechenden Daemon! Der Aufbau dieser Datei ist recht einfach organisiert. Jede Zeile enthält jeweils Felder, die immer folgendermaßen gegliedert sind: facility.level action facility ist hierbei die Einrichtung, die den zu protokollierenden Eintrag erstellt. Es kommen folgende Prozesse in Frage: auth (ehemals security), authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, user, uucp, local0 bis local7 Ein Stern (engl. asterisk) bezeichnet alle Facilities. Wenn Sie für eigene Programme den Syslog verwenden möchten, können Sie hierfür auf die Facilities local0 bis local7 zurückgreifen, die für eben diesen Zweck bestimmt sind. level legt den jeweiligen Protokollierungsgrad fest. Wenn Sie einen Fehler genauer untersuchen wollen, kann es sinnvoll sein, den Protokollierungsgrad recht hoch einzustellen. In einigen Fällen können aber auch die Erfolgsmeldungen 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 Systemcrash geschrieben. Das gilt natürlich nicht, wenn ein unwichtiges Programm abstürzt, bei dem die Ansteuerung des Syslog völlig übertrieben wurde. Die Level error, warn und panic sind veraltet, und es sollten stattdessen jeweils err, warning und emerg verwendet werden. action ist von der Bezeichnung her irreführend. In diesem Feld wird das Ziel spezifiziert, in das das Facility protokollieren soll. Hierbei wird es sich normalerweise um eine Datei handeln. Die Benachrichtigung kann aber auch an einen anderen Computer oder an eine kommagetrennte Liste von Benutzern gesendet werden. Es folgt ein Auszug aus einer typischen Debian-syslog.conf: auth,authpriv.* /var/log/auth.log cron.* /var/log/cron.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log Wie Sie gleich sehen, verwendet Debian für jedes Facility seine eigene Logdatei. Das ist eher außergewöhnlich, kann aber bei der Fehlersuche angenehm sein, wenn Sie kleinere Logfiles gezielt durchsuchen. Bei den meisten anderen Distributionen können Sie davon ausgehen, dass der Löwenanteil der protokollierten Informationen in der Datei /var/log/messages abgelegt wird. /etc/logrotate.conf Damit die Logdateien auf einem unbeobachteten System nicht unkontrolliert anwachsen und das Dateisystem fluten, werden diese mit dem Programm logrotate überwacht. Wie logrotate diese Dateien behandelt, hängt von den Einstellungen in der Konfigurationsdatei /etc/logrotate.conf ab. Normalerweise werden nach Ablauf einer voreingestellten Zeit die im Verzeichnis /var/log befindlichen Dateien komprimiert und dann im leeren Zustand neu erstellt. Es ist heute der Übersichtlichkeit halber üblich, die Konfiguration mit Include-Dateien zu versehen. Deshalb sollten Sie auf Ihrem System auch nach einem Verzeichnis mit der Bezeichnung /etc/logrotate.d Ausschau halten. logrotate sollte täglich von cron ausgeführt werden

7 108 Grundlegende Systemdienste Systemprotokollierung Einsatz von Logdateien zur Fehlersuche Wenn auf einem Linux-System ein unerklärlicher Fehler auftritt, ist es immer eine gute Idee, das Verzeichnis /var/log zu konsultieren und die mit dem Problem in Zusammenhang stehenden Logdateien zu untersuchen. Die einfachste Methode ist wohl die Anzeige einer Logdatei mit einem Pager: archangel:/ # less /var/log/messages Aug 17 09:07:42 archangel named[6801]: client #2509: updating zone ' in-addr.arpa/IN': adding an RR at ' in-addr.arpa' PTR Aug 17 09:45:39 archangel sshd[31158]: Accepted password for root from ::ffff: port 4345 Aug 17 10:00:32 archangel syslog-ng[6389]: STATS: dropped 0 Aug 17 11:00:33 archangel syslog-ng[6389]: STATS: dropped 0 Scheinbar ist nichts Aufregendes passiert. Der DNS-Server hat einen Reverse-Lookup- Eintrag aktualisiert, und der Root hat sich via SSH eingeloggt. Danach geschah zwei Stunden lang nichts! Eine völlig andere Methode, sich Logdateien zunutze zu machen, ist das Kommando tail. Standardmäßig gibt tail die letzten zehn Zeilen einer Textdatei auf dem Bildschirm aus. Wenn Sie aber die Option -f übergeben, wird das Anzeigen der betreffenden Logdatei fortgesetzt. Das bedeutet, dass der Computer keinen Eingabeprompt anzeigt, sondern die Datei samt Änderungen im laufenden Betrieb anzeigt und aktualisiert. Das ist besonders nützlich, wenn Sie beabsichtigen, einen Fehler zu provozieren und dessen Auswirkungen gleichzeitig auf einem anderen Terminal 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 umfangreichen Protokolldatei oder nach einem bestimmten Ereignistyp suchen, empfiehlt es sich, die Anzeige der Logdatei mit grep zu filtern. Bei umfangreicheren Ergebnissen 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-daemon protokolliert hat. Die anschließende Filterung nach invalid sucht fehlgeschlagene Anmeldeereignisse. Zum Schluss wird die Ausgabe an less übergeben und auf dem Bildschirm dargestellt: Sep 17 13:04:47 archangel sshd[310]: Failed none for invalid user rooot from ::ffff: port ssh2 Sep 25 16:58:55 archangel sshd[1774]: Failed none for invalid user martin from ::ffff: port ssh2 Offensichtlich ist beim ersten Eintrag der Benutzername Root falsch geschrieben worden. Der zweite Eintrag ist der Anmeldeversuch von einem Benutzer, den es auf diesem System gar nicht gibt. Selbst Ereignisse loggen Eine einfache Methode, ein Ereignis selbst zu generieren, bietet das Programm logger. Dieses Tool kann natürlich auch in eigenen Skripten eingesetzt werden. Wenn z. B. ein selbst geschriebenes Skript verwendet wird, das eigenständig eine Datensicherung durchführt, ist am Ende des Skripts folgende Zeile denkbar: logger -t Backup "Datensicherung ausgeführt" Zu Testzwecken können Sie den Befehl auch einfach auf der Kommandozeile eingeben. Ein Blick in den Syslog zeigt das Ergebnis: archangel:~ # tail -1 /var/log/messages Sep 25 17:20:42 archangel Backup: Datensicherung ausgeführt So haben Sie in Zukunft jederzeit die Möglichkeit zu überprüfen, wann dieses Skript ausgeführt wurde. Der Kernellog Der Daemon mit dem Namen klogd fängt Meldungen des Kernels ab und protokolliert diese. Normalerweise wird er vom init-prozess gestartet und läuft sinnvollerweise in jedem Runlevel, den ein System nutzt. Die Ausgabe erfolgt in der Regel auf dem Syslog. Man kann (am besten im zugehörigen init-skript) einige Optionen 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 einem Schalter (nämlich -p path) ändern. Allerdings gibt es dazu normalerweise keine Veranlassung. Protokollierung durch systemd Bei Computern, deren Prozesse von systemd verwaltet werden, kommt zur Protokollierung der Daemon systemd-journald zum Einsatz. Er ist im Prinzip ein Bestandteil

8 108 Grundlegende Systemdienste Grundlagen von Mail Transfer Agents (MTAs) von systemd. Die Protokollierung geschieht zumindest in der Standardeinstellung in Dateien, die sich in einem Unterverzeichnis von /var/log/journal befinden. Es handelt sich hierbei aber nicht, wie gewohnt, um reine Textdateien. Deshalb lassen sich diese auch nicht direkt mit einem Pager oder Texteditor anzeigen. Stattdessen müssen Sie das Programm journalctl verwenden, wenn Sie die Logfiles einsehen wollen. Ohne Optionen und Parameter aufgerufen, zeigt journalctl die Protokollierung an, indem es diese an den Pager less übergibt. Entsprechend finden Sie die ältesten Journaleinträge zunächst oben, als hätten Sie die Datei syslog mittels less geöffnet. Das Programm versteht einige nützliche Optionen, an die man sich schnell gewöhnt: -f verhält sich genau so, als würden Sie bei einer syslog-basierten Protokollierung tail -f /var/log/syslog ausführen. -e weist journalctl an, beim Programmaufruf gleich an das Ende des Journals zu springen. -n verhält sich genau so, als würden Sie bei einer syslog-basierten Protokollierung tail -n /var/log/syslog ausführen. In der Standardeinstellung werden dann die letzten 10 Zeilen ausgegeben. Sie können aber genauso wie bei der Verwendung von tail die Anzahl der gewünschten Zeilen als Parameter angeben. -r (reverse) zeigt die neuesten Journaleinträge zuerst. Die komplette Konfiguration von journald geschieht in der Datei /etc/systemd/journald.conf. Hier können Sie unter anderem folgende Einstellungen festlegen: Storage legt fest, wie die Journale gespeichert werden. Mit dem Parameter volatile legen Sie fest, dass lediglich im RAM protokolliert wird, während mit dem Parameter persistent auf einem Datenträger geschrieben wird. Compress kann dafür sorgen, dass große Objekte xy-komprimiert werden, bevor sie gespeichert werden. Setzen Sie dazu den Parameter Yes. SplitMode kann verwendet werden, um separate Journale pro User anzulegen. Ein typischer Parameter dieser Option ist login. MaxFileSec legt die maximal Zeit fest, für die ein einzelner Journaleintrag gespeichert werden soll. Sie können hier auch 1week und sogar 1year als Parameter angeben, obwohl der Name der Option eine Angabe in Sekunden impliziert. Es gibt noch einige weitere Optionen, aber diese sind wohl die interessantesten Grundlagen von Mail Transfer Agents (MTAs) Wichtung: 3 Beschreibung: Kandidaten sollten wissen, welche gebräuchlichen MTA-Programme existieren, und einfache Weiterleitungs- und Alias-Konfigurationen auf einem Client-Rechner einstellen können. Weitere Konfigurationsdateien werden nicht abgedeckt. Wichtigste Wissensgebiete: Mail-Aliase anlegen Mail-Weiterleitung konfigurieren Kenntnis von allgemein verfügbaren MTA-Programmen (postfix, sendmail, qmail, exim) (keine Konfiguration) Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ~/.forward Kommandos in der Sendmail-Emulationsschicht newaliases mail mailq postfix sendmail exim qmail Allgemeines Für die anstehende Prüfung müssen Sie mit den Grundfertigkeiten der Konfiguration eines Mail Transfer Agents vertraut sein. Komplexere Administrationsaufgaben erwarten Sie allerdings erst in der LPI-Prüfung MUA, MDA und MTA Die Verarbeitung und Übermittlung von Mail-Nachrichten wird in der Hauptsache von drei Softwarekomponenten durchgeführt: MUA der Mail User Agent ist ein Mail-Client-Programm, mit dem Mails geschrieben, gelesen und versendet werden (z. B. kmail, Evolution, Thunderbird, Outlook usw.). MDA der Mail Delivery Agent verarbeitet s auf einem Server. Er entscheidet, wie mit den s weiter zu verfahren ist. Handelt es sich um lokale Mail- Adressen, stellt er die im entsprechenden Mail-Verzeichnis des Adressaten

9 108 Grundlegende Systemdienste Grundlagen von Mail Transfer Agents (MTAs) zu. Ansonsten übergibt er die Nachricht an den MTA, der dann für die Weiterleitung sorgt (MDAs sind z. B. procmail, maildrop, cyrus). MTA der Mail Transfer Agent nimmt die vom Client entgegen. Er ist für die Zustellung einer Nachricht an den richtigen Zielserver verantwortlich. Hierbei wird normalerweise das Protokoll SMTP verwendet. Auf dem Zielserver übernimmt dann wieder der MDA die Nachrichten und verteilt sie in die entsprechenden Mail-Verzeichnisse (MTAs sind z. B. sendmail, postfix, qmail, exim). Für die endgültige Auslieferung einer Mail-Nachricht an ein Client-Programm benötigen Sie letztendlich noch mindestens einen weiteren Serverdienst, wie IMAP oder POP. Das Starten und Stoppen eines Mail Transfer Agents funktioniert genauso wie bei den meisten anderen Netzwerkdiensten auch, wenn diese nicht gerade von inetd oder xinetd gesteuert werden. Das bedeutet zum Beispiel für postfix: /etc/init.d/postfix start * Starting Postfix Mail Transport Agent postfix [ OK ] Mail-Aliase Der voranstehende Eintrag macht tatsächlich das, wonach er aussieht: Wenn eine Mail an Freunde gesendet wird, wird diese Nachricht an alle Mail-Adressen versendet, die in der Textdatei /home/harald/meinefreunde zeilensepariert aufgeführt sind. Die letzte, nicht selten genutzte Möglichkeit ist die Übergabe einer Nachricht an ein Programm. Mit dieser Methode arbeitet etwa das Mailinglistenprogramm Majordomo: majordomo: " /usr/lib/majordomo/wrapper majordomo" Der Unterschied zur Umleitung in eine Datei ist das führende Pipe-Zeichen. newaliases Nach dem Anlegen eines neuen Alias in der Datei /etc/aliases müssen Sie den Befehl newaliases eingeben, damit Sendmail den neuen Alias auch verwendet. Alternativ können Sie auch sendmail -bi ausführen. Selbst die Antwort der beiden Kommandos ist identisch: [root@fedora10 home]# sendmail -bi /etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total Die Datei /etc/aliases In der Datei /etc/aliases können Sie Mail-Nachrichten umleiten. Hierbei sind vier verschiedene Verfahren möglich. Das gängigste ist dieses: willi: wilhelm root: wilhelm Mit dem ersten Eintrag werden Mails, die an willi adressiert sind, dem real existierenden Benutzerkonto wilhelm zugeordnet. Da Wilhelm ein Systemverwalter ist, der sich äußerst selten als Root anmeldet, werden Mails, die an den Root adressiert sind, ebenfalls Wilhelms Benutzerkonto zugewiesen. Eine andere Methode ist die Zuweisung eines Alias zu einer Datei. So könnte man Tätigkeitsberichte, automatisch mit Datum und Uhrzeit versehen, per Mail-Programm 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 dieses Konto muss ebenfalls kein reales Benutzerkonto auf dem Server existieren. freunde: :include:/home/harald/meinefreunde Weiterleitung von Mail Ein Benutzer kann für sich selbst eine Mail-Weiterleitung einrichten. Das wird oft mit einem Nachsendeauftrag bei der Post verglichen. Ein gern genannter Verwendungszweck ist die Weiterleitung geschäftlicher Mails an eine Urlaubsvertretung. Dazu muss der Benutzer nichts weiter tun, als eine Datei mit dem Namen.forward (der Punkt muss sein) in seinem Heimatverzeichnis zu erstellen, die die Weiterleitungsadresse in einer einzelnen Zeile enthält. Die Weiterleitung greift sofort. Es muss nichts weiter unternommen werden. Wichtige Dateien und Verzeichnisse Prüfungstipp Für die Prüfung müssen Sie die Verzeichnisse, die von den gängigen MTAs (hauptsächlich postfix und sendmail) verwendet werden, kennen. /var/spool/mail in diesem Verzeichnis liegen Dateien mit den Namen der Benutzerkonten, die auf diesem System Mails empfangen. Der MDA liefert hier Nachrichten für die lokalen Benutzer aus

10 108 Grundlegende Systemdienste Grundlagen von Mail Transfer Agents (MTAs) /var/spool/mqueue das ist die Mail-Queue oder auch Warteschlange. Hier holt der MDA Nachrichten ab und entscheidet dann, ob sie lokal ausgeliefert werden 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. Um den Inhalt einer Mail-Queue im laufenden Betrieb sehen zu können, verwenden Sie das Programm mailq ohne Parameter: archangel:/var/spool/mqueue # mailq /var/spool/mqueue (2 requests) --Q-ID Size-- --Q-Time Sender/Recipientl9HH2A016576* 816 Wed Oct 17 19:02 <root@archangel.homelinux.net> <dominik@archangel.homelinux.net> l929jc016576* 931 Wed Oct 17 19:02 <root@archangel.homelinux.net> <dominik@archangel.homelinux.net> Total requests: 2 In der Regel ist hier aber nichts zu sehen, weil bei einem normal frequentierten Server die Verarbeitung der Mails sehr schnell geschieht. sollte aber natürlich festgelegt werden, unter welchem Namen der Computer aus der Sicht des Internets angesprochen wird und für welche Domänen er verantwortlich ist: myhostname = echtername.meinedomain.com myhostname = virtuellername.meinedomain.com mydomain = meinedomain.com Wie in dieser Datei die Smarthost-Einstellungen u. Ä. konfiguriert werden, erfahren Sie in den folgenden Abschnitten. Eine weitere Konfigurationsdatei, die postfix verwendet, heißt master.cf. Hierbei handelt es sich um die Konfiguration für die postfix-internen Prozesse. In dieser Datei müssen in den seltensten Fällen Änderungen vorgenommen werden. Smarthost und SMTP-Relay Ein Smarthost ist ein Mailserver, der als SMTP-Relay fungiert. Normalerweise werden Sie Ihre zu versendenden Mails nicht direkt zustellen, sondern durch den SMTP-Server Ihres Internet Service Providers ausliefern lassen. Anderenfalls würden viele Mailserver Ihre Mail nicht entgegennehmen, weil Ihr SMTP-Server im Internet nicht bekannt ist. Daraus schließen diese Zielserver, dass Ihr Server ein mögliches Relay für Spam ist, und verwerfen Ihre Mail. sendmail-konfigurationsdateien Die Hauptkonfigurationsdatei von sendmail ist die Datei sendmail.cf. Weitere Konfigurationsdateien befinden sich normalerweise in /etc/mail. Die Datei sendmail.cf selbst finden Sie z. B. bei SuSE direkt unter /etc, während sie bei Fedora 10 unter /etc/ mail residiert. Das ist schon ein erster Hinweis darauf, dass die Konfiguration von sendmail stark variiert. Die Datei sendmail.cf könnte man durchaus als kompliziertes Konstrukt bezeichnen. Deshalb wird sie auch normalerweise nicht von Hand erstellt. Stattdessen schreibt man M4-Makros, die dann durch einen M4-Präprozessor verarbeitet werden. Die LPI-Prüfungen in Level 1 sind aber weit davon entfernt, sich mit dieser Thematik auseinanderzusetzen. postfix-konfigurationsdateien Der MTA postfix wird mit Konfigurationsdateien konfiguriert, die sich im Verzeichnis /etc/postfix befinden. Die Datei main.cf ist die globale Konfigurationsdatei für postfix. Hier werden wichtige Grundeinstellungen festgelegt. Um eventuelle Pfadangaben zu irgendwelchen Arbeitsverzeichnissen müssen Sie sich normalerweise nicht kümmern, weil diese distributionsspezifisch schon immer richtig eingestellt sind. Es Smarthost mit sendmail Wenn Sie einen externen Smarthost für sendmail angeben wollen, ist das eine der wenigen Situationen, in denen Sie die sendmail.cf bearbeiten müssen. Suchen Sie nach einem DS am Zeilenanfang (möglicherweise auskommentiert), und schreiben 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 eben diesem Verzeichnis einmal das Kommando make ausführen, um die korrespondierenden db-files zu generieren. Smarthost mit postfix Sollten Sie postfix als MTA verwenden, dann muss der Smarthost entsprechend in der Datei /etc/postfix/main.cf eingetragen werden. Dieser Eintrag sieht wie folgt aus:

11 108 Grundlegende Systemdienste Drucker und Druckvorgänge verwalten relayhost = mail.myisp.org Um postfix selbst als Relay einzusetzen, gibt es verschiedene Möglichkeiten. Eine sehr einfache (wenn auch umstrittene) Methode ist, einfach mit der Angabe der eigenen Netzwerke für bestimmte Subnetze Relaying zuzulassen: mynetworks = / / /28 Das setzt natürlich voraus, dass die Mitarbeiter, die sich in diesen Subnetzsegmenten aufhalten, vertrauenswürdig sind und nicht auf die Idee kommen, die Absender ihrer Mails zu fälschen. Wesentlich sicherer ist es natürlich, eine Authentifizierung des Benutzers zu verlangen. Als Mechanismus kommt hier am ehesten SASL (Simple Authentication and Security Layer) in Frage. Sollte ein authentifizierter Benutzer eine Mail mit gefälschtem Absender verschicken, ist dieser Vorgang zumindest in den Protokollen (/var/ log/mail) nachvollziehbar. exim und qmail Weniger bekannt sind die MTAs exim und qmail. Exim ist weitgehend ähnlich zu konfigurieren wie sendmail, die Konfiguration ist aber etwas einfacher. Debian verwendet exim sogar als Standard-MTA. Der MTA qmail wurde hauptsächlich entwickelt, um die Sicherheit gegenüber sendmail zu erhöhen. Auch qmail ist erheblich leichter zu konfigurieren als sendmail. Prüfungstipp Die hier aufgeführten MTAs sollten Sie für die Prüfung kennen. Die Konfiguration ist jedoch ausdrücklich nicht mehr Bestandteil der Level-1-Zertifizierung. allgemeine Druckprobleme lösen Druckaufträge zu eingerichteten Druckerwarteschlangen hinzufügen und daraus löschen Liste wichtiger Dateien, Verzeichnisse und Anwendungen: CUPS-Konfigurationsdateien, -Werkzeuge und -Hilfsprogramme /etc/cups LPD-Kompatibilitätsschnittstelle (lpr, lprm, lpq) Allgemeines Drucken funktioniert unter Linux praktisch genauso wie unter Unix. Das ist auch nicht weiter verwunderlich, weil die beiden Drucksysteme, die unter Linux verwendet werden, Portierungen aus der Unix-Welt sind. Die ältere der beiden Varianten ist an BSD-Unix angelehnt, das in Kalifornien an der Universität in Berkeley entwickelt wurde (BSD steht für Berkeley Software Distribution). Das BSD-Drucksystem wurde allerdings später für Linux komplett neu geschrieben, weil es eine Sicherheitslücke aufwies, die man unter Linux nicht akzeptieren wollte. Dieses neu entwickelte System finden Sie heute unter der Bezeichnung LPRng in praktisch allen Linux-Distributionen wieder. Das zweite große Drucksystem unter Linux heißt CUPS (Common Unix Printing Solution oder auch Common Unix Printing System). CUPS wurde ursprünglich entwickelt, um das Internet Printing Protocol (IPP) zu unterstützen, löste aber auf vielen Systemen BSD und LPRng ab. Auch wenn CUPS intern völlig anders arbeitet und zudem ein webbasiertes Konfigurationsfrontend anbietet, so ist bei seiner Entwicklung an Abwärtskompatibilität gedacht worden. CUPS unterstützt nicht nur die Kommandos von BSD bzw. LPRng, sondern zusätzlich auch die von System-V, einer verbreiteten Unix-Version Drucker und Druckvorgänge verwalten Wichtung: 2 Beschreibung: Kandidaten sollten in der Lage sein, Druckerwarteschlangen und Druckaufträge von Benutzern mit CUPS und der LPD-Kompatibilitätsschnittstelle zu verwalten. Wichtigste Wissensgebiete: grundlegende CUPS-Konfiguration (für lokale und entfernte Drucker) Benutzer-Druckerwarteschlangen verwalten Verwalten der Druckerwarteschlangen Ein Druckauftrag durchläuft bei den meisten Betriebssystemen, bevor er ausgedruckt wird, eine sogenannte Warteschlange. In diesem Zusammenhang wird auch häufig der Begriff Queue verwendet. Das Wort Queue kommt ursprünglich aus der französischen Sprache und bedeutet Schlange. Billard wird also, wenn man es auf gut Deutsch ausdrücken will, nicht mit einem Stock, sondern mit einer (offensichtlich erstarrten) Schlange gespielt. Einen weiteren gängigen Fachbegriff, nämlich Spooler, kann man beinahe phonetisch aus dem Englischen mit Spule übersetzen. Druckaufträge reihen sich also in eine Schlange ein oder werden aufgespult

12 108 Grundlegende Systemdienste Drucker und Druckvorgänge verwalten Die zu druckenden Aufträge werden unter Linux zunächst von einem Druck-Client- Programm (z. B. lpr) in die entsprechende Warteschlange gestellt. Um das genaue Verzeichnis zu ermitteln, in das der Druckauftrag gespoolt werden muss, wird die Konfigurationsdatei /etc/printcap ausgewertet. Normalerweise befinden sich die Warteschlangen unterhalb von /var/spool. Ein Druckauftrag besteht immer aus zwei Dateien, nämlich einem Control-File mit der Dateierweiterung cf und einem in der Regel erheblich größeren Data-File mit der Extension df. Der Spool-Vorgang ist nun abgeschlossen, und die beiden Dateien bleiben jetzt so lange liegen, bis sie jemand bearbeitet. Diese Aufgabe übernimmt der Line Printer Daemon (lpd) nun, vorausgesetzt, er wurde gestartet. lpd prüft zyklisch das Vorhandensein von Dateien in allen Druckerwarteschlangen. Wird er fündig, so übergibt er die momentan noch in einem sehr rohen, RAW genannten Format vorliegenden Daten an einen Druckfilter. Dieser wandelt dann die Daten in Abhängigkeit vom verwendeten Druckermodell in einen geeigneten Datenstrom und sendet diesen an den Drucker. Wenn der Auftrag ausgedruckt wurde, werden die Kontroll- und die Datendatei aus der Warteschlange gelöscht. Die Verarbeitung der Dateien ist bei der Verwendung von CUPS geringfügig anders. So sind z. B. die Konventionen für die Benennung der Dateien innerhalb einer Warteschlange different, aber das Druckprinzip ist weitestgehend gleich. Den Line Printer Daemon startet man mit diesem Befehl: /etc/init.d/lpd start Alternativ startet man CUPS so: /etc/init.d/cups start Nach Änderungen an den Konfigurationsdateien, insbesondere /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 Kommando lp entstammt dem System-V und versteht andere Optionen als lpr. Machen Sie sich für die LPI-Prüfung mit den Optionen von lpr vertraut. Mit -P wird die zu verwendende Warteschlange angegeben. archangel:~ # lpr -Plaserjet1300 /etc/printcap druckt die Datei /etc/printcap auf dem Printer Laserjet1300 aus. lpq zeigt den Inhalt von Warteschlangen an. Es kann auch hier mit der Option -P eine bestimmte Warteschlange angegeben werden: archangel:~ # lpq -Plaserjet1300 laserjet1300 is ready and printing Rank Owner Job File(s) Total Size active root 450 printcap 1024 bytes 1st michaela 451 haushaltsplan 9216 bytes 2nd michaela 452 haushaltsplan 9216 bytes 3rd dominik 453 kinderprogramm.html 1024 bytes lprm löscht Aufträge aus der Warteschlange. Bereits im Druck befindliche Aufträge können nicht mehr entfernt werden. archangel:~ # lprm -Plaserjet entfernt den versehentlich doppelt abgesendeten Druckauftrag aus dem Beispiel für lpq. Ein Benutzer ohne administrative Rechte kann ohne weiteres selbst alle eigenen Aufträge löschen, indem er den Befehl lprm eingibt. Wenn derselbe Befehl aber vom Benutzer Root ausgeführt wird, dann werden sämtliche Druckaufträge aller Benutzer aus der Warteschlange entfernt. lpc Line Printer Control lpc ist ein Programm, das man als gewöhnlichen Konsolenbefehl oder interaktiv verwenden kann. Es bietet umfangreiche Funktionen, weshalb ihm auch ein eigener Abschnitt zusteht. Der interaktive Modus bietet einen Eingabeprompt und macht vor allem dann Sinn, wenn Sie beabsichtigen, dem Druckdaemon mehrere Befehle hintereinander zu geben. Wenn lpc mit CUPS verwendet wird, sind nur einige wenige Befehle innerhalb von lpc verfügbar. Genau genommen ist dann lediglich eine Statusabfrage möglich. lpc> status laserjet1300: printer is on device 'parallel' speed -1 queuing is enabled printing is enabled 4 entries daemon present Unter BSD bzw. LPRng sind deutlich mehr Optionen verfügbar, wobei die Befehlsstruktur bis auf die Ausnahmen topq und status immer die gleiche ist. In den Beispielen wird davon ausgegangen, dass lpc im interaktiven Modus gestartet wurde. lpc> up laserjet1300 startet und aktiviert den Laserjet 1300, während

13 108 Grundlegende Systemdienste Drucker und Druckvorgänge verwalten lpc> up all alle Drucker gleichzeitig startet und aktiviert. Also wird immer lpc, gefolgt vom lpc- Kommando (up) und von dem anzusteuernden Drucker (Laserjet1300 bzw. all) angegeben. Die lpc-kommandos sind im Einzelnen: start startet den Druckprozess als solchen, so dass jetzt Aufträge aus der Warteschlange abgearbeitet und ausgedruckt werden können. stop beendet den Druckprozess. Ein laufender Auftrag wird noch bis zum Ende abgearbeitet. Die Druckerwarteschlange nimmt aber weiterhin Aufträge entgegen. enable aktiviert die Druckerwarteschlange. disable deaktiviert die Druckerwarteschlange. Bereits in der Warteschlange befindliche Aufträge werden noch fertig abgearbeitet. Neue Jobs werden jedoch 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 befindlicher Druckauftrag wird sofort abgebrochen. Sollte der Drucker seine Tätigkeit nicht sofort einstellen, ist dies auf Restdaten im Druckerspeicher zurückzuführen. topq stellt einen bereits gespoolten Druckauftrag an die erste Position in der Warteschlange. Hier sieht die Befehlssyntax etwas anders aus als bei den anderen Kommandos. lpc> topq Laserjet verschiebt den Druckjob mit der Nummer 453 an die erste Position der Druckerwarteschlange. Ein bereits in Arbeit befindlicher Druckauftrag wird hierdurch nicht abgebrochen. quit beendet letztendlich den interaktiven Modus des lpc und kehrt zur normalen Shell zurück. angeschlossen ist. Die Konfigurationsdateien für CUPS befinden sich alle unterhalb von /etc/cups. Aber selbst diese müssen Sie nur selten modifizieren, weil die komplette Konfiguration über Frontends durchgeführt werden kann. Am einfachsten ist die Konfiguration mit einem Webbrowser. CUPS horcht am TCP-Port 631 und kann somit über angesprochen werden. Auf diesem Weg können nicht nur Wartungsaufgaben wie das Löschen von Druckaufträgen u. Ä. durchgeführt, sondern dem System auch neue Drucker hinzugefügt werden. 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 und bringt die nötigen Filter alle mit. Die normalen Befehle zur Verwaltung von Warteschlangen, wie lpr, lprm, lpq und lpc, stehen genauso zur Verfügung wie unter BSD. Einzig der lpc ist in seiner Funktionsweise stark eingeschränkt. Zur konsolenbasierten Konfiguration dient das Tool lpadmin, was Sie sich auch unbedingt für die Prüfung merken sollten. In der Praxis werden Sie nach kurzer Eingewöhnungszeit auf die angenehme HTML-Oberfläche von CUPS nicht mehr verzichten wollen. Drucken mit CUPS CUPS ist ein Drucksystem, das von Anfang an auf das Drucken im Netzwerk ausgelegt wurde. Deshalb modifiziert CUPS auch gleich nach seiner Installation die altbekannte /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 also noch einen remote printer an einer remote machine, und das, obwohl der Drucker lokal

14 Auf einen Blick Auf einen Blick LPI Systemarchitektur Linux-Installation und -Paketverwaltung GNU- und Unix-Kommandos Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard Übungsfragen zu LPI LPI Shells, Skripte und Datenverwaltung Oberflächen und Desktops Administrative Aufgaben Grundlegende Systemdienste Netzwerkgrundlagen Sicherheit Übungsfragen zu LPI

15 Inhalt Vorwort LPI Systemarchitektur Hardwareeinstellungen ermitteln und konfigurieren... Allgemeines... Module zur Laufzeit beeinflussen und konfigurieren... Modulkonfigurationsdateien... Das Verzeichnis /proc/sys/kernel... Zum Kernel gehörende Dateien und Verzeichnisse... Die Gerätedateien für Festplatten und CD-ROMs... Die Gerätedateien für Partitionen... Ressourcen für Hardwarekomponenten... Der PCI-Bus... USB Universal Serial Bus... USB-Host-Controller-Typen... USB-Klassen... USB-Module automatisch laden... Coldplug und Hotplug... Das virtuelle Dateisystem sysfs... udev, hald und dbus Das System starten... Allgemeines... Boot-Strap-Loader... Kernel-Parameter... initramfs (initiale RAM-Disk)... Startprotokollierung... init-systeme Runlevel wechseln und das System anhalten oder neu starten... Allgemeines... Die Runlevel und ihre Funktion... Die Konfigurationsdatei inittab... Verzeichnisse und Dateien des init-prozesses... Runlevel-Wechsel, Herunterfahren, Neustart

16 Inhalt Inhalt Upstart systemd Linux-Installation und -Paketverwaltung Festplattenaufteilung planen Allgemeines Planung im Detail Logical Volume Manager LVM-Komponenten und Zusammenhänge Einen Bootmanager installieren Allgemeines GRUB-Legacy GRUB Shared Libraries verwalten Allgemeines Verwaltung von Shared Libraries LD_LIBRARY_PATH Debian-Paketverwaltung verwenden Allgemeines Konfigurationsdateien und Verzeichnisse DPKG-Programme RPM und YUM-Paketverwaltung verwenden Allgemeines Konfigurationsdateien RPM aktiv verwenden Abfragen der RPM-Datenbank Überprüfung installierter Pakete Pakete umwandeln yum und der yumdownloader GNU- und Unix-Kommandos Auf der Kommandozeile arbeiten Allgemeines Aufbau eines Shell-Kommandos Übergabe der Optionen Umgebungsvariablen und Shellvariablen Beliebte Variablen für die Prüfung Bash-Befehls-History und automatisches Vervollständigen von Befehlen PATH-Variable Rekursive Befehlsausführung Das Kommando uname Die Manpages im Allgemeinen Funktionsweise der Manpages $MANPATH und die Datei manpath.config Die Sektionen des Mansystems Aufbau von Manpages Verwandte Befehle Textströme mit Filtern verarbeiten Allgemeines cat tac head tail less expand / unexpand fmt nl pr wc hexdump od sort uniq split cut, paste und join tr Grundlegende Dateiverwaltung Allgemeines Kommandos für Dateioperationen Verwendung von Wildcards Komprimierung und Archivierung Ströme, Pipes und Umleitungen verwenden Allgemeines stdin, stdout und stderr Umleitungen (Redirects) Pipes tee und xargs

17 Inhalt Inhalt Prozesse erzeugen, überwachen und beenden Allgemeines Überwachen von Prozessen Signale an Prozesse senden Jobs im Vorder- und im Hintergrund Prozesse unabhängig von einem Terminal laufen lassen Prozess-Ausführungsprioritäten ändern Allgemeines nice renice top und ps zur Überprüfung von Prioritäten Textdateien mit regulären Ausdrücken durchsuchen Allgemeines Reguläre Ausdrücke Die Verwendung von grep egrep und fgrep Die Verwendung von sed Grundlegendes Editieren von Dateien mit dem vi Allgemeines Bedienungsgrundlagen Navigation in einem Dokument Einfügen, Löschen, Kopieren und Auffinden von Text Befehlszeilenoptionen für vi Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard Partitionen und Dateisysteme anlegen Allgemeines Erzeugen der Partitionen GPT GUID Partition Table Formatieren der Dateisysteme Erstellen einer Swap-Datei Die Integrität von Dateisystemen sichern Allgemeines Sicherstellen der Integrität des Dateisystems und Problembehebung XFS-Werkzeuge Überwachen des freien Platzes und der freien Inodes Das Ein- und Aushängen von Dateisystemen steuern Allgemeines Manuelles Mounten und Unmounten Automatisches Mounten über die Datei /etc/fstab Platten-Quotas verwalten Allgemeines Möglichkeiten der Quotierung Vorbereiten von Quotas Aktivieren von Quota Ändern und Überprüfen von Quotas Dateizugriffsrechte und -eigentümerschaft verwalten Allgemeines Vergabe der Berechtigungen Verwendung von SUID, SGID und Sticky Bit chown chgrp Verwendung von umask Dateiattribute der ext2-, ext3- und ext4-dateisysteme Harte und symbolische Links anlegen und ändern Allgemeines Softlinks Hardlinks Systemdateien finden und Dateien am richtigen Ort platzieren Allgemeines FHS Filesystem Hierarchy Standard Programme zum Auffinden von Dateien Übungsfragen zu LPI Fragen Antworten und Erklärungen zu den Prüfungsfragen LPI Shells, Skripte und Datenverwaltung Die Shell-Umgebung anpassen und verwenden Allgemeines Verwendung von Shells

18 Inhalt Inhalt Umgebungsvariablen und Shellvariablen Aliase und Funktionen Befehlseingabe mit Listen (lists) Konfigurationsdateien der Bash Systemweite Konfigurationsdateien Konfigurationsdateien für den Benutzer Konfiguration on the fly einlesen Das Skeleton-Verzeichnis /etc/skel Einfache Skripte anpassen oder schreiben Allgemeines Ausführen eines Skripts Ausführungsberechtigung Position eines Skripts Übergabevariablen und Rückgabewerte Prüfungsrelevante Kommandos Sonstiges SQL-Datenverwaltung Allgemeines SQL die Befehle Die ersten Schritte Eine erste Datenbank Abfragen mit SELECT und WHERE Aktualisieren von Datensätzen Sortieren und Gruppieren Erweitern von Datenbanken Arbeiten mit mehreren Tabellen Destruktive Kommandos Oberflächen und Desktops X11 installieren und konfigurieren Allgemeines Der Aufbau von X Der Startvorgang von X X-Terminals X-Libraries Konfigurationsdateien X-Fontserver X-Display exportieren xwininfo xdpyinfo Einen Displaymanager einrichten Allgemeines Starten und Beenden eines Displaymanagers Konfigurationsdateien von lightdm Hilfen für Behinderte Allgemeines Sehbehinderte und Blinde Barrierefreiheit Orca GOK emacspeak Administrative Aufgaben Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten Allgemeines passwd, shadow, group, gshadow Befehle zur Verwaltung von Benutzern Befehle zur Verwaltung von Gruppen Befehle zur Verwaltung des Shadow-Systems Systemadministrationsaufgaben durch Einplanen von Jobs automatisieren Allgemeines Die Verwendung von cron Die Verwendung von at Die Verwendung von anacron Zugriffssteuerung auf cron und at Lokalisierung und Internationalisierung Allgemeines Zeitzoneneinstellung Umgebungsvariablen für die Lokalisation Historische Zeichensätze ASCII American Standard Code for Information Interchange ISO Unicode und UTF Konvertierung von Zeichensätzen

19 Inhalt Inhalt 108 Grundlegende Systemdienste Die Systemzeit verwalten Allgemeines Manuelle Konfiguration der Systemzeit Die RTC-Uhr einstellen Zeitzonen Zeitsynchronisation über das Netzwerk Automatische Zeitsynchronisation NTP-Diagnose pool.ntp.org Systemprotokollierung Allgemeines Programme zur Protokollierung Die Konfigurationsdateien von syslogd und logrotate Einsatz von Logdateien zur Fehlersuche Selbst Ereignisse loggen Der Kernellog Protokollierung durch systemd Grundlagen von Mail Transfer Agents (MTAs) Allgemeines MUA, MDA und MTA Mail-Aliase Weiterleitung von Mail Wichtige Dateien und Verzeichnisse sendmail-konfigurationsdateien postfix-konfigurationsdateien Smarthost und SMTP-Relay exim und qmail Drucker und Druckvorgänge verwalten Allgemeines Verwalten der Druckerwarteschlangen Befehle zur Kontrolle von Druckvorgängen lpc Line Printer Control Drucken mit CUPS Netzwerkgrundlagen Grundlagen von Internetprotokollen Allgemeines TCP/IP-Geschichte kurz gefasst Das DoD-Modell Die Protokolle der dritten Schicht Die Protokolle der zweiten Schicht Das Internetprotokoll IPv IP-Klassen Die Verwendung der Subnetzmaske und CIDR Die Broadcast-Adressen Standardgateway Das Internetprotokoll IPv Grundlegende Netzkonfiguration Allgemeines Konfigurationsdateien eines Netzwerk-Clients Konfigurationsprogramme für Netzwerk-Clients Prüfen der Konnektivität Grundlegende Netzfehlersuche Allgemeines traceroute und traceroute tracepath und tracepath Clientseitiges DNS konfigurieren Allgemeines dig, host und nslookup getent Sicherheit Administrationsaufgaben für Sicherheit durchführen Allgemeines Auffinden von Dateien mit gesetztem SUID/SGID-Bit Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten nmap, netstat und socket Ressourcenverwendung kontrollieren Offene Dateien

20 Inhalt Arbeiten mit erhöhten Rechten Feststellen, wer an einem System angemeldet ist oder war Einen Rechner absichern Allgemeines... Superdaemons... TCP-Wrapper konfigurieren... Die Datei /etc/nologin Daten durch Verschlüsselung schützen Allgemeines... SSH verwenden... SSH-Client-Verbindung... SSH-Konfigurationsdateien... Authentifizierung der Server mit Schlüsseln... Generieren von Schlüsseln... Benutzerauthentifizierung mit Schlüsseln... Der Authentifizierungsagent... GnuPG... Schlüsselerstellung mit GnuPG... GnuPG-Dateien... GnuPG verwenden... GnuPG-Zertifikat widerrufen... Übungsfragen zu LPI Fragen Antworten und Erklärungen zu den Prüfungsfragen Index

21 Index Index #!/bin/bash $?... 93, 298 $ $ , 298 $ , 298 $HISTSIZE $PS * / bash_history bash_login bash_profile... 90, 196, 292, 293.bashrc forward rpmrc Xdefaults xinitrc Xresources xserverrc /bin/bash /boot... 29, 161 /boot/grub/ /boot/grub/grub.conf /boot/grub/stage /boot/grub /boot/initrd /dev /dev/cdrom /dev/ft /dev/hd /dev/hda /dev/hda /dev/hda /dev/hda /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/sd /dev/sda... 30, 32 /dev/sdb... 30, 32 /dev/st /dev/zero /etc/.bashrc /etc/aliases , 403 /etc/anacron /etc/apt/apt.conf /etc/apt/sources.list /etc/bash.bashrc /etc/bashrc /etc/crontab /etc/cups /etc/cups/cupsd.conf /etc/default/grub /etc/default/useradd , 364 /etc/event.d /etc/false /etc/fstab... 88, 168, 178, 179, 180, 186 /etc/group , 368, 427 /etc/grub.d /etc/gshadow , 368 /etc/host.conf /etc/hostname /etc/hostname /etc/hosts , 427 /etc/hosts.allow , 457 /etc/hosts.deny , 457 /etc/hotplug... 36, 37 /etc/inetd.conf , 451 /etc/init /etc/init.d... 49, 50, 94 /etc/inittab... 47, 49, 342 /etc/inputrc /etc/ld.so.cache /etc/ld.so.conf /etc/localtime , 391 /etc/logrotate.conf /etc/mail /etc/mail/access /etc/mail/relay-domains /etc/manpath.config /etc/mtab /etc/network/interfaces /etc/nologin , 457 /etc/nsswitch.conf /etc/ntp.conf /etc/ntp.drift /etc/passwd , 359, 367, 427 /etc/printcap , 410 /etc/profile... 90, 94, 196, 292 /etc/rc.d... 49, 50 /etc/rc.d/xfs /etc/resolv.conf /etc/rpmrc

22 Index Index /etc/services /etc/shadow , 359, 367 /etc/skel , 362 /etc/ssh/known_hosts /etc/ssh/ssh_config /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_key /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /etc/ssh_known_hosts /etc/sshrc /etc/sudoers /etc/syslog.conf /etc/timezone , 391 /etc/updatedb.conf /etc/usbmgr/host /etc/usbmgr/preload.conf /etc/usbmgr/usbmgr.conf /etc/x11/fs/config /etc/xinetd.conf /etc/xinetd.d /etc/yum.conf /etc/yum.repos.d /home /lib/modules... 22, 29 /proc... 32, 160 /proc/bus/pci /proc/dma /proc/interrupts /proc/ioports /proc/kmsg /proc/modules... 23, 25 /proc/partitions /proc/pci /proc/scsi /proc/swaps /proc/sys/kernel /tmp /usr /usr/bin /usr/lib/locale /usr/lib/rpm /usr/lib/rpm/rpmrc /usr/lib/rpmrc /usr/lib/x11/app-defaults/xterm /usr/sbin /usr/share/i18n/supported /usr/share/zoneinfo /usr/src /usr/src/ /usr/src/linux /var /var/cache/man /var/lib/dpkg/available /var/lib/dpkg/info /var/lib/dpkg/status /var/lib/rpm /var/log /var/log/mail /var/log/messages... 44, 398 /var/mail /var/spool /var/spool/cron /var/spool/mail , 404 /var/spool/mqueue ? ~./ssh/known_hosts ~/.bash_login... 90, 292 ~/.bash_logout ~/.bash_profile ~/.bashrc ~/.gnupg ~/.inputrc ~/.profile ~/.ssh/authorized_keys ~/.ssh/id_dsa ~/.ssh/id_dsa.pub ~/.ssh/id_rsa ~/.ssh/id_rsa.pub ~/.ssh/ssh_known_hosts ~/.xinitrc A Absolute Pfadangabe ACL Aktive Partition Akzent Zirkumflex Alias alias alien ALTER TABLE , 319 anacron AND Änderungszeit Anwendungsschicht apache append only apropos... 98, 99, 208 apt-cache apt-get... 69, 71 aptitude aquota.group aquota.user Argument ARP ARPA ARPANET Assistive Techniken at at.allow at.deny atd aterm authorized_keys auto awk B Backslash Barrierefreies Anmelden Barrierefreiheit Bash bash Baudot, Jean-Maurice-Émile Baudot-Code Befehls-History Bevorzugte Anwendungen , 347 bg , 137 Bildschirmlupe Bildschirmtastatur BIOS... 39, 162, 163 BIOS-Uhr Bootloader Boot-Strap-Loader... 41, 61 Brailledisplay , 350 Brailleschrift Braillezeile BRLTTY Broadcast-Adresse bunzip , 120 byobu bzip , 120 C case cat , 127 catman cd CD-ROM cfdisk chage , 442 chattr chfn chgrp chmod , 192, 194, 295, 296 chown CIDR clear , 303 Coldplug COMMIT cp cpio cpio-paket CREATE DATABASE CREATE TABLE cron cron.allow cron.deny crond crontab , 372 csh... 88, 284 CSV CTRL-ALT-DEL CUPS , 410 cut , 128 D Data Control Language Data Definition Language Data Manipulation Language Data Query Language date Dateiattribut Dateideskriptor dbus DCL dd , 169 DDL debugfs DEC defaults DELETE depmod... 27, 28 Desktop Environment Device

23 Index Index df , 175 dig DISPLAY Displaymanager , 342 DISTINCT dmesg DML do DoD DoD-Modell Dollarzeichen done Doppelkreuz dosfsck Dotted Quad dpkg... 67, 69, 75 dpkg-reconfigure DQL DROP DROP DATABASE DROP TABLE , 325 Druckfilter DSA-Schlüssel dselect... 69, 71 du , 177 dump... 58, 182 dumpe2fs , 188 DVD-Laufwerk Dynamic Link Library dynamically linked E e2fsck echo... 89, 295, 301 Echtzeituhr ed edquota , 189 egrep , 149 EHCI Einfügemodus elif else elvis emacspeak Endzylinder env... 91, 287 esac eterm Ethernet exec , 305 exim , 406 expand export... 92, 286 ext , 166, 172 ext , 166, 172 Eyetracker F FAT FDDI fdisk , 168 Festplatte fg , 137 fgrep FHS , 205 fi file Filesystem Hierarchy Standard find , 208, 301 finger Fingerprint FireWire fmt Fontpath for forkbomb FQDN free , 169 fsck , 172, 181, 182 fsck.cramfs fsck.ext fsck.ext fsck.jfs fsck.minix fsck.msdos fsck.reiserfs fsck.vfat fsck.xfs fslsfonts function Funktionen G gawk gdisk gdm GECOS Gesten GNOME , 342 Gnopernicus GNU GNU Privacy Guard GnuPG GOK gpasswd GPG gpg.conf Gpg4win GPT Gracetime GRANT grep... 44, 125, 143, 145, 146, 147 GROUP group groupadd groupdel groupmod grpck grpconv grpquota grpunconv GRUB... 41, 61 GRUB grub.cfg grub.conf grub-mkconfig GRUB-Stages gshadow GTK GUID Partition Table gunzip , 120 gzip H hald halt Hardlimit , 188, 443 Hardlink Hardware Abstracion Layer Hashes head Headtracker hexdump hid.o Hilfstechnologie HISTSIZE host Host zu Host Hostkey , 458 hosts.allow hosts.deny Hotkey Hotplug hotplug HPFS hwclock I IBM ICMP iconv id_rsa id_rsa.pub if ifconfig ifdown ifup IGMP IMAP immutable inetd inetd.conf init... 46, 47, 49, 52, 129 initdefault initramfs inittab Inodes Input Device INSERT insmod... 25, 26 Internetschicht ip Kommando IP-Klassen IPv , 418 IPv , 423 IRIX ISO ISO J jobs , 137 JOIN

24 Index Index join Joker , 144 journal journalctl journald , 399 K KDE , 342 kdm Kernel Kernel-Parameter... 41, 42 Kernel-Ring-Buffer KGpg kill killall Klebrige Tasten klogd klogin Kommandomodus ksh... 88, 284 L LANG LANG=C LC_ALL LD_LIBRARY_PATH ldconfig ldd LEFT JOIN less , 127 let , 296, 299 lightdm LIMIT Link-Layer ln , 203 locale locate logger Logical Volume Manager Logische Volumen logrotate lp lpadmin lpc , 411 lpd lpq , 411 lpr , 411 lprm , 411 ls lsattr lsdel lsmod... 23, 27, 34 lsof lspci lsusb LVM... 59, 163 M mail Mail Transfer Agent Mail User Agent Mail-Alias mailq man Manpage MANPATH manpath manpath.config Master Boot Record... 30, 39 master.cf Maussteuerung Maustaste MBR MDA menu.lst Metacity Metazeichen , 148 MEZ mingetty Minor Release MIT mkdir mkdosfs mke2fs , 167, 174 mkfs , 166 mkfs.cramfs mkfs.ext mkfs.ext mkfs.jfs mkfs.msdos mkfs.ntfs mkfs.reiserfs mkfs.vfat mkfs.xfs mkinitrd mkswap , 169 modinfo modprobe modules.dep... 27, 28 Monolithische Kernel Morse, Samuel Morse-Code mount... 88, 178, 180, 181 Mounten Mountpoint MTA MUA Murray, Donald Murray-Code mv N nano netstat , 436, 442 Netzwerk-Zugriff Neustart newaliases newgrp NFS nfs nfsd nice , 142 nl nmap , 442 noauto noexec nohup nohup.out nosuid nouser nslookup NTFS NTP ntp.conf ntpd , 393 ntpdc ntpq O od OHCI Oktett Option Orca ORDER BY , 316 OSPF P parted Partition , 161 Partitionierung Partitionstabelle... 30, 40, 162 passwd , 357, 364, 442 paste , 155 Patch-Level PATH... 90, 287, 297 PATH-Variable PCI-Bus PCMCIA... 36, 37 Perl PGP pgrep Physikalische Volumen pico PID , 134, 141 PID Pipe Pipes pkg pkill postfix poweroff Power-On-Self-Test pr Primärschlüssel Primary IDE Prozesspriorität ps... 46, 129, 131, 134, 142 pstree... 46, 131 pubring.gpg putty pwck pwconv pwd... 95, 112 pwunconv Python Q qmail , 406 QT Libraries

25 Index Index Quellen Queue Quota quota quota.group quota.user quotacheck , 187 quotaoff quotaon R RAID RAW read Real-Time-Clock reboot redirect regex , 145 regexp , 156 regular expression Regulärer Ausdruck Rekursive Befehlsausführung Relative Pfadangabe renice , 142 repquota Resolver respawn REVOKE RgbPath RIGHT JOIN RIP rm rmdir rmmod... 25, 26 ro ROOLBACK root-passwort vergessen route Routing-Tabelle RPM rpm... 75, 78 rpm2cpio... 78, 81 rpmarchive rpmbuild RPM-Datenbank rpmdb rpme rpmgraph rpmheader rpmi rpmlead rpmlocate rpmqpack rpmquery rpmrc rpmsign rpmsignature rpmu rpmverify RSA-Key rsh rsyslog RTC , 391 Rückgabewert Runlevel runlevel Runlevel-Wechsel rw rxvt S SASL Sawfish Screen screen Screenreader , 350, 354 SCSI SCSI-Laufwerke Seahorse Secondary IDE secring.gpg secure deletion sed , 145, 149, 150 SELECT , 313 semikolonsepariert sendmail sendmail.cf seq Server-Flags set... 91, 286 Setgid Setuid SGID , 300 sh shadow shareable Shared Object Shebang Shell... 88, 284 Shellvariable... 89, 285 shift shutdown... 48, 52, 172 SIGCONT , 137 SIGHUP SIGINT SIGKILL Signal SIGSTOP SIGTERM , 134 SIGTSTP Skeleton slp Smarthost smbfs SMTP-Relay socket Softlimit , 188, 443 Softlinks... 51, 200 sort , 128 source split Spooler SRI SSH ssh_config ssh_known_hosts ssh-add ssh-agent sshd_config ssh-keygen sshrc stable Standardgateway , 430 Startprotokollierung... 43, 44 Startskripte startx Startzylinder stat , 203 static statically linked stderr stdin stdout , 127 Sticky Bit , 300 stream Stream-Editor , 149 su Subnetzmaske Subselect Subshell... 92, 286 Substitution Suchmuster , 148 sudo SUID , 194, 296 suid SUID-Bit , 442 Superblock Superdaemon Swap Swap-Datei swapoff swapon Swap-Partition Synopsis sysfs syslogd syslog-ng systemctl systemd systemd-journald Systemzeit , 391 T tac tail , 398 tar Tastatursteuerung TCP TCP/IP , 414 tcpd tcpdchk TCP-Wrapper tcsh tee telinit... 48, 52 test Textanker , 146 tgz Tilde Timestamp Token Ring top , 141, 142 topq touch tr , 127 tracepath tracepath traceroute

26 Index Index tracetpath Transportlayer trustedb.gpg tsclient TTL tune2fs , 167, 172, 173 tzselect , 379, 391 U Übergabevariable UCLA UCSB udev UDP UEFI UHCI ulimit umask , 196, 197 Umgebungsvariable... 89, 285 umount... 36, 172, 178, 181, 444 uname... 22, 26, 96 undeletable unexpand Unicode uniq , 128 Unmounten unset... 92, 287, 301 unshareable UPDATE , 315 updatedb , 210 update-grub Upstart uptime USB USB USB usb-ehci usb-ehci.o USB-Klassen USB-Maus USB-Memorystick usbmgr usbmgr.conf usb-ohci usb-ohci.o usb-storage.o usb-uhci usb-uhci.o user useradd userdel usermod users usrquota UTC UTF V variable vi , 153, 154 vile vim visudo vmlinuz Volumen-Gruppen W w Warteschlange wc , 177 whatis... 98, 208 WHERE , 314 whereis... 99, 207 which... 95, 99, 207 while Wildcard Wildcards , 144, 148 Windowmanager X X Consortium X.Org X11R X11-Tunnel xargs , 128 X-Client xdm xdpyinfo XF86Config X-Fontserver XFree xfs xhost xinetd xinetd.conf xinit xinitrc X-Libraries xntpd xorg.conf X-Server xserverrc xterm xvidtune X-Window , 330 xwininfo Y yank yum... 77, 82 yumdownloader Z Zeitsynchronisation Zeitzone zsh... 88, 284 Zugriffsrechte Zugriffszeit

27 208 HTTP-Dienste Der Apache Webserver ist eines der erfolgreichsten Open-Source-Projekte überhaupt. Aufgrund seiner Sicherheit, Stabilität und Leistungsfähigkeit wurde sein Erfolg bis heute durch keinen anderen Webserver infrage gestellt Grundlegende Apache-Konfiguration Wichtung: 4 Beschreibung: Die Prüflinge sollten dazu in der Lage sein, einen Webserver zu installieren und einzurichten. Dieses Lernziel beinhaltet die Überwachung der Serverauslastung und -leistung, die Beschränkung von Benutzerzugriffen, die Einrichtung der Unterstützung von Skriptsprachenmodulen und die clientseitige Benutzerauthentifizierung. Des Weiteren ist auch die Konfiguration der Serveroptionen, die der Einschränkung der Ressourcennutzung dienen, mit eingeschlossen. Kandidaten sollten dazu in der Lage sein, virtuelle Hosts auf Webservern zu erstellen und den Dateizugriff anzupassen. Wichtigste Wissensgebiete: 왘 Apache 2.4-Konfigurationsdateien, -Begriffe und -Dienstprogramme 왘 Konfiguration der Apache-Protokolldateien und deren Inhalte 왘 Methoden und Dateien zur Zugriffsbeschränkung 왘 Konfiguration von mod_perl und PHP 왘 Client-Benutzerauthentifizierungsdateien und -Dienstprogramme 왘 Einstellung der maximalen Anzahl an Anfragen sowie der minimalen und maxi- malen Anzahl an Serverprozessen und Clients 왘 Apache 2.4-Implementierung von virtuellen Hosts (mit und ohne fest zugeordne- ten IP-Adressen) 왘 Einsatz von Redirect-Anweisungen in Apache-Konfigurationsdateien, um Datei- zugriffe zu individualisieren Liste wichtiger Dateien, Verzeichnisse und Anwendungen: 왘 Zugriffslogdateien (Access Logs) und Fehlerlogdateien (Error Logs) 왘.htaccess 341

28 208 HTTP-Dienste Grundlegende Apache-Konfiguration httpd.conf mod_auth_basic, mod_authz_host und mod_access_compat htpasswd AuthUserFile, AuthGroupFile apachectl, apache2ctl httpd, apache2 Allgemeines Der Apache Webserver ist nach wie vor der erfolgreichste Webserver im Internet. Die Ursprünge des Apache Webservers liegen in einem inzwischen ausgestorbenen Webserver, dem NCSA-Webserver httpd. Dieser wurde von der Organisation NCSA im Jahre 1995 eingestellt und nicht weiterentwickelt. 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 zusammenschlossen, an, Sicherheitslücken in diesem Webserver zu beheben und ihm neue Funktionen 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 die gleichnamigen nordamerikanischen Indianerstammesgruppen. Möglicherweise ist an beiden Geschichten 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 Webserver in seiner reinsten Form kennenlernen, ist es im Rahmen der Prüfungsvorbereitung allerdings sinnvoller, Apache aus einem tar-ball heraus zu installieren. Sie finden die entsprechenden Downloadlinks zu etlichen HTTP- und FTP-Mirror-Servern auf der Webseite Die folgende Beispielinstallation wurde auf einem Server unter CentOS ausgeführt. Führen Sie einfach die folgenden Kommandos aus, um einen funktionierenden Webserver zu installieren: ~]# mkdir /usr/src/apache-2.2 ~]# cd /usr/src/apache-2.2/ 342 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öchten. apache-2.2]# wget \ Packen Sie den tar-ball aus: [root@arch-cent apache-2.4]# tar xvzf httpd tar.gz Wechseln Sie in das Verzeichnis, das gerade durch die Extraktion des tar-balls entstanden ist: [root@arch-cent apache-2.4]# cd httpd Damit Sie den Webserver konfigurieren und kompilieren können, benötigen Sie spätestens jetzt einen Compiler. Ich persönlich bevorzuge den GNU-C- und den GNU- C++-Compiler: [root@arch-cent httpd ]# yum install gcc Bei der Konfiguration sollten Sie zumindest das Installationsverzeichnis mit --prefix übergeben. Das Verzeichnis /usr/local/apache2 ist ein typisches Ziel für den Webserver. Die anderen Optionen wählen die Funktionalitäten http, https, cgi und das automatische Einbinden von Modulen. [root@arch-cent httpd ]#./configure --prefix=/usr/local/apache2 \ --enable-http --enable-https --enable-so --enable-cgi Es gibt sehr viele Optionen, die Sie für die Konfiguration übergeben können. Sie erhalten eine komplette Liste der Optionen, indem Sie im Installationsverzeichnis das Kommando./configure --help ausführen. Wenn die Konfiguration abgeschlossen ist, können Sie httpd mit make kompilieren: [root@arch-cent httpd ]# make Wie bei der Installation vieler anderer tar-balls folgt jetzt die eigentliche Installation des Webservers: [root@arch-cent httpd ]# make install Wenn alles gut gegangen ist, können Sie den Apache Webserver jetzt zum ersten Mal starten: [root@arch-cent /]# /usr/local/apache2/bin/apachectl start httpd: Could not reliably determine the server's fully qualified domain name, using for ServerName 343

29 208 HTTP-Dienste Grundlegende Apache-Konfiguration Es ist wahrscheinlich, dass Sie beim Start des Servers obige Fehlermeldung erhalten. Der Webserver läuft dann trotzdem, aber Sie sollten diesen Schönheitsfehler beheben, indem Sie der Datei /usr/local/apache2/conf/httpd.conf (das ist übrigens die Hauptkonfigurationsdatei des Webservers) eine Zeile wie diese hinzufügen: ServerName arch-cent.homelinux.net:80 Prüfen Sie nach, ob der Webserver läuft, indem Sie nach Instanzen des Daemons httpd suchen. Das ist der Daemon des Apache Webservers: /]# ps -A grep httpd 9487? 00:00:00 httpd 9488? 00:00:00 httpd 9489? 00:00:00 httpd 9490? 00:00:00 httpd Den eigentlichen Test führen Sie dann mit einem Webbrowser aus. Wenn Sie lokal an derselben Maschine arbeiten, die den Webserver ausführt, rufen Sie einfach die URL auf. Alternativ können Sie natürlich auch von einem anderen PC aus über das Netzwerk zugreifen. Der angezeigte Content befindet sich im Document- Root-Verzeichnis /usr/local/apache2/htdocs, wenn Sie Apache von Hand installiert haben. Sie können hier Ihre eigenen Inhalte unterbringen. Wenn Sie Apache selbst konfiguriert und kompiliert haben, enthält dessen Konfigurationsverzeichnis /usr/local/apache2/conf ein Unterverzeichnis namens extra. In diesem Unterverzeichnis finden Sie weitere Konfigurationsdateien, die mittels include-anweisungen in die Datei httpd.conf integriert worden sind: httpd-autoindex.conf httpd-languages.conf httpd-ssl.conf httpd-dav.conf httpd-manual.conf httpd-userdir.conf httpd-default.conf httpd-mpm.conf httpd-vhosts.conf httpd-info.conf httpd-multilang-errordoc.conf Standardmäßig sind die zu diesen Dateien gehörenden include-anweisungen auskommentiert. Wenn Sie eine der Konfigurationsdateien benötigen, müssen Sie lediglich in der Datei httpd.conf in der entsprechenden Zeile am Anfang die Raute entfernen. Der Verwendungszweck der einzelnen Dateien ist in der Hauptkonfigurationsdatei httpd.conf dokumentiert. Konfigurationsdateien Die Konfigurationsdateien für Apache befinden sich üblicherweise in den Verzeichnissen /usr/local/apache2/conf (wenn Sie den Server selbst kompiliert haben, befinden Sie sich genau da), /etc/apache, /etc/apache2 oder /etc/httpd/conf. In Abhängigkeit von der verwendeten Linux-Distribution können Sie sich aber auch noch in anderen Verzeichnissen befinden (hier hilft z. B. find /etc name httpd.conf). Leider variiert auch der Inhalt des jeweiligen Konfigurationsverzeichnisses. Das liegt daran, dass in den meisten Linux-Distributionen Teile der Hauptkonfigurationsdatei httpd.conf in kleinere Dateien ausgelagert wurden, um die Übersichtlichkeit zu erhöhen. In der LPI-Prüfung wird häufig nach den folgenden Dateien gefragt: httpd.conf ist die Hauptkonfigurationsdatei. In dieser Datei stehen alle Parameter, die für den Betrieb des Webservers notwendig sind. srm.conf enthielt früher die ResourceConfig-Anweisungen. Da diese Anweisungen inzwischen mit in httpd.conf integriert worden sind, ist srm.conf heutzutage leer oder gar nicht mehr vorhanden. access.conf enthielt früher die Anweisungen zur Zugriffssteuerung. Auch diese Anweisungen wurden inzwischen mit in die Datei httpd.conf aufgenommen. Tipp Wenn Sie httpd-manual.conf aktivieren, indem Sie die vorangestellte Raute entfernen, haben Sie Zugriff auf das Manual von Apache. Sie müssen anschließend lediglich apachectl restart ausführen und können daraufhin auf die URL localhost/manual zugreifen. Wichtige Einträge in der Datei httpd.conf Unabhängig von deren tatsächlicher Wichtigkeit werden nun einige Einträge aus der Datei 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 richtigen Antworten ermitteln. 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 Webanfragen lauscht. Standardmäßig ist hier Port 80 ohne IP-Adresse angegeben

30 208 HTTP-Dienste Grundlegende Apache-Konfiguration 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 Serverauslastungen 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, Serverkonfiguration, CGI-Skripte und Ähnliches findet. DocumentRoot ist das Hauptverzeichnis für Dokumente, zu dem die Öffentlichkeit Zugang haben soll. Prüfungstipp Diese Einträge sollten Sie unbedingt kennen. Achten Sie darauf, dass Sie nicht Port und 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! Starten und stoppen Es gibt mehrere Methoden, um einen Apache Webserver 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, 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 erhalten. 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. Im Allgemeinen ist apachectl nicht sehr gesprächig und gibt lediglich beim configtest eine Erfolgsmeldung aus. In allen anderen Fällen sollten Sie sich bei einem Produktionsserver davon überzeugen, dass er die von Ihnen angeforderte Aktion auch wirklich durchgeführt hat. [root@arch-cent bin]#./apachectl configtest Syntax OK Die Richtigkeit der Konfigurationsänderungen wurde bestätigt. Zugriffssteuerung Zur Steuerung des Zugriffs auf eine Webseite gibt es eine ganze Reihe von Modulen, die entweder standardmäßig im Kern von Apache integriert sind oder optional geladen werden können. Drei ausdrücklich als Prüfungsthema angegebene Module sind: mod_auth_basic zur Authentifizierung in Klartext mod_authz_host zur Zugriffskontrolle über Hostnamen oder IP-Adressen (früher mod_access) mod_access_compat ist ein Vorläufer von mod_authz_host, der weniger Direktiven beinhaltet. Diese drei Module sind im Kern des Servers enthalten und müssen nicht explizit geladen werden. Wenn eine Webseite Informationen enthält, die nicht für die Öffentlichkeit bestimmt sind, diese Seite aber im Internet erreichbar ist, sollten Sie eine Authentifizierung von den Benutzern anfordern. Hier kommt das Modul mod_auth_basic zum Zuge. 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 übersichtlich darstellen lässt und andererseits durch kurze Kommandos leicht nachzustellen ist: [root@arch-cent /]# cd /usr/local/apache2/bin/ Das folgende Kommando erstellt eine Passwortdatei und legt im selben Arbeitsschritt den ersten Benutzer samt Passwort an. Die Passwortdatei befindet sich anschließend in ServerRoot /usr/local/apache

31 208 HTTP-Dienste Grundlegende Apache-Konfiguration bin]#./htpasswd -c../password.list user1 New password: Re-type new password: Adding password for user user1 Wenn Sie weitere Benutzer für Ihren Webserver erstellen wollen, 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 user2 New password: Re-type new password: Adding password for user user2 Wechseln Sie in eine Verzeichnisebene höher, um den Inhalt der Passwortdatei zu betrachten. Sie werden feststellen, dass die Passwörter verschlüsselt abgespeichert wurden: [root@arch-cent bin]# cd.. [root@arch-cent apache2]# cat password.list user1:$apr1$msadrkjd$riokhfpnrxem3sfwu0vvf/ user2:$apr1$puqjazbn$sgfv1mez2animkzqiy22d0 Um die Authentifizierung für die standardmäßig vorhandene Webseite anzufordern, müssen Sie die Konfigurationsdatei httpd.conf anpassen. Suchen Sie die Sektion <Directory /> und fügen Sie die unten fett gedruckten Zeilen hinzu: <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all AuthName "Authentifizierung erforderlich" AuthType Basic AuthUserFile password.list require valid-user </Directory> Der Inhalt des Statements AuthName ist frei wählbar und wird dem Benutzer im Authentifizierungsdialog angezeigt. Mit AuthType Basic wird die Methode der Authentifizierung eingestellt. AuthUserFile zeigt auf die soeben erstellte Passwortdatei. Diese Datei befindet sich im vorliegenden Beispiel im Hauptverzeichnis des Webservers, weshalb hier auf eine Pfadangabe verzichtet werden kann. Das Statement require valid-user legt fest, dass sich hier nur gültige Benutzer anmelden können. Es ist übrigens auch möglich, konkreten Benutzern exklusiven Zugriff einzuräumen. Sie können die Authentifizierung nun mithilfe eines Webbrowsers testen und anschließend die soeben vorgenommenen Änderungen aus der Datei httpd.conf löschen oder auskommentieren. Diese Maßnahme ist für die nächste Lektion nötig..htaccess Eine andere Methode der Zugriffssteuerung ist die Verwendung einer verborgenen Datei mit der Bezeichnung.htaccess. Dieses Verfahren unterscheidet sich kaum von dem bereits beschriebenen Verfahren. Sie können sogar die zuvor erstellte Passwortdatei verwenden. Damit Sie.htaccess-Dateien verwenden können, müssen Sie zuerst in der Datei httpd.conf die folgende Einstellung in der gewünschten <Directory />-Direktive konfigurieren: AllowOverride All Erstellen Sie anschließend eine Datei mit der Bezeichnung.htaccess und folgendem Inhalt im DocumentRoot des Webservers: AuthName "Authentifizierung erforderlich" AuthType Basic AuthUserFile password.list require valid-user Wie Sie sehen, sind Inhalt und Syntax mit den Einträgen in der httpd.conf-datei, die Sie vorher gemacht haben, absolut identisch. Der einzige Vorzug dieser Datei ist, dass sie auch ein gewöhnlicher Benutzer erstellen kann. Dazu benötigt der Benutzer keine Schreibrechte auf die Datei httpd.conf, sondern lediglich im jeweiligen Webverzeichnis. Auf diese Art kann die Verwaltung einzelner Webverzeichnisse an unterschiedliche Benutzer delegiert werden. Testen Sie nun erneut den Zugriff auf den Webserver. Wenn Sie wiederholt Tests durchführen, sollten Sie nach jedem Test den Cache Ihres Browsers leeren. Ansonsten werden Ihre Tests zu unerwarteten Ergebnissen führen, weil Webseiten eventuell ohne Authentifizierung direkt aus dem Browsercache heraus angezeigt werden. Sie können die Datei.htaccess ganz einfach immer in die Verzeichnisse kopieren, auf die Sie den Zugriff beschränken wollen. Es sollte bei hochfrequentierten Servern aber berücksichtigt werden, dass die Verwendung dieser Methode die Performance des Servers negativ beeinflusst..htgroup In größeren Umgebungen kann es sinnvoll sein, die Benutzer, die auf Webressourcen zugreifen dürfen, zu gruppieren. Im Prinzip können Sie die Datei zur Gruppierung von Benutzern nennen, wie Sie wollen, aber der Name.htgroup hat sich im Laufe der

32 208 HTTP-Dienste Grundlegende Apache-Konfiguration Jahre eingebürgert. Diese Datei durch einen Punkt am Anfang zu verstecken ist grundsätzlich eine gute Idee, um die Datei vor neugierigen Augen zu verbergen, auch wenn sie keine Passwörter enthält. Um das Verfahren zu testen, erstellen Sie passend zu den bereits erstellten Benutzern in der Datei password.list die Datei.htgroup, ebenfalls im DocumentRoot-Verzeichnis des Servers. Die Datei.htgroup könnte diesen Inhalt haben: all:user1,user2 agents:user1 Ändern Sie nun Ihre bestehende.htaccess-datei ab, um die Gruppendatei zu verwenden: AuthName "Zugriff nur für Agents" AuthType Basic AuthUserFile password.list AuthGroupFile.htgroup require group agents Beachten Sie bitte, dass AuthUserFile angegeben werden muss, auch wenn die Zugangsvoraussetzung von der Gruppe abhängig ist. AuthName zeigt einem Benutzer schon beim ersten Zugriff, wer auf dieses Webverzeichnis zugreifen darf. Wenn Sie einen Test durchführen (nachdem Sie den Browsercache geleert haben), werden Sie feststellen, dass user1 auf das Webverzeichnis zugreifen darf und user2 nicht. Hinweis Es gibt wesentlich komplexere Methoden, um den Zugriff auf einen Webserver bzw. auf dessen Verzeichnisse zu steuern, wie Sie es sich wahrscheinlich schon gedacht haben. Für die Prüfung müssen Sie aber lediglich die bisher beschriebenen Mechanismen kennen. Zugriff über Namen und IP-Adressen steuern Wenn eine Webseite lediglich im lokalen Netz erreichbar ist, kann man möglicherweise auf die Authentifizierung der Benutzer verzichten. Das erspart sowohl dem Administrator Zeit, weil er nicht pro User den Zugriff einrichten muss, als auch dem Benutzer, weil er sich nicht mehr an der Webseite anmelden muss. In solchen Fällen kann eine Zugriffssteuerung über die IP-Adressen der Clientcomputer oder deren Host- bzw. Domänennamen erfolgen. Zuständig sind hierfür die Module mod_ authz_host und mod_access_compat. Sie müssen diese Module nicht konfigurieren, denn sie werden standardmäßig geladen. Die Erlaubnis zum Zugriff auf eine Webseite erfolgt dann innerhalb deren Konfiguration mithilfe der Direktive Allow. Hier ein paar Beispiele: Allow from beispiel.com Erlaubt den Computern der Domäne beispiel.com den Zugriff. Es ist die Angabe kompletter FQDNs wie auch die Angabe von Domänen. Allow from Allow from /16 Allow from / Die vorangehenden drei Zeilen sind von der Aussage her identisch. In allen drei Fällen wird Clients, die private Adressen der C-Klasse verwenden, der Zugriff gestattet. Selbstverständlich können auch IPv6-Adressen herangezogen werden: Allow from 2001:6F8:1D2D::/48 Module integrieren Funktionen, die von den meisten Anwendern benötigt werden, sind im Kern von Apache fest integriert. Wenn weitere Funktionen benötigt werden, müssen diese als Module eingebunden werden. Die Integration von Perl und insbesondere PHP gehört allerdings immer noch zu den Standardaufgaben bei der Apache-Konfiguration. Integration von mod_php PHP ist eine Skriptsprache, mit der es möglich ist, HTML-Code dynamisch zu generieren. Sehr viele der heutigen Webseiten verwenden PHP auch, um Zugriffe auf MySQL-Datenbanken durchzuführen. Die folgende Anleitung wird Ihnen dabei helfen, PHP in Ihren Webserver zu integrieren. Erstellen Sie zunächst ein Installationsverzeichnis und wechseln Sie hinein: /]# mkdir /usr/src/php /]# cd /usr/src/php Laden Sie anschließend den entsprechenden tar-ball für PHP vom Webserver php.net herunter und packen Sie ihn aus: php]# wget php]# tar -xvjf php tar.bz2 Beachten Sie bitte, dass es inzwischen eine neuere Version von PHP geben könnte. Besuchen Sie ggf. die php.net-webseite um Näheres zu erfahren, falls der oben genannte Downloadlink nicht mehr funktionieren sollte. Wechseln Sie nun in das entstandene Installationsverzeichnis: php]# cd php

33 208 HTTP-Dienste Grundlegende Apache-Konfiguration Die Konfiguration von PHP setzt das Entwicklungspaket libxml2-devel voraus. Sie sollten das Paket also spätestens jetzt nachinstallieren: php-5.3.6]# yum install libxml2-devel Bei Systemen, die auf Debian basieren, heißt das entsprechende Paket übrigens libxml2-dev. Jetzt können Sie die Konfiguration durchführen. Sie müssen bei der Konfiguration zumindest das Verzeichnis angeben, in dem Apache seine Erweiterungen erwartet: php-5.3.6]#./configure --with-apxs2=/usr/local/apache2/bin/apxs Wenn die Konfiguration sauber durchgelaufen ist, können Sie PHP kompilieren, testen und installieren. Der Test ist übrigens optional und dauert relativ lange. Wenn Sie also lediglich ein Testsystem zu Prüfungsvorbereitungszwecken konfigurieren, können Sie den Test getrost überspringen. php-5.3.6]# make php-5.3.6]# make test php-5.3.6]# make install Die Installationsroutine hat der Konfigurationsdatei httpd.conf eine Zeile hinzugefügt, die dafür sorgt, dass das PHP-Modul beim nächsten Neustart des Webservers geladen wird: LoadModule php5_module modules/libphp5.so Damit Apache die Dateierweiterungen von PHP selbstständig erkennen kann, sollten Sie allerdings noch die folgende Zeile von Hand in die globale Sektion der Datei httpd.conf eintragen: AddType application/x-httpd-php.php.phtml Überprüfen Sie die Konfiguration des Webservers und starten Sie ihn anschließend neu, um die Konfigurationsänderungen zu übernehmen: bin]#./apachectl configtest bin]#./apachectl restart PHP-Programmierung ist nicht Bestandteil Ihrer Prüfung, aber Sie finden im Internet leicht Beispielskripte um Ihre Konfiguration zu testen, wenn Sie das möchten. Integration von mod_perl Perl ist eine Skriptsprache, die ursprünglich nicht für Webseitenprogrammierung geschrieben worden ist. In den letzten Jahren wurde Perl, zumindest was Webseiten anbelangt, mehr und mehr von PHP verdrängt. Die Installation des Perl-Moduls für Apache funktioniert etwas anders als die Integration von PHP. Konsequenterweise kommt bei der Installation ein Perl-Skript zum Einsatz, was natürlich voraussetzt, dass der Perl-Interpreter schon auf dem System vorhanden ist. Bei den meisten aktuellen Linux-Distributionen ist dieser Interpreter in einer Standardinstallation schon enthalten. Wenn Sie die folgenden Schritte durchführen, sollten Sie eine funktionierende Apache-Konfiguration mit Perl erhalten. Legen Sie zunächst wieder ein Installationsverzeichnis an, und wechseln Sie hinein: /]# mkdir /usr/src/mod_perl /]# cd /usr/src/mod_perl Laden Sie anschließend das Perl-Modul als tar-ball von der Apache-Webseite herunter: mod_perl]# wget current.tar.gz Es könnte jetzt natürlich schon neuere Versionen des Moduls geben. Passen Sie dann die Kommandos (bzw. hier die URL) entsprechend an. Packen Sie den tar-ball aus: mod_perl]# tar -xvzf mod_perl-2.0-current.tar.gz Wechseln Sie anschließend in das gerade entstandene Installationsverzeichnis und führen Sie das Perl-Skript zur Erstellung des Makefiles aus wie angegeben. Die Variable MP_APXS gibt hierbei den absoluten Pfad zu den Apache-Erweiterungen an. mod_perl]# cd mod_perl mod_perl-2.0.5]# perl Makefile.PL MP_APXS=/usr/local/apache2/ bin/apxs Ab hier unterscheidet sich die Installation nicht mehr von der Installation anderer Programme, die als tar-ball vorliegen: mod_perl-2.0.5]# make mod_perl-2.0.5]# make install Sie müssen jetzt nur noch dafür sorgen, dass Apache das Perl-Modul lädt. Fügen Sie der Konfigurationsdatei httpd.conf deshalb noch folgende Zeile hinzu: LoadModule perl_module modules/mod_perl.so Starten Sie Apache anschließend einmal neu, damit die Konfigurationsänderungen wirksam werden: mod_perl-2.0.5]# /usr/local/apache2/bin/apachectl restart

34 208 HTTP-Dienste Grundlegende Apache-Konfiguration Auch Perl-Programmierung ist nicht Bestandteil der LPI-Prüfungen. Deshalb muss ich auch hier bezüglich Perl-Programmen zu Testzwecken auf das Internet verweisen. Protokollierungseinstellungen Was die Protokollierung anbelangt, werden Sie bei den meisten Apache Webservern, die paketbasiert installiert worden sind, feststellen, dass die Protokolle der Webserver im Verzeichnis /var/log/apache2 liegen. Hier befinden sich im Normalfall die Dateien access.log und error.log. Da diese Dateien üblicherweise von logrotate rotiert werden, finden Sie hier auch noch archivierte, komprimierte Versionen dieser beiden Dateien. In der Datei access.log wird jede einzelne URL, die abgerufen wird, protokolliert. Es ist deshalb möglich, sehr genau festzustellen, von welchen Computern aus auf welche Inhalte zugegriffen worden ist. Fehlgeschlagene Zugriffe werden hier ebenfalls protokolliert. Die Datei error.log enthält keine Einträge, die auf Zugriffe durch Benutzer zurückzuführen sind, sondern vielmehr nur schwerwiegende Fehler. Hierbei kann es sich um Fehler durch Fehlkonfiguration des Servers handeln oder Module, die sich aus irgendeinem Grund nicht laden lassen. Sie sollten diese Datei also unbedingt konsultieren, wenn es zu Fehlfunktionen des Servers kommt. Wenn Sie Ihren Webserver nach der Anleitung in diesem Buch konfiguriert haben, finden Sie die Protokolldateien in einem Unterverzeichnis des Webservers, nämlich in /usr/local/apache2/logs. Die Dateinamen sind hier access_log und error_log. Die Position und die Dateinamen der Protokolldateien werden in der Konfigurationsdatei httpd.conf festgelegt. Hierbei sind die Pfadangaben relativ ab dem Server- Root zu betrachten: CustomLog "logs/access_log" common ErrorLog "logs/error_log" Leistungseinstellungen In der Konfigurationsdatei httpd.conf finden Sie einige Direktiven, die sich auf die Leistung des Servers auswirken. Diese Direktiven müssen an die Umstände angepasst werden, unter denen der Server läuft. Wenn zu erwarten ist, dass ein Webserver ständig von sehr vielen Benutzern verwendet wird, 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 Systemressourcen verschwenden. Entsprechend den Anforderungen können Sie folgende Parameter konfigurieren: StartServers: Anzahl der Serverprozesse beim Start MinSpareServers: minimale Anzahl von Serverprozessen, die als Reserve zur Verfügung stehen müssen MaxSpareServers: maximale Anzahl von Serverprozessen, die als Reserve zur Verfügung stehen dürfen ServerLimit: maximale Anzahl von Serverprozessen, die zur Laufzeit des Servers ausgeführt werden dürfen MaxClients: maximale Anzahl von Serverprozessen, die gleichzeitig ausgeführt werden dürfen MaxRequestsPerChild: maximale Anzahl von Anfragen, die an einen Serverprozess gesendet werden dürfen Konfiguration virtueller Hosts Wenn auf einem Webserver mehrere Webseiten gehostet werden sollen, gibt es grundsätzlich drei verschieden Möglichkeiten, um diese Seiten voneinander zu unterscheiden. Sie könnten jeder Webseite eine eigene IP-Adresse zuordnen und die jeweiligen IP-Adressen in den entsprechenden DNS-Zonen eintragen (lassen). Da öffentliche IP-Adressen Geld kosten, ist das allerdings keine sehr gute Wahl. Eine weitere Möglichkeit besteht darin, unterschiedliche TCP-Ports für die verschiedenen Webseiten zu verwenden. Das ist allerdings bei öffentlich zugänglichen Webseiten schon aus kosmetischen Gründen abzulehnen, weil die Besucher der Webseite den entsprechenden Port dann in der URL-Zeile angeben müssten. Das sähe dann beispielsweise so aus: also nicht gerade besonders professionell. Die dritte und im Normalfall beste Lösung ist die Unterscheidung von Webseiten über den Hostnamen. Die URL, die der Benutzer in seinen Browser eingegeben hat, wird innerhalb der Abfrage an den Webserver übermittelt. Diese URL kann der Webserver auswerten und einem virtuellen Host zuordnen. Unabhängig davon, welche dieser drei Varianten konfiguriert werden soll, müssen in der Datei httpd.conf virtuelle Hosts erstellt werden. Hierbei handelt es sich jeweils um Gruppen von Direktiven, die am Anfang durch <VirtualHost> und am Ende mit </VirtualHost> eingeschlossen werden. Eine komplette Konfiguration für einen virtuellen Host könnte z. B. so aussehen: <VirtualHost ServerAdmin DocumentRoot /var/www/super-admin ServerName ErrorLog logs/super-admin-error_log CustomLog logs/super-admin-access_log common </VirtualHost>

35 208 HTTP-Dienste Apache für HTTPS konfigurieren Der Inhalt der Direktiven erklärt sich fast von selbst. Der wichtigste Eintrag ist jedoch DocumentRoot, weil diese Direktive dem Webserver sagt, in welchem Verzeichnis der zur angegebenen URL passende Content zu finden ist. Die einleitende Zeile fällt unterschiedlich aus, je nachdem, auf welche Art die Webseite identifiziert werden soll. Hier ein paar Beispiele: Identifikation durch die IPv4-Adresse: <VirtualHost > Identifikation durch die IPv6-Adresse: <VirtualHost [2a01:198:5dd:7a03:a00:27ff:fe2d:5987]> Identifikation durch den verwendeten TCP-Port: <VirtualHost *:82> Identifikation durch den Hostnamen und einen TCP-Port: <VirtualHost Beachten Sie, dass die Angabe eines TCP-Ports innerhalb eines virtuellen Hosts nicht verhindert, dass der Server weiterhin zusätzlich an Port 80 lauscht. Die Redirect-Direktive Redirects werden z. B. verwendet, wenn der Inhalt eines Webverzeichnisses an eine andere Stelle verschoben wurde. Der Inhalt des entsprechenden Verzeichnisses kann sich hierbei auch auf einem anderen Webserver befinden. In der Redirect-Direktive kann ein Statuscode angegeben werden. Ist das nicht der Fall, wird per Voreinstellung der Wert 302 (found) an den Client gesendet. Das lokale Verzeichnis wird relativ zum DocumentRoot angegeben, während das Ziel absolut und als URL notiert wird. Im folgenden Beispiel wird das lokale Unterverzeichnis /pdf an die URL umgeleitet. An den Client wird der Statuscode 301 (moved permanently) ausgegeben. Diese Statusinformation ist besonders für Suchmaschinen interessant, weil eine dauerhafte Änderung (im Gegensatz zu einer temporären Änderung) im Index der Suchmaschinen berücksichtigt werden sollte. Redirect permanent /pdf Für den Statuscode eines Redirects können folgende Argumente verwendet werden: permanent: Der Server sendet den Statuscode 301 (moved permanently), um anzuzeigen, dass die Ressource dauerhaft unter der neuen URL erreichbar ist. temp: Der Server gibt den Statuscode 302 (found) zurück. Dies ist die Standardeinstellung, wenn Sie kein Statusargument angeben. 356 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 Webverzeichnisses 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 Apache für HTTPS konfigurieren Wichtung: 3 Beschreibung: Die Prüflinge sollten dazu in der Lage sein, einen Webserver für die Nutzung von HTTPS zu konfigurieren. Wichtigste Wissensgebiete: SSL-Konfigurationsdateien, -Begriffe und -Dienstprogramme Fähigkeit, einen privaten Serverschlüssel und einen Zertifikats-Request (CSR) für eine kommerzielle Zertifizierungsstelle zu erstellen Fähigkeit, ein selbst signiertes Zertifikat mithilfe einer privaten CA zu erstellen Fähigkeit, ein Zertifikat und einen Schlüssel zu installieren Konfiguration virtueller Hosts mithilfe von SNI Wissen über das Verhalten virtueller Hosts in Verbindung mit SSL Sicherheitsbelange bei der SSL-Nutzung, deaktivieren unsicherer Protokolle und Verschlüsselungen Liste wichtiger Dateien, Verzeichnisse und Anwendungen: Apache-Konfigurationsdateien /etc/ssl/*, /etc/pki/* openssl,ca.pl SSLEngine, SSLCertificateKeyFile, SSLCertificateFile SSLCACertificateFile, SSLCACertificatePath SSLProtocol, SSLCipherSuite, ServerTokens, ServerSignature, TraceEnable Allgemeines Auf den letzten Seiten haben Sie eine Menge über die Grundkonfiguration eines Apache Webservers erfahren. In der Praxis werden Sie aber noch weitere Funktionen 357

36 208 HTTP-Dienste Apache für HTTPS konfigurieren eines Webservers benötigen. Webserver, die von Internet Service Providern betrieben 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 häufig benötigte Funktionalität 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. Wenn eine Webseite eine Authentifizierung verlangt oder vertrauliche Daten übermittelt, sollte die Verbindung verschlüsselt erfolgen. Es wäre sonst zu befürchten, dass jemand die Verbindung abhorcht und dabei die Authentifizierungsdaten 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 eine 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 Praxis 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, sollten Sie über ein Zertifikat für diese Seite verfügen, das von einer öffentlichen Zertifizierungsstelle (z. B. GlobalSign, Thawte, Verisign) ausgestellt wurde. Ansonsten erhalten Benutzer beim Zugriff auf die Webseite eine Warnmeldung und meiden die Seite möglicherweise. Damit das Zertifikat eines Webservers 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 Verwaltungswebseite (z. B. phpmyadmin, CUPS, Webmin o. Ä.) abzusichern, 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önnen Sie ohne weiteres selbst signierte Zertifikate verwenden und entsprechende Warnmeldungen des Browsers ignorieren. Konfiguration von SSL mittels openssl Die Konfiguration auf den folgenden Seiten basiert 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: ~]# yum install httpd Wenn Sie CentOS verwenden, wird das Modul mod_ssl automatisch mitinstalliert. Bei einem System, auf dem Fedora ausgeführt wird, müssen Sie SSL zusätzlich installieren: /]# yum install mod_ssl Bei den Red Hat-basierten Systemen finden Sie die Konfigurationsdateien im Verzeichnis /etc/httpd. Die Datei httpd.conf liegt jeweils im Verzeichnis /etc/httpd/conf. Alle anderen Verzeichnisse sind durch Lesen der Hauptkonfigurationsdatei problemlos zu ermitteln (z. B. ServerRoot und DocumentRoot). Wenn Sie mittels yum einen Apache Webserver installiert haben, 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. /]# mkdir /etc/httpd/ssl /]# cd /etc/httpd/ssl Verwenden Sie anschließend openssl, um das Zertifikat und den Schlüssel zu generieren. Die Benutzereingaben sind wieder fett gedruckt: ssl]# openssl req -new -x509 -nodes -out arch-cent.homelinux.net.crt -keyout arch-cent.homelinux.net.key Generating 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 incorporated into your certificate request

37 208 HTTP-Dienste Apache für HTTPS konfigurieren 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 blank For some fields there will be a default value, If you enter '.', the field will be left blank Country Name (2 letter code) [GB]:DE State or Province Name (full name) [Berkshire]:Germany Locality Name (eg, city) [Newbury]:Berlin Organization Name (eg, company) [My Company Ltd]:Maassen Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server's hostname) []:arch-cent.homelinux.net Address []:harald@nwa-net.de Es sollten nun zwei Dateien im aktuellen Verzeichnis liegen. Die Datei mit der Erweiterung crt enthält das Zertifikat mit dem öffentlichen Schlüssel, während die Datei mit der Erweiterung key den privaten Schlüssel enthält: [root@arch-cent ssl]# ls -l insgesamt 16 -rw-r--r-- 1 root root Jun 21:50 arch-cent.homelinux.net.crt -rw-r--r-- 1 root root Jun 21:50 arch-cent.homelinux.net.key Damit der Webserver das Zertifikat und den Schlüssel auch verwendet, müssen Sie die entsprechenden Direktiven der Datei httpd.conf anpassen. Im Fall von CentOS bzw. Fedora wurde der hierfür zuständige Bereich per include-anweisung in die Datei /etc/httpd/conf.d/ssl.conf ausgelagert. Öffnen Sie diese Datei mit einem Editor und suchen Sie nach den Einträgen SSLCertificateFile und SSLCertificateKeyFile. Passen Sie die Dateien an Ihr eigenes Zertifikat und den privaten Schlüssel an: SSLCertificateFile /etc/httpd/ssl/arch-cent.homelinux.net.crt SSLCertificateKeyFile /etc/httpd/ssl/arch-cent.homelinux.net.key Damit die Konfigurationseinstellungen sofort wirksam werden, sollten Sie Apache neu starten. [root@arch-cent ssl]# apachectl restart Greifen Sie nun mit einem beliebigen Webbrowser auf die abgesicherte Webseite zu, indem Sie das Präfix angeben. Sie sollten dann eine Sicherheitswarnung erhalten, weil das vom Webserver verwendete Zertifikat nicht von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt worden ist. Die Warnung können Sie in diesem Fall natürlich ignorieren. Nur wenn Sie eine abgesicherte Webseite anderen Benutzern zur Verfügung stellen, sollten Sie ein Zertifikat von einer öffentlichen Zertifizierungsstelle erwerben. Server Name Indication (SNI) Vor Apache v mit OpenSSL v0.9.8 konnte pro IP-Adresse nur jeweils eine SSL- Webseite gebunden werden. Das bedeutete für öffentlich zugängliche HTTPS-Webseiten, dass diese nicht preisgünstig gehostet werden konnten, weil immer eine eigene öffentliche IP-Adresse nötig war. Dieses Manko behebt Server Name Indication (SNI). Das Einzige, was Sie tun müssen, ist mehrere virtuelle Hosts zu erstellen, wie Sie es bereits von normalen HTTP-Seiten her kennen. Sie können zu diesem Zweck weitere Konfigurationsdateien erstellen oder eine bestehende Konfiguration modifizieren. Ein Beispiel für zwei HTTPS-Webseiten sehen Sie hier: NameVirtualHost *:443 <VirtualHost *:443> ServerName DocumentRoot /var/www/beispiel SSLEngine on SSLCertificateFile /etc/ssl/www_beispiel_com.crt SSLCertificateKeyFile / etc/ssl/www_beispiel_com.key SSLCertificateChainFile / etc/ssl/mycertca.crt </VirtualHost> <VirtualHost *:443> ServerName DocumentRoot /var/www/exampel SSLEngine on SSLCertificateFile / etc/ssl/www_exampel_org.crt SSLCertificateKeyFile / etc/ssl/www_exampel_org.key SSLCertificateChainFile / etc/ssl/mycertca.crt </VirtualHost> SSL-Zertifikate mittels CA.pl erstellen Sie können die Zertifizierungsstelle und die Zertifikate, die Sie benötigen, auch mithilfe des Pearl-Skripts CA.pl erstellen. Hierbei handelt es sich um ein Frontend für das Kommando openssl. Sie werden sehen, dass bei der Verwendung von CA.pl kaum Optionen oder Parameter angegeben werden müssen. Vielmehr handelt es sich um ein interaktives Skript, das alle benötigten Angaben vom Benutzer erfragt und anschließend die daraus resultierenden openssl-kommandos zusammenbaut. Erstellen der CA-Hierarchie Wo sich das Skript CA.pl befindet, ist von der verwendeten Distribution abhängig. Verwenden Sie locate oder find, um es zu finden. Sie können innerhalb des Skripts

38 208 HTTP-Dienste Apache für HTTPS konfigurieren Änderungen vornehmen, um es an Ihre Bedürfnisse anzupassen. Das gilt z. B. für die Gültigkeitsdauer von ausgestellten Zertifikaten. CA.pl arbeitet mit relativen Verzeichnisangaben. Das sollten Sie bei der Erstellung einer neuen CA berücksichtigen. Wenn Sie keine Änderungen an dem Skript vornehmen, erstellt CA.pl unterhalb des aktuellen Verzeichnisses eine Verzeichnisstruktur mit dem Namen democa. Um dieses Verhalten zu ändern, sollten Sie im Skript die folgende Zeile ändern: von $CATOP="./demoCA"; nach $CATOP="/etc/pki"; Dasselbe gilt für zwei Zeilen in der Konfigurationsdatei /etc/ssl/openssl.cnf, die denselben Inhalt aufweisen: aus dir=./democa wird dir=/etc/pki So wird das Verzeichnis /etc/pki gleich automatisch zu einem sinnvollen zentralen Speicherort für zertifikatsbezogene Daten. Zum Erstellen der CA übergeben Sie einfach die Option newca. Im folgenden Beispiel sind wieder der Übersichtlichkeit wegen alle Benutzereingaben fett gedruckt. Aus Platzgründen wurden einige für das Verständnis unwichtige Zeilen entfernt. Es müssen übrigens nicht alle Felder zwingend ausgefüllt werden: /usr/lib/ssl/misc/ca.pl -newca CA certificate filename (or enter to create) Making CA certificate... Generating a 2048 bit RSA private key writing new private key to './democa/private/cakey.pem' Enter PEM pass phrase: ****** (wird nicht angezeigt) Verifying - Enter PEM pass phrase: ****** (wird nicht angezeigt) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Germany Locality Name (eg, city) []:Berlin Organization Name (eg, company) [Internet Widgits Pty Ltd]:Maassen Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:Harald Maassen Address []:harald@lpic-2.de Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:sichtbares_passwort An optional company name []:Maassen Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for /etc/pki/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Die Zertifizierungsstelle ist jetzt einsatzbereit. Sehen Sie sich den Inhalt des Verzeichnisses /etc/pki einmal genauer an. Hier finden Sie z. B. die Datei cacert.pem, die Sie benötigen, wenn ein Browser Ihrer Zertifizierungsstelle vertrauen soll. Importieren Sie die Datei in die vertrauenswürdigen Stammzertifizierungsstellen des Browsers. Der nächste Schritt ist die Erstellung einer Zertifikatsanforderung. Beachten Sie bitte, dass CA.pl immer im aktuellen Verzeichnis operiert und auch hier die entsprechenden Dateien generiert. Da Sie diese Dateien jedoch ohnehin später an einen anderen Ort im Dateisystem verschieben werden, ist dieses Verhalten in Ordnung. Führen Sie den Request wie folgt durch: root@archangel:/# /usr/lib/ssl/misc/ca.pl -newreq Generating a 2048 bit RSA private key writing new private key to 'newkey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Germany Locality Name (eg, city) []:Berlin Organization Name (eg, company) [Internet Widgits Pty Ltd]:Maassen Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Address []:harald@lpic-2.de Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:klartext challenge! An optional company name []:Maassen Request is in newreq.pem, private key is in newkey.pem Auch diesmal wurden weniger wichtige Zeilen entfernt. Die letzte Zeile zeigt das Ergebnis des Kommandos. Es wurden ein privater Schlüssel (newkey.pem) und eine Anforderungsdatei (newreq.pem) generiert. Hinweis Wenn Sie ein Zertifikat von einer kommerziellen Zertifizierungsstelle anfordern müssen, benötigen Sie ebenfalls die Dateien newkey.pem und newreq.pem. Die folgenden Schritte würde dann der Betreiber dieser CA auf einem seiner Systeme durchführen und Ihnen das fertige Zertifikat übermitteln

39 208 HTTP-Dienste Apache für HTTPS konfigurieren Lassen Sie die beiden Dateien zunächst da, wo sie jetzt sind, damit Sie den Request signieren können: /usr/lib/ssl/misc/ca.pl -signreq Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for /etc/pki/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 95:1a:27:fb:5c:3c:ce:a5 Validity Not Before: Jul 9 14:13: GMT Not After : Jul 9 14:13: GMT Subject: countryname = DE stateorprovincename = Germany localityname = Berlin organizationname = Maassen commonname = address = harald@lpic-2.de Signed certificate is in newcert.pem Auch hier wurden wieder unwesentliche Zeilen entfernt. Das neue Zertifikat (newcert.pem) finden Sie im aktuellen Verzeichnis. Um das Zertifikat passwortgeschützt zu sichern, können Sie es mit PKCS12 (PKCS = Public Key Cryptography Standards) sichern. Sie können diese Datei später für den Import auch in fremde Betriebssysteme und Programme verwenden. Dabei werden Sie dann zur Eingabe des bei der Erstellung angegebenen Passworts aufgefordert. Erstellen Sie die PKSC12-Datei so: root@archangel:/# /usr/lib/ssl/misc/ca.pl -pkcs12 "WebZerti" Enter pass phrase for newkey.pem: Enter Export Password: Verifying - Enter Export Password: PKCS #12 file is in newcert.p12 Wie Sie sehen, ist die Datei newcert.p12 erstellt worden. Die Benutzung des erstellten Zertifikats und des privaten Schlüssels funktioniert genauso, als hätten Sie das Kommando openssl zu deren Erstellung angewendet. Eine Wiederholung der entsprechenden Apache-Konfiguration soll deshalb an dieser Stelle nicht erfolgen. Sie sollten natürlich die generierten Dateien jeweils verschieben und aussagekräftig umbenennen, weil das Skript CA.pl immer dieselben Dateinamen erstellt. Direktiven des Moduls mod_ssl und andere Sicherheitseinstellungen Das Apache-Modul mod_ssl bringt viele zusätzliche Direktiven mit. Einige dieser Direktiven haben Sie bereits selbst angewendet, nämlich als Sie den Serverschlüssel und das Zertifikat in die Apache-Konfiguration eingebunden haben. Für die Prüfung sollten Sie aber weitere Direktiven aus diesem Umfeld kennen. SSLEngine aktiviert oder deaktiviert SSL. Typische Platzierung: <VirtualHost _default_:443> SSLEngine on... </VirtualHost> SSLCertificateKeyFile enthält den vollständigen Pfad zum privaten Serverschlüssel. SSLCertificateFile enthält den vollständigen Pfad zum Zertifikat des Servers. SSLCertificateChainFile enthält den Pfad zu einer optionalen Vertrauenskette. Sie können aus mehreren CA-Zertifikaten, von denen sich letztendlich Ihr Serverzertifikat ableitet, eine einzige Datei zusammenstellen und diese hier hinterlegen. Diese Datei enthält natürlich nur die öffentlichen Schlüssel der CAs. SSLCACertificateFile ähnelt SSLCertificateChainFile, enthält aber die Vertrauenskette der CAs, die die Zertifikate für die Clients ausgestellt haben. SSLCACertificatePath ähnelt SSLCACertificateFile, zeigt aber auf ein Verzeichnis, das die Zertifikate der CAs enthält und nicht auf eine Vertrauenskette in Form einer Datei. SSLProtocol legt fest, welche SSL-Protokolle erlaubt sind. Infrage kommen hier SSLv2, SSLv3, TLSv1, TLSv1.1,TLSv1.2 oder All. Die Groß-/Kleinschreibweise der Protokolle muss berücksichtigt werden! SSLCipherSuite ist eine durch Doppelpunkte getrennte Auflistung der kryptographischen Algorithmen, die der Server verwenden darf. Je»strenger«die Kette ist, desto mehr Rechenzeit wird benötigt. Die folgenden Direktiven gehören nicht zum Modul mod_ssl, enthalten aber wichtige Sicherheitseinstellungen: ServerTokens legt fest, welche Informationen Apache über sich selbst an den Client sendet. In der strengsten Einstellung (Prod) wird lediglich Server: Apache übermittelt. Wird diese Direktive mit All konfiguriert, informiert Apache den Client über seine genaue Version, das installierte Betriebssystem und die geladenen Module. Eine solche Konfiguration sollten Sie natürlich vermeiden. ServerSignature erlaubt es Ihnen automatisch, den Fehlermeldungen eine Fußnote hinzuzufügen. Das ist hilfreich, wenn Sie bei verketteten Konfigurationen herausfinden wollen, welcher Server eine Fehlermeldung generiert hat

40 208 HTTP-Dienste Implementieren von Squid als Cache-Proxy TraceEnable sollte aus Sicherheitsgründen mit off konfiguriert werden. Dadurch wird unterbunden, dass potenzielle Angreifer zusätzliche Informationen über den Webserver erlangen können, z. B. ob ein Reverse-Proxy zwischengeschaltet ist oder ob der Server direkt antwortet. Achtung Bitte deinstallieren Sie Apache jetzt noch nicht, nur weil dieses Thema nun abgeschlossen ist. Sie können ihn später noch im Zusammenhang mit nginx verwenden! 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 Internetzugä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 Implementieren von Squid als Cache-Proxy Wichtung: 2 Beschreibung: Die Prüflinge sollten dazu in der Lage sein, einen Proxy-Server zu installieren und zu konfigurieren, einschließlich der Zugriffsregeln, der Authentifizierung und der Ressourcennutzung. Wichtigste Wissensgebiete: Squid 3.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 anzufordern, zwischenzuspeichern und anschließend an die Client-Computer auszuliefern. Ursprünglich wurden Proxy-Server in Unternehmensnetzwerken hauptsächlich eingesetzt, um die Bandbreite des Internetzugangs optimal nutzen zu können und Client-Anfragen mit zwischengespeicherten Webseiten schneller versorgen zu können. Die Möglichkeit, den Zugriff auf bestimmte Webseiten zu sperren oder den Zugriff auf das Web auf bestimmte Client-Computer zu beschränken, spielte zunächst eine untergeordnete Rolle. Da die fertigen Squid-Proxys, die als Pakete für die verschiedenen Linux-Distributionen vorliegen, sich nicht wesentlich voneinander unterscheiden, können Sie diesmal auch auf ein solches Paket zurückgreifen. Die Konfiguration eines von Hand installierten Squids 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 Hier finden Sie auch Informationen über Bezugsquellen der aktuellen Squid-Versionen. Die hier Schritt für Schritt dokumentierte Installation von Squid wurde auf einem Debian 6.0-System durchgeführt. Die ersten Arbeitsschritte sind Routinearbeiten: Arbeitsverzeichnis erstellen, Quellpaket herunterladen, dekomprimieren und entpacken. root@arch-deb:~# mkdir /usr/src/squid root@arch-deb:~# cd /usr/src/squid root@arch-deb:/usr/src/squid# wget ftp://ftp.fu-berlin.de/unix/www/squid/ archive/3.2/squid tar.bz2 root@arch-deb:/usr/src/squid# bunzip2 squid tar.bz2 root@arch-deb:/usr/src/squid# tar -xvf squid tar root@arch-deb:/usr/src/squid# cd squid / Das Konfigurationsskript benötigt für seine Ausführung, zumindest unter Debian, das Paket build-essential. Sie sollten dieses Paket also spätestens jetzt installieren: root@arch-deb:/usr/src/squid/squid # apt-get install build-essential Übergeben Sie dem Konfigurationsskript das Zielverzeichnis des Programms mit der Option --prefix. root@arch-deb:/usr/src/squid/squid #./configure --prefix=/usr/local/ squid

41 208 HTTP-Dienste Implementieren von Squid als Cache-Proxy Wenn die Konfiguration fertig ist, können Sie wie gewohnt kompilieren und installieren: make make install Nach der Installation finden Sie den kompletten Server inklusive Konfigurationsdateien und Verzeichnis für Logfiles unterhalb von /usr/local/squid. Wenn Sie zunächst mit dieser rohen Konfiguration arbeiten wollen, müssen Sie das Unterverzeichnis logs für Squid beschreibbar machen. Da Squid per default unter dem Sicherheitskontext von nobody läuft, können Sie einfach dem User nobody die Eigentümerschaft an dem Verzeichnis für die Logdateien übertragen: chown nobody /usr/local/squid/var/logs/ -R Da es sich lediglich um eine Testumgebung handelt, in der Sicherheit keine große Rolle spielt, kann diese unsaubere, aber einfache Konfiguration verwendet werden. Server: Apache/ (Debian GNU/Linux) PHP/ mod_ssl/ OpenSSL/ 0.9.7e mod_perl/1.29 X-Powered-By: ez publish Set-Cookie: ezsessid=aa69db352a0ec2e3fb9ab1bbe347135b; path=/ Expires: Mon, 26 Jul :00:00 GMT Cache-Control: no-cache, must-revalidate Konfiguration Damit Sie die Ergebnisse Ihrer Konfigurationsarbeiten überprüfen können, sollten Sie zunächst einen Webbrowser Ihrer Wahl so konfigurieren, dass er durch den Squid-Proxy hindurch auf das Internet zugreift. Wenn Sie Firefox oder Iceweasel unter Linux verwenden, finden Sie die entsprechende Registerkarte unter Bearbeiten Einstellungen Erweitert Netzwerk Einstellungen. Tragen Sie hier die Adresse des Proxy-Servers und den TCP-Port 3128 ein. Bevor Sie den Server in Betrieb nehmen können, muss der Cache einmalig initialisiert werden: /usr/local/squid/sbin/squid -z 2011/06/25 19:25:35 kid1 Creating Swap Directories Beachten Sie bitte, dass in der Standardeinstellung nur im Arbeitsspeicher zwischengespeichert wird. Um einen Festplattencache einzurichten, muss zunächst die Konfigurationsdatei squid.conf modifiziert werden. Sie finden auf den nächsten Seiten genaue Informationen über diese Konfigurationsdatei. Wenn der Cache fertig initialisiert worden ist, können Sie den Proxy testweise starten: /usr/local/squid/sbin/squid Es sind keine weiteren Optionen für den Start erforderlich. Squid läuft standardmäßig als Daemon. Warten Sie ein paar Sekunden und prüfen Sie dann, ob der Server nun läuft (ps aux grep squid oder pidof squid sind hier hilfreich). Sollte es wider Erwarten zu Problemen kommen, konsultieren Sie die soeben erstellte Protokolldatei cache.log. Sollte diese Datei leer sein, gibt es ein Berechtigungsproblem mit dieser Datei. Im Lieferumfang von Squid ist ein Testprogramm enthalten, mit dem Sie die Funktionsfähigkeit des Proxys testen können. Mit dem folgenden Kommando greifen Sie über den lokal installierten Proxy (localhost TCP-Port 3128) auf eine Webseite zu. Die Ausgabe des Kommandos sollte der HTML-Code der Webseite sein: /usr/local/squid/bin/squidclient HTTP/ OK Date: Sun, 26 Jun :08:06 GMT Abbildung Tragen Sie die Adresse des Squid-Proxys und die zugehörige Portnummer hier ein. Zur Fehlervermeidung sollten Sie überprüfen, ob der Squid Proxy Server selbst über eine funktionierende Internetverbindung verfügt. Wenn dennoch Fehler auftreten, lesen Sie bitte unbedingt die entsprechende Fehlermeldung im Browserfenster. Die Hauptkonfigurationsdatei des Squid-Proxys ist die Datei squid.conf. Sie finden diese Konfigurationsdatei normalerweise unter /etc/squid.conf oder /etc/squid3/

42 208 HTTP-Dienste Implementieren von Squid als Cache-Proxy squid.conf. Wenn Sie Squid aus einem tar-ball heraus installiert haben, lautet der Dateipfad /usr/local/squid/etc/squid.conf. Sie sollten bezüglich der Grundkonfiguration zumindest die folgenden Optionen in dieser Datei kennen: http_port legt fest, an welchem TCP-Port Squid lauschen soll. Der Standardwert ist cache_mem gibt an, wie viel Arbeitsspeicher für die Zwischenspeicherung verwendet werden darf (z. B. cache_mem 512MB). In der Standardeinstellung werden lediglich 8MB verwendet. cache_dir konfiguriert den festplattenseitigen Cache des Proxys. Hierbei werden (in dieser Reihenfolge) der Typ des Caches, der Verzeichnisname, die Cachegröße in Megabytes, die Anzahl der Unterverzeichnisse erster Ebene und die Anzahl der Unterverzeichnisse zweiter Ebene festgelegt. Beispiel: cache_dir ufs /usr/local/squid/var/cache In diesem Beispiel wird ein Cache vom Typ UFS verwendet. Das Hauptverzeichnis des Caches ist /usr/local/squid/var/cache und wurde auf 1 GB beschränkt. In diesem Verzeichnis werden 16 Unterverzeichnisse und darin wiederum jeweils 256 Unterverzeichnisse erstellt. reply_body_max_size limitiert die Größe eines reply-body und hindert Benutzer daran, übergroße Dateien aus dem Internet herunterzuladen. access_log legt hauptsächlich den Pfad zu der Protokolldatei fest, in der Client- Zugriffe protokolliert werden. Cache auf Festplatte einrichten In der Standardkonfiguration verwendet Squid keinen Festplattencache, wenn Sie den Proxy aus einem tar-ball heraus installiert haben. Damit der Cache initialisiert werden kann, benötigt Squid Schreibrechte auf das Verzeichnis, in dem die Verzeichnishierarchie für den Cache erstellt werden soll. Da in der Testumgebung Sicherheit keine Rolle spielt, können Sie einfach dieses Kommando verwenden: root@arch-deb:/# chown nobody /usr/local/squid/var/cache/ -R In der Datei squid.conf sollten Sie die Parameter für cache_dir Ihren persönlichen Bedürfnissen anpassen. Besonders der erste numerische Wert, der die Cachegröße in Megabytes festlegt, dürfte hier von Interesse sein. Die anderen Parameter von cache_ dir wurden bereits im vorangehenden Abschnitt erläutert. cache_dir ufs /usr/local/squid/var/cache Beenden Sie nun Squid, falls es 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 Directories 2011/06/26 15:24:44 kid1 Making directories in /usr/local/squid/var/cache/ /06/26 15:24:44 kid1 Making directories in /usr/local/squid/var/cache/ /06/26 15:24:44 kid1 Making directories in /usr/local/squid/var/cache/ /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 starten 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 Gruppen 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, gibt es z. B. drei ACL-Einträge in der Datei squid.conf, die für die Definition von privaten IPv4-Netzwerkadressen verwendet werden: acl localnet src /8 acl localnet src /12 acl localnet src /16 Bis hierhin handelt es sich lediglich um eine Deklaration, in der alle privaten IPv4- Adressen als mögliche Quelladressen (src) der ACL localnet hinzugefügt werden. In einem ähnlichen Eintrag wird der lokale Computer selbst definiert: acl localhost src /32 ::1 Ein paar Zeilen später wird dann für den lokalen Computer und die privaten IPv4- Netzwerke der Zugriff auf den Proxy erlaubt: http_access allow localnet http_access allow localhost Hinweis Wenn Sie Squid paketbasiert installieren, wird in den meisten Fällen per Voreinstellung überhaupt kein Zugriff auf den Proxy möglich sein. Sie müssen in diesem Fall die entsprechenden ACLs von Hand erstellen und den Zugriff erlauben

43 208 HTTP-Dienste Implementieren von Squid als Cache-Proxy Sie können den Zugriff auf Webseiten über reguläre Ausdrücke filtern. Dazu benötigen Sie zunächst einen geeigneten ACL-Eintrag in der Datei squid.conf: acl sperrliste url_regex "/usr/local/squid/etc/sperrliste" Den zugehörigen Berechtigungseintrag sollten Sie vor anderen Berechtigungseinträgen positionieren, weil vorangehende allow-einträge sonst frühzeitig Zugriff gewähren, sodass der Filter gar nicht erst greift. http_access deny sperrliste http_access allow localnet http_access allow localhost Sie müssen jetzt nur noch die Datei /usr/local/squid/etc/sperrliste anlegen und Schlagwörter (jeweils in einer eigenen Zeile) eingeben, die in den 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 Praxistipp Wenn Sie den Zugriff auf einen Proxy häufig umkonfigurieren müssen oder wenn eine recht komplexe Zugriffskonfiguration existiert, sollten Sie ein Frontend verwenden, um nicht den Überblick zu verlieren. Eine gute Wahl ist hierfür SquidGuard. Dieses Produkt ist aber nicht prüfungsrelevant. cd /usr/src/squid/squid /helpers/basic_auth/ncsa make make install Normalerweise kommt es bei der Installation zu keinerlei Komplikationen. Die installierten Authentifizierungsmodule finden Sie jetzt im Verzeichnis /usr/local/squid/ libexec. Genau wie bei der Apache-Basisauthentifizierung erstellen Sie als Nächstes eine Passwortdatei mit Benutzernamen und Kennwörtern: cd /usr/local/squid/etc htpasswd -c passwd willi New password: Re-type new password: Bei der Erstellung weiterer Benutzer lassen Sie die Option -c (create) einfach weg. Es würde sonst noch eine neue Datei erstellt und die bestehenden Benutzerkonten gingen verloren. Beispiel: htpasswd passwd susi New password: Re-type new password: Die Passwörter werden in der Passwortdatei verschlüsselt abgespeichert. Sie sollten auf einem Produktionssystem trotzdem sicherstellen, dass die Benutzer nicht das Recht haben, diese Datei zu lesen. cat passwd willi:9evun84sdrjy6 susi:5fmd5ieiinmf2 Benutzerauthentifizierung Sie können den Zugriff auf einen Proxy einschränken, indem Sie eine Authentifizierung konfigurieren. Die Benutzer werden dann beim Zugriff auf Webseiten aufgefordert, einen Benutzernamen und ein Passwort einzugeben. Squid verfügt über mehrere Authentifizierungsmodule, sodass Sie die Anmeldung z. B. über PAM, LDAP, Windows-Domänen oder, im einfachsten Fall, über eine eigene Passwortdatei abwickeln können. Die Verwendung einer Passwortdatei ähnelt der Konfiguration der Basisauthentifizierung von Apache. Führen Sie zunächst die folgenden Schritte durch, um die Authentifizierungskomponenten nachzuinstallieren: Hinweis Sollten Sie Apache in der Zwischenzeit deinstalliert haben, verfügen Sie möglicherweise nicht mehr über das Programm htpasswd. Sie können das Programm aber bei Bedarf einzeln unter folgender Adresse aus dem Internet herunterladen: Damit die Basisauthentifizierung funktioniert, sind einige Anpassungen an der Datei squid.conf erforderlich. Fügen Sie zunächst in einer einzigen Zeile den folgenden Eintrag hinzu, um das Authentifizierungsmodul zu laden:

44 208 HTTP-Dienste Implementieren von nginx als Webserver und Reverse-Proxy auth_param basic program /usr/local/squid/libexec/basic_ncsa_auth /usr/local/ squid/etc/passwd Hierbei zeigt /usr/local/squid/libexec/basic_ncsa_auth den Pfad zum Authentifizierungsmodul und /usr/local/squid/etc/passwd die zu verwendende Passwortdatei an. Es folgen ein paar Grundeinstellungen: auth_param basic children 5 auth_param basic realm Authentifizierung erforderlich! auth_param basic credentialsttl 8 hours Der erste Parameter sorgt dafür, dass fünf Child-Prozesse gestartet werden, wie Sie wahrscheinlich schon selbst vermutet haben. Mit dem zweiten Eintrag können Sie eine Nachricht an den Benutzer übermitteln, wenn er sich anmeldet. Sie sehen das Ergebnis in Abbildung weiter hinten. Der letzte Eintrag sorgt dafür, dass ein Benutzer sich innerhalb von acht Stunden nur einmal authentifizieren muss. Nach einem Browserneustart ist allerdings in jedem Fall eine neue Anmeldung fällig. Als Nächstes müssen Sie der Datei squid.conf einen ACL-Eintrag hinzufügen, der die Verwendung einer Authentifizierung voraussetzt: acl users proxy_auth REQUIRED Bei der Positionierung des Statements, das den soeben erstellten ACL-Eintrag verwendet, ist Vorsicht geboten, was die Reihenfolge der Berechtigungsvergaben anbelangt. Wenn der Eintrag zu weit unten in der Konfiguration steht, könnte ein Benutzer schon Zugriff erlangen, bevor die Authentifizierung überhaupt greift. Beispiel: http_access allow users http_access allow localnet http_access allow localhost Falsch wäre etwa: http_access allow localnet http_access allow localhost http_access allow users Bei der falschen Konfiguration bekäme ein Benutzer bereits Zugriff aufgrund seiner Position in einem lokalen Netz. Sie können die Authentifizierung jetzt mit einem Webbrowser testen. Abbildung Authentifizierung bei einem Proxy-Server Sollte der Authentifizierungsdialog nicht erscheinen und Sie können den Proxy ohne Authentifizierung verwenden, prüfen Sie noch einmal die Reihenfolge der Berechtigungseinträge in der Datei squid.conf. Schieben Sie den Eintrag http_access allow users im Zweifelsfall weiter nach oben Implementieren von nginx als Webserver und Reverse-Proxy Wichtung: 2 Beschreibung: Die Kandidaten sollten dazu in der Lage sein, nginx als Reverse-Proxy zu konfigurieren. Auch Kenntnisse über die Grundkonfiguration als Webserver sind notwendig. Wichtigste Wissensgebiete: nginx Reverse-Proxy Basiswebserver Liste Wichtiger Dateien, Verzeichnisse und Anwendungen: /etc/nginx nginx Allgemeines nginx ist eine Kombination aus Webserver, Reverse-Proxy und -Proxy für IMAP und POP3. Ausgesprochen wird es übrigens»engine X«. Für die Prüfung ist die -Proxy-Funktionalität nicht von Belang, aber Sie sollten zumindest eine Grundkonfiguration als Reverse-Proxy und als Webserver durchführen können. nginx ist plattformunabhängig, und die Windows-Version läuft sogar ohne eine Emulationsschicht direkt auf der Win32-API

45 208 HTTP-Dienste Implementieren von nginx als Webserver und Reverse-Proxy Reverse-Proxy Da Sie vermutlich noch über einen komplett konfigurierten Apache Webserver verfügen, will ich hier mit der Konfiguration von nginx als Reverse-Proxy für einen Apache Server beginnen. In diesem Beispiel wird nginx auf derselben Maschine ausgeführt, wie der Apache Webserver selbst. Zuerst müssen Sie nginx natürlich installieren. Unter Debian und seinen Derivaten können Sie das Paket ganz einfach mit apt-get installieren. Bei CentOS und Fedora müssen Sie zunächst die Paketquellen selbst nachinstallieren, weshalb hier der Einfachheit halber das Beispiel auf einem Ubuntu-Server präsentiert wird. Am besten noch vor der Installation von nginx sollten Sie Apache auf einen anderen Port als den standardmäßigen Port umkonfigurieren. Je nachdem, wie Ihr Apache derzeit konfiguriert ist, müssen Sie in der Datei httpd.conf (bei vielen Distributionen in der Datei ports.conf ) folgende Änderungen vornehmen: NameVirtualHost *:8000 Listen 8000 Sie können natürlich einen anderen Port nehmen als den Port 8000; Hauptsache Sie verwenden keinen Port, der bereits von einem anderen Daemon verwendet wird. Wenn Sie eine Konfigurationsdatei für einen virtuellen Host verwenden, müssen Sie hier ebenfalls eine Änderung vornehmen: <VirtualHost *:8000> Bei einer Standardkonfiguration unter Debian und Ubuntu finden Sie die Konfigurationsdatei im Verzeichnis /etc/apache2/sites-available. Starten Sie den Apache Webserver neu, damit er den geänderten Port verwendet: root@archangel:/etc/apache2/sites-available# apachectl restart Da Apache jetzt nicht mehr den TCP-Port 80 abhört, können Sie diesen für nginx verwenden. Sie können die Installation also jetzt gefahrlos durchführen: root@archangel:/# apt-get install nginx Nach der Installation ist nginx grob als Webserver (allerdings ohne existierendes Dokumentenverzeichnis) konfiguriert. Die Konfigurationsdateien befinden sich unterhalb von /etc/nginx. Sie werden feststellen, dass es hier, genauso wie bei Apache, die Verzeichnisse sites-available und sites-enable gibt. Diese Verzeichnisse werden von nginx auch genauso verwendet wie von Apache. Um den standardmäßig konfigurierten Webserver zu deaktivieren, müssen Sie also lediglich den entsprechenden Link löschen: root@archangel:/# rm /etc/nginx/sites-enabled/default Die Hauptkonfigurationsdatei ist nginx.conf. Hier werden einige grundlegende Parameter definiert, wie die Anzahl der Arbeitsprozesse und die maximale Anzahl gleichzeitiger Zugriffe. Die anderen Dateien, die direkt in /etc/nginx liegen, sind Beispieldateien, die Sie in Ihre eigene Konfiguration bei Bedarf einbinden können. Für eine einfache Reverse-Proxy-Konfiguration erstellen und bearbeiten Sie z. B. diese Datei: root@archangel:/# vi /etc/nginx/sites-available/proxy Erstellen Sie eine Serverdirektive mit mindestens diesem Inhalt: server { listen 80 default; location / { proxy_pass } } Der Reverse-Proxy lauscht an Port 80 und leitet Anfragen an Port 8000 des Loopback-Adapters weiter. Das ist der Port, auf den Sie vorhin Apache konfiguriert haben. An dieser Stelle bietet es sich optional an, den Inhalt der Beispieldatei /etc/nginx/proxy_params einzubinden. Sie müssen jetzt nur noch einen Softlink anlegen, damit nginx diese Konfiguration auch lädt: root@archangel:/#ln -s /etc/nginx/sites-available/proxy \ /etc/nginx/sites-enabled/proxy Jetzt ist der richtige Zeitpunkt für einen ersten Start: root@archangel:/# /etc/init.d/nginx start Wenn alles gut gegangen ist, können Sie jetzt mit einem Webbrowser ganz normal auf den TCP-Port 80 dieses Servers zugreifen und erhalten den Inhalt der Webseite, die von Apache gehostet wird. Sie können ggf. die Syntax der Konfigurationsdateien von nginx überprüfen, indem Sie folgendes Kommando verwenden: root@archangel:/# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Es scheint alles in Ordnung zu sein. Sie können nginx zur Laufzeit Signale übermitteln, indem Sie die Option s mit einem der folgenden Parameter verwenden: stop, quit, reopen, reload. Wenn Sie eine Konfigurationsänderung durchgeführt haben, können Sie diese also mit folgendem Kommando sofort wirksam werden lassen: root@archangel:/# nginx -s reload

46 208 HTTP-Dienste nginx als Webserver Wenn Sie einen Apache Webserver konfigurieren können, wird Ihnen die Einrichtung eines nginx-servers auch keine Schwierigkeiten bereiten. Sie können einfach mehrere virtuelle Webserver bereitstellen, indem Sie im Verzeichnis /etc/nginx/ sites-available die jeweiligen Konfigurationsdateien erstellen und bei Bedarf in /etc/ nginx/sites-enabled verlinken. Eine solche Konfigurationsdatei könnte z. B. so aussehen: server { listen server_name index root } 80; index.html; /var/www/lpic-2.de; Was Sie hier sehen, ist ein Serverblock. Bei Apache würde man dieses Konstrukt als einen virtuellen Server bezeichnen. Die meisten Einstellungen sind selbsterklärend, aber zur Sicherheit sollen diese hier dennoch erläutert werden. Die Direktive listen legt fest, an welchem Port der Server lauschen soll. Mit der Einstellung server_name wird der Hostheadername festgelegt, falls auf dem physischen Server mehrere Webseiten unter derselben IP-Adresse und demselben Port erreichbar sein müssen. Diese Webseite wird also nur dann ausgeliefert, wenn Sie in den Browser eingeben. Vergessen Sie nicht, die entsprechende DNS-Konfiguration durchzuführen, falls Sie eine Konfiguration mit mehreren Webseiten ausprobieren wollen. Der Eintrag index sagt dem Webserver, welche Datei er herausgeben soll, wenn keine Datei ausdrücklich auf der URL angegeben wurde. Die Direktive root entspricht dem DocumentRoot bei Apache. Es handelt sich also um das Hauptverzeichnis des virtuellen Servers. Bei Servern, die mehrere Webseiten hosten, bietet sich als sauberer Abschluss eine Konfiguration an, welche jene Client-Anfragen bedient, bei denen der Hostheaderwert mit keiner gültigen Konfiguration übereinstimmt, oder falls der Benutzer eine IP-Adresse in das URL-Feld des Browsers eingegeben hat: server { listen index root } 80 default_server; index.html; /var/www/default; Dieser Eintrag bedient alle verbleibenden Anfragen an TCP-Port 80 des Servers über all seine erreichbaren IP-Adressen. 378

47 Übungsfragen zu LPI Die folgenden Fragen sollen Ihnen helfen, sich an die Art der Fragestellung in der wirklichen Prüfung zu gewöhnen. Es hat keinen Zweck, die Fragen einfach auswendig zu lernen, denn es sind keine echten Prüfungsfragen. Sie sollten versuchen, die Antworten zu jeder einzelnen Frage zu verstehen. Deshalb werden sowohl die richtigen als auch die falschen Antworten im Lösungsteil des Buchs detailliert besprochen. Das Üben mit diesen Fragen soll Ihnen auch die Herangehensweise bei eventuell Ihnen unbekannten Themen näher bringen. Ein unbekanntes Kommando in einer Frage ist nämlich noch längst kein Grund, eine Frage einfach nicht zu beantworten. Oft führt ein wenig Logik oder das Ausschlussverfahren dennoch zum Ziel. Fragen Frage 1: Sie verwalten einen Apache Webserver, auf dem vertrauliche Dokumente gespeichert sind. Um die Verwaltung zu vereinfachen, wollen Sie die Benutzer, die auf den Server zugreifen dürfen, in einer Gruppe zusammenfassen. Welche Datei werden Sie erstellen bzw. bearbeiten? 씲 A: /etc/passwd 씲 B: /etc/groups 씲 C:.htaccess 씲 D:.htgroup 씲 E: httpd.conf Frage 2: Sie verwenden zu Testzwecken einen Apache Webserver auf einer Workstation. Sie müssen den Zugriff auf den Server über das Netzwerk verhindern. Mit welcher Direktive erreichen Sie das? 씲 A: Port 81 씲 B: Listen :80 씲 C: Listen 82 씲 D: ServerType standalone 씲 E: ServerType inetd 503

48 Übungsfragen zu LPI Fragen Frage 3: Sie stellen bei einem hoch frequentierten Apache Webserver fest, dass der Zugriff auf Webseiten nur verzögert erfolgt. CPU-Ressourcen und Arbeitsspeicher sind jedoch nicht ausgelastet. Wie erhöhen Sie die Serverperformance? (Wählen Sie zwei Antworten.) A: Fügen Sie dem Server weitere IP-Adressen hinzu. B: Erhöhen Sie den Wert für MinSpareServers. C: Legen Sie den ServerType mit standalone fest. D: Legen Sie den ServerType mit inetd fest. E: Konfigurieren Sie einen anderen Port. Frage 4: Sie müssen einen Apache Webserver neu starten. Sie wollen hierfür ein Skript verwenden, das ausdrücklich für solche administrativen Eingriffe gedacht ist. Welches Kommando werden Sie verwenden? (Geben Sie ggf. benötigte Optionen mit an.) Frage 7: Sie müssen Fehlermeldungen eines virtuellen Hosts, der auf einem Apache Webserver läuft, in einer separaten Datei aufzeichnen. Welche Direktive werden Sie konfigurieren? A: LogFile B: syslog.conf C: DocumentRoot D: CustomLog E: ErrorLog Frage 8: Sie wollen mehrere Webseiten auf einem einzigen Apache Webserver hosten. Welche Möglichkeiten der Unterscheidung gibt es beim Zugriff auf die verschiedenen Webseiten? (Wählen Sie drei Antworten.) A: mehrere Verzeichnisse B: mehrere IP-Adressen Frage 5: Sie müssen einer existierenden Passwortdatei eines Apache Webservers einen neuen Benutzer namens ritchie hinzufügen. Wie lautet das richtige Kommando, wenn der aktuelle Pfad dem ServerRoot entspricht? A: bin/htpasswd passwortdatei ritchie B: bin/htpasswd -c passwortdatei ritchie C: useradd ritchie -m D: adduser ritchie C: mehrere HTML-Dateien D: mehrere TCP-Ports E: mehrere ServerName-Direktiven Frage 9: Sie müssen Ihren Benutzern den Zugriff auf Webseiten ermöglichen, die durch OpenSSL-Zertifikate gesichert wurden. Welchen Port müssen Sie auf der Firewall zulassen? (Geben Sie nur den Port ohne Protokoll an.) E: echo ritchie >>.htaccess Frage 6: Welche Direktive eines Apache Webservers legt fest, welches Verzeichnis aus der Sicht eines Benutzers das Hauptverzeichnis des Webservers ist? A: ServerRoot B: ApacheRoot C: DocumentRoot D: Path E: httpd-path Frage 10: Sie benötigen ein Zertifikat zur Absicherung einer Webseite. Mit welchem Programm können Sie das Zertifikat generieren? A: httpd B: openssh C: openssl D: openswan E: https

49 Übungsfragen zu LPI Frage 11: Sie wollen die Speichermenge, die ein neuer Squid-Proxy auf der Festplatte belegen darf, konfigurieren. Welche Einstellung ändern Sie? 씲 A: cache_mem 씲 B: cache_dir 씲 C: reply_body_max_size 씲 D: disk_usage 씲 E: access_log Frage 12: Sie haben die Option cache_dir in der Datei squid.conf eines neuen Servers konfiguriert. Welches Kommando werden Sie anschließend ausführen? Vervollständigen Sie das Kommando! /usr/local/squid/sbin/squid Frage 13: Sie müssen verhindern, dass Benutzer beim Zugriff auf einen Samba-Server Dateien mit einer bestimmten Dateierweiterung zu sehen bekommen. Wenn ein Benutzer auf eine solche Datei direkt zugreift, soll er diese dennoch öffnen können. Welchen Eintrag werden Sie in der Datei smb.conf verwenden? 씲 A: lock directory 씲 B: security = user 씲 C: security = share 씲 D: hide files 씲 E: veto files Frage 14: Bei einem Samba-Server soll verhindert werden, dass Benutzer auf Dateien mit einer bestimmten Dateierweiterung zugreifen können. Das soll auch dann gelten, wenn User Dateinamen direkt auswählen. Welchen Eintrag benötigen Sie hierfür? 씲 A: lock directory 씲 B: security = user 씲 C: security = share 씲 D: hide files 씲 E: veto files 506

50 Übungsfragen zu LPI Antworten und Erklärungen zu den Prüfungsfragen Antworten und Erklärungen zu den Prüfungsfragen Hier finden Sie die Erläuterungen zu allen Fragen des zweiten Teils. Sie sollten unbedingt auch die Kommentare zu den falschen Antworten lesen. Einige Fakten werden hier nicht zufällig mehrfach erwähnt, sondern weil wesentliche Prüfungsinhalte auf diese Weise besser in Ihrem Gedächtnis haften bleiben. Frage 1: D:.htgroup ist die richtige Datei für diese Aufgabe. Hier können Sie Benutzer, die zuvor in einer Passwortdatei angelegt wurden, gruppieren. Sie können die Datei auch anders nennen, aber.htgroup ist der übliche Name. zu A: /etc/passwd enthält normale Benutzerkonten. zu B: /etc/groups enthält Benutzergruppen, die aber üblicherweise nicht zur Zugriffssteuerung auf Webserver verwendet werden. zu C:.htaccess wird ebenfalls zur Zugriffssteuerung auf Apache-Servern verwendet. Sie müssen im vorliegenden Fall sogar die.htgroup-datei in der Datei.htaccess als AuthGroupFile angeben. zu E: httpd.conf ist die Hauptkonfigurationsdatei des Apache-Servers. Frage 2: B: Listen :80 bewirkt, dass httpd nur noch an der Loopback-Adresse lauscht. Ein Zugriff vom Netzwerk aus ist dann nicht mehr möglich. zu A: Port 81 wird bei älteren Apache-Versionen verwendet, um den Server mit einem alternativen Port zu konfigurieren. Aber der Server wäre weiterhin vom Netzwerk aus erreichbar. zu C: Listen 82 sorgt dafür, dass Apache an Port 82 lauscht. Hierbei werden aber weiterhin alle Netzwerkschnittstellen verwendet. zu D: ServerType standalone klingt natürlich wie eine sehr gute Antwort, bewirkt aber lediglich, dass Apache alleinstehend, also ohne vorgeschalteten Super-Daemon (inetd) läuft. Das ist übrigens die Standardeinstellung. zu E: ServerType inetd teilt dem Webserver mit, dass er durch inetd aufgerufen wird. Eine solche Konfiguration sollte man übrigens aus Gründen der schlechteren Performance vermeiden. Frage 3: B:»Erhöhen Sie den Wert für MinSpareServers.«Diese Maßnahme erhöht die Anzahl der Prozesse, die auf eingehende Verbindungen lauschen. Benutzer können so schneller bedient werden. C:»Legen Sie den ServerType mit standalone fest.«das ist zwar die Standardeinstellung, muss aber gegenüber den anderen Antworten in Erwägung gezogen werden insbesondere, weil die anderen Antworten entweder keine oder sogar eine negative Auswirkung auf die Serverleistung haben. zu A:»Fügen Sie dem Server weitere IP-Adressen hinzu.«das bringt nichts in Bezug auf die Leistung des Servers. zu D:»Legen Sie den ServerType mit inetd fest.«das verzögert sogar die Antwort bei jedem Benutzerzugriff. zu E:»Konfigurieren Sie einen anderen Port.«Das bringt nichts in Bezug auf die Leistung des Servers. Frage 4: apachectl restart oder apache2ctl restart sind jeweils richtig. Es gibt natürlich auch andere Methoden, Apache neu zu starten, aber hier war ausdrücklich nach einem dafür vorgesehenen Skript gefragt. Frage 5: A: bin/htpasswd passwortdatei ritchie ist richtig, wenn Sie einen Benutzer einer existierenden Passwortdatei hinzufügen wollen. Da der aktuelle Pfad ServerRoot entspricht, muss dem htpasswd-kommando der relative Pfad bin/ vorangestellt werden. zu B: bin/htpasswd -c passwortdatei ritchie ist hier falsch, weil die Option -c nur bei der Erstellung einer neuen Passwortdatei verwendet wird. zu C und D: useradd ritchie -m und adduser ritchie sind falsch, weil diese Kommandos zur Erstellung normaler Benutzerkonten verwendet werden und nicht für Apache-Benutzer in Passwortdateien. zu E: echo ritchie >>.htaccess ist völlig falsch, weil in dieser Datei keine Benutzerkonten angelegt werden. Es wird hier lediglich die Passwortdatei angegeben. Frage 6: C: DocumentRoot ist die Direktive, die das Hauptverzeichnis für den Content des Webservers angibt. zu A: ServerRoot ist das Serverhauptverzeichnis, in dem sich auch Module und Konfigurationsdateien des Servers befinden. Hierauf darf ein Benutzer natürlich nicht zugreifen. zu B, D und E: ApacheRoot, Path und httpd-path sind einfach frei erfunden, also falsch

51 Übungsfragen zu LPI Antworten und Erklärungen zu den Prüfungsfragen Frage 7: E: ErrorLog ist die Direktive, die das Logfile für die Fehlerprotokollierung angibt. zu A: LogFile gibt es beim Apache-Webserver nicht. zu B: syslog.conf konfiguriert den syslogd, ist aber nicht zur Konfiguration der Apache-Logfiles geeignet. zu C: DocumentRoot ist das Hauptverzeichnis für den Webcontent. zu D: CustomLog enthält nicht nur Fehler, sondern auch Aufzeichnungen über erfolgreiche Zugriffe auf den Webserver. Frage 8: B: mehrere IP-Adressen, D: mehrere TCP-Ports oder E: mehrere ServerName-Direktiven können hier jeweils verwendet werden. IP-Adressen oder Ports können über die Direktive LISTEN für mehrere Webseiten unterschiedlich konfiguriert und zugewiesen werden. Die Direktive ServerName kann für mehrere virtuelle Hosts jeweils innerhalb der Direktiven VirtualHost unterschiedlich konfiguriert werden. zu A und C: Mehrere Verzeichnisse oder mehrere HTML-Dateien können zur Unterscheidung von Webseiten aus der Sicht des Netzwerks nicht herangezogen werden. Frage 9: 443 ist die korrekte Antwort. Es handelt sich hier letztendlich um das ganz normale HTTPS-Protokoll. Frage 10: C: openssl ist ein Programm, mit dem man unter anderem X.509-Zertifikate ausstellen kann. zu A: httpd ist der eigentliche Webserver-Daemon. zu B: openssh ist ein Paket, das die Secure Shell enthält. zu D: openswan ist ein Paket zur Implementierung von IPSec. zu E: https ist lediglich das Protokoll, das für HTTP über SSL verwendet wird. Frage 11: B: cache_dir ist die Direktive, in der die Verzeichnisstruktur des Proxy-Caches konfiguriert wird. Hier wird auch die Größe des festplattenseitigen Caches festgelegt. zu A: cache_mem legt fest, wie viel Arbeitsspeicher Squid für das Caching verwenden darf. zu C: reply_body_max_size wird verwendet, um Benutzer am Herunterladen übergroßer Dateien zu hindern. zu D: disk_usage gibt es nicht bei Squid. zu E: access_log legt den Pfad zur Protokolldatei fest. Frage 12: -z wäre hier die benötigte Ergänzung. Nach der Konfiguration der Direktive cache_ dir muss die Verzeichnisstruktur des Caches aufgebaut werden. Das wird durch dieses Kommando erreicht: /usr/local/squid/sbin/squid -z Frage 13: D: hide files ist hier die richtige Option. Sie können so auch einzelne, bestimmte Dateien verstecken. zu A: lock directory ist das Verzeichnis, in dem Samba-Lockfiles anlegt, damit überprüft werden kann, ob es bereits laufende Instanzen von Samba gibt. zu B: security = user legt fest, dass Zugriffe nur durch Benutzer mit gültigen Benutzerkonten erfolgen dürfen. zu C: security = share lässt Zugriffe ohne Authentifizierung von Benutzern zu. Diese Konfiguration wird von neueren Samba-Versionen nicht mehr unterstützt. zu E: veto files ähnelt vom Verhalten her der richtigen Antwort. Es wird hier aber auch der Zugriff auf Dateien verweigert, die ein Benutzer konkret angibt. Frage 14: E: veto files verhindern den Zugriff auf angegebene Dateien oder auch Erweiterungen. Das gilt auch dann, wenn ein Benutzer eine konkrete Datei auswählt. zu D: hide files versteckt die Dateien nur. Ein direkter Zugriff bleibt weiterhin möglich. zu A, B und C: Für lock directory, security = user und security = share gelten die Erläuterungen zu den Antworten der vorherigen Frage. Frage 15: A: testparm überprüft den Inhalt der Datei smb.conf auf Korrektheit. zu B: hdparm dient der Anzeige und Überprüfung von Festplattenparametern. zu C: nmblookup ist ein Tool, das zur NetBIOS-Namensauflösung verwendet wird. zu D: smbstatus zeigt den Status bestehender Samba-Verbindungen von Clients an. zu E: smbcontrol wird verwendet, um Signale an die Daemons smbd oder nmbd zu senden

52 Auf einen Blick Auf einen Blick LPI Kapazitätsplanung Der Linux-Kernel Systemstart Dateisystem und Devices Erweiterte Administration von Storage Devices Netzwerkkonfiguration Systemverwaltung und Wartung Übungsfragen zu LPI LPI Domain Name Service (DNS) HTTP-Dienste Freigabe von Dateien Verwaltung von Netzwerk-Clients Dienste Systemsicherheit Übungsfragen zu LPI

53 Inhalt Wie man Zertifizierungsprüfungen besteht... Danksagung LPI Kapazitätsplanung Messen und Problembehandlung bei der Ressourcenverwendung... Allgemeines... Werkzeuge zur Diagnose von bestehenden Engpässen Prognostizieren zukünftiger Ressourcenanforderungen... Allgemeines... Werkzeuge zur Aufzeichnung der Ressourcenverwendung Der Linux-Kernel Kernel-Komponenten... Allgemeines... Zu den Kernel-Quellen gehörende Dateien und Verzeichnisse Einen Linux-Kernel kompilieren... Allgemeines... Identifizieren von Kernel-Versionen... Den Kernel konfigurieren... Konfigurationskommandos... Kernel patchen... Anpassen, Kompilieren und Installieren eines Kernels inklusive Kernel-Module... DKMS Kernel und Kernel-Module zur Laufzeit verwalten und kernel-bezogene Fehlerbehebung... Allgemeines... Zum Kernel gehörende Dateien und Verzeichnisse... Module zur Laufzeit beeinflussen und konfigurieren... Modulkonfigurationsdateien

54 Inhalt Inhalt Das Verzeichnis /proc/sys/kernel Tools zur Analyse udev (userspace /dev) udev konfigurieren udev überwachen sysctl Analyse der Protokolldateien Analyse am /proc-dateisystem Systemstart Anpassen des Systemstarts Allgemeines SysVinit systemd Linux Standard Base (LSB) Systemwiederherstellung Allgemeines Die frühe Phase des Systemstarts Master Boot Record (MBR) /boot/, /boot/grub/, und /boot/efi/ GRUB (Legacy) GRUB Dateisysteme prüfen und reparieren Probleme beim Laden des Kernels Alternative Bootloader Allgemeines Das SYSLINUX-Projekt Shim-Bootloader systemd-boot und U-Boot Dateisystem und Devices Arbeiten mit dem Linux-Dateisystem Allgemeines Manuelles Mounten und Unmounten Automatisches Mounten über die Datei /etc/fstab systemd-mountunits Pflege des Linux-Dateisystems Allgemeines Sicherstellen der Integrität des Dateisystems und Problembehebung Erzeugen der Dateisysteme Formatieren der Dateisysteme smartd und smartctl Anlegen und Konfigurieren von Dateisystemen Allgemeines Automatisches Mounten ISO-Dateien und CDs erstellen Verschlüsselte Dateisysteme Erweiterte Administration von Storage Devices RAID-Konfiguration Allgemeines RAID-Level Ein Software-RAID erstellen Ein RAID-Array erweitern Konfiguration von Storage Devices Allgemeines hdparm sdparm tune2fs SSD und NVMe Die Gerätedateien für Festplatten und CD-ROMs Die Gerätedateien für Partitionen iscsi SAN (AoE, FCoE) Logical Volume Manager Allgemeines LVM-Komponenten und Zusammenhänge LVM-Snapshots Device Mapper

55 Inhalt Inhalt 205 Netzwerkkonfiguration Grundlagen der Netzwerkkonfiguration Allgemeines Werkzeuge zur Netzwerkkonfiguration Fortgeschrittene Netzwerkkonfiguration Allgemeines Werkzeuge und Konfigurationsdateien Kernpunkte der Fehlerbehebung in Netzwerken Allgemeines Werkzeuge und Konfigurationsdateien Systemverwaltung und Wartung Programme aus dem Quellcode übersetzen und installieren Allgemeines Aufbau von tar-balls Einen tar-ball installieren uname zur Kernel-Quellen-Installation Archivierung im Allgemeinen patch Datensicherung Allgemeines Was muss gesichert werden? Backupstrategien Sicherungsarten Hardware und Verbrauchsmaterial Zur Sicherung benötigte Gerätedateien Geeignete Programme zur Erstellung von Datensicherungen Benutzer über systembezogene Angelegenheiten benachrichtigen Allgemeines Konfigurationsdateien und Werkzeuge Übungsfragen zu LPI Fragen Antworten und Erklärungen zu den Prüfungsfragen LPI Domain Name Service (DNS) Grundlagen der DNS-Serverkonfiguration Allgemeines Cache-only-DNS-Server Dateien, Verzeichnisse und Kommandos Alternative DNS-Server Erstellen und Pflegen von DNS-Zonen Allgemeines Inhalt von Zonendateien und Eintragstypen Erstellen von primären Zonen Erstellen von sekundären Zonen Bedingte Weiterleitung Delegieren von Zonen DNS-Diagnoseprogramme masterfile-format Absicherung eines DNS-Servers Allgemeines Einschränkungen in named.conf named einschränken DNSSEC TSIG DANE Aufteilung der BIND-Konfiguration HTTP-Dienste Grundlegende Apache-Konfiguration Allgemeines Installation von Apache Konfigurationsdateien Wichtige Einträge in der Datei httpd.conf Starten und stoppen Zugriffssteuerung Module integrieren Protokollierungseinstellungen Leistungseinstellungen

56 Inhalt Inhalt Konfiguration virtueller Hosts Die Redirect-Direktive Apache für HTTPS konfigurieren Allgemeines Konfiguration von SSL mittels openssl Server Name Indication (SNI) SSL-Zertifikate mittels CA.pl erstellen Direktiven des Moduls mod_ssl und andere Sicherheitseinstellungen Implementieren von Squid als Cache-Proxy Allgemeines Installation des Squid Proxy Servers Konfiguration Zugriffssteuerung mithilfe von ACLs Benutzerauthentifizierung Implementieren von nginx als Webserver und Reverse-Proxy Allgemeines Reverse-Proxy nginx als Webserver Freigabe von Dateien Konfiguration eines Samba-Servers Allgemeines smbd, nmbd und winbindd Samba-Konfigurationsdateien Mitgliedschaft in einer Active-Directory-Domäne Werkzeuge und Dienstprogramme für Samba SWAT Samba 4-Dokumentation Samba-Freigaben unter Linux einbinden Konfiguration eines NFS-Servers Allgemeines Serverseitige Konfiguration NFS-Client-Konfiguration Tools für NFS Zugriffsbeschränkungen Verwaltung von Netzwerk-Clients DHCP-Konfiguration Allgemeines DHCP-Clients DHCP-Server DHCP-Relay-Agent Router Advertisement Konfiguration eines OpenLDAP-Servers Allgemeines LDAP-Schema Installation des OpenLDAP-Servers slapd-kommandos Loglevel konfigurieren Zugriffssteuerung LDAP-Client-Konfiguration Allgemeines Installation und Verwendung des LDAP-Clients PAM-Authentifizierung Allgemeines PAM-Konfiguration PAM-Module PAM-Authentifizierung mit LDAP PAM-Authentifizierung mit SSSD Dienste Betreiben von -Servern Allgemeines Sendmail Postfix Exim Gemeinsamkeiten der MTAs Verwalten der Mailauslieferung Allgemeines Konfiguration von Sieve Sieve-Skripte Vacation-Erweiterung für Dovecot

57 Inhalt Inhalt Verwalten des Zugriffs auf Mail Allgemeines Dovecot-Mailserver Courier-Mailserver Übungsfragen zu LPI Fragen Antworten und Erklärungen zu den Prüfungsfragen Systemsicherheit 459 Index Router-Konfiguration Allgemeines /proc/sys/net/ipv /proc/sys/net/ipv /etc/services Private Netze iptables ip6tables Verwalten von FTP-Servern Allgemeines vsftpd Pure-FTPd ProFTPD Secure Shell (SSH) Allgemeines SSH verwenden SSH-Client-Verbindung SSH-Konfigurationsdateien Authentifizierung der Server mit Schlüsseln Generieren von Schlüsseln Benutzerauthentifizierung mit Schlüsseln Der Authentifizierungsagent Sicherheitsmaßnahmen Allgemeines Sicherheitsinstitutionen Manuelle Untersuchung Automatische Sicherheitssysteme OpenVPN Allgemeines Peer-to-Peer-VPN VPN-Server für mehrere gleichzeitige Zugriffe

58 Index Index.config forward htaccess htgroup /bin /bin/hostname /boot... 58, 124, 223 /boot/efi /boot/grub/ /boot/grub/stage /boot/grub /boot/initrd... 48, 100 /dev , 223 /dev/cdrom /dev/disk/by-uuid /dev/fd /dev/ft /dev/hd /dev/hda /dev/hda /dev/hda /dev/hda /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/mapper /dev/nft /dev/nst /dev/sd /dev/sda /dev/sdb /dev/st , 230 /dev/zero /etc /etc/aliases /etc/auto.master , 138 /etc/bind/db.root /etc/bind/named.conf /etc/default/grub /etc/default/sysstat /etc/dhclient.conf /etc/dovecot /etc/dovecot/conf.d /etc/exports /etc/fail2ban /etc/fstab , 108, 110, 111, 112, 130, 136 /etc/group /etc/grub.d /etc/hostname /etc/hostname /etc/hosts , 304 /etc/hosts.allow , 400, 481 /etc/hosts.deny , 481 /etc/init.d... 81, 83 /etc/inittab... 79, 81 /etc/issue /etc/issue.net /etc/known_hosts /etc/ldap/ldap.conf /etc/lvm /etc/lvm/cache/.cache /etc/mailname /etc/mdadm/mdadm.conf /etc/motd /etc/mtab /etc/named.conf , 307 /etc/network /etc/nginx /etc/nginx/sites-available /etc/nginx/sites-enabled /etc/nologin /etc/nsswitch.conf , 434 /etc/openldap /etc/openvpn /etc/pam.conf /etc/pam.d /etc/passwd , 428 /etc/postfix /etc/proftpd /etc/pump.conf /etc/pure-ftpd /etc/rc.d... 81, 83 /etc/resolv.conf /etc/rsyncd.conf /etc/samba/smb.conf /etc/samba/smbpasswd /etc/samba/smbusers /etc/security/limits.conf /etc/security/limits.d /etc/security/opasswd /etc/services /etc/squid.conf /etc/squid3/squid.conf

59 Index Index /etc/ssh_known_hosts /etc/ssh/ssh_config /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_key /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /etc/sshrc /etc/sysconfig/iptables /etc/sysconfig/network-scripts/ /etc/sysctl.conf /etc/systemd/ /etc/udev /etc/udev/rules.d /etc/udev/udev.conf /etc/vsftpd.conf /home /lib /lib/modules... 43, 58 /lib/security /mnt /opt /proc , 223 /proc/kmsg /proc/mdstat /proc/modules... 59, 61 /proc/partitions /proc/swaps /proc/sys/kernel /proc/sys/net/ipv , 461 /proc/sys/net/ipv /proc-dateisystem /root /run/systemd /sbin /sbin/mingetty /tmp /usr /usr/lib/systemd/ /usr/local/apache /usr/local/apache2/conf /usr/local/apache2/conf/httpd.conf /usr/local/squid /usr/src... 40, 43, 58, 217 /usr/src/linux... 41, 51, 58 /usr/src/linux/documentation /var /var/lib/ldap /var/log/fail2ban.log /var/log/maillog /var/log/messages... 73, 211 /var/log/syslog... 73, 211 /var/named /var/named/named.ca ~./ssh/known_hosts ~/.ssh/authorized_keys ~/.ssh/id_dsa ~/.ssh/id_dsa.pub ~/.ssh/id_rsa ~/.ssh/id_rsa.pub ~/.ssh/ssh_know_hosts ssl.conf lda.conf lmtp.conf A ACCEPT access.conf access.log ACL (Squid) ACL (squid) action.d Active-Directory-Domäne Ad-hoc-Netzwerk AHCI Aktive Partition Aktiver Modus Amanda anonymous AoE Apache apache apache2ctl apachectl APIPA AppArmor arch/i386/boot/bzimage arp ARP-Cache Auslagerungsdatei authorized_keys auto auto.master , 138 auto.misc autofs , 138 B Backup differenzielles inkrementelles BackupPC Backupstrategien Bacula Bandlaufwerk Bareos BDB Bedingte Weiterleitung Benutzerkonten (ldap) BIND , 306 binrpm-pkg BIOS... 90, 125 Birthday-Attacke blkid Bootloader Btrfs btrfs-convert Bugtraq bunzip bzcat bzip C Cache (Squid) Cache-only-DNS-Server Cache-Poisoning Cacti C-Compiler cdrecord CD-ROM CD-RW CERT cfdisk changetype chroot CIAC CIDR-Notation co collectd configure Courier cryptoloop cryptsetup CTRL-ALT-DEL D DANE Datensicherung dd , 227 debugfs defaults Delivermail depmod... 62, 63 devfs Device Mapper df dhclient DHCP DHCP-Bereiche dhcpcd DHCP-Clients dhcpd.conf dhcpd.leases dhcrelay Differenzielles Backup dig , 313 Directory Information Tree discard Distinguished Name , 421 DKMS dm_mod dma DM-Crypt dmesg... 98, 211 DNAT , 469 DNS , 304 DNSSEC dnssec-keygen dnssec-signzone DocumentRoot , 346 dosfsck doveadm doveconf dovecot.conf dracut... 52, 54 DROP DSA-Schlüssel dump dumpe2fs DVD-Laufwerk DVD-RW Dynamic Kernel Module Support

60 Index Index E e2fsck , 175 EFI Boot Manager EFI System Partition efiboot.img efibootmgr Endzylinders error.log ESP exec Exim , 443 exportfs ext , 120, 125, 127 ext , 120, 125, 127 ext F fail2ban fail2ban.conf FAT FCoE fdisk , 123, 130, 147 Festplatte fileinto filter.d Fingerprint Floppy-Streamer FORWARD forwarders Forward-Lookup-Zone , 318, 320 FQDN free fsck... 99, 111, 112, 118, 120 fsck.cramfs fsck.ext fsck.ext fsck.jfs fsck.minix fsck.msdos fsck.reiserfs fsck.vfat fsck.xfs fstrim FTP FTP-Server G gadmin-proftpd gcc... 45, 218 Gerätedateien grpquota GRUB GRUB (Legacy) GRUB GRUB Shell grub.cfg... 48, 96 grub.conf grub2-mkconfig... 54, 96 grub-mkconfig... 54, 96 grubx64.efi Gummiboot gunzip gzip , 221 H Hardware-Router HDB hdparm hide files host host (Kommando) Host, virtueller (Apache) Hostkey , 482 Hostname Hostroute hosts.allow hosts.deny HPFS htdocs htop htpasswd httpd , 344 httpd.conf , 345 HTTPS I Icinga ICMP-Anfragen id_rsa id_rsa.pub ifconfig , 189 ifconfig (IPv4) ifconfig (IPv6) IMAP IMAP init... 78, 79, 81, 85 initdefault initramfs... 48, 100 inittab Inkrementelles Backup INPUT insmod... 60, 61 interfaces interrupts ioports iostat iotop ip (Kommando) , 198 IP-Forwarding iptables , 489 iptables-restore iptables-save iptraf IRIX isc.org ISO isohdpfx.bin iwconfig iwlist J Jail jail.conf Jeff Bonwick Joliet journal K keep Kerberos Kernel... 40, 42, 57 monolithischer kinitrd Kopierbackup L lame-servers LDAP , 428 ldapadd , 423 LDAP-Client ldapdelete ldapmodify , 427 ldappasswd ldapsearch , 425 LDAP-Servers LDIF LDIF-Dateien Lease-Vorgang libpam-ldap libpam-ldapd Link-lokale Adresse Linux Foundation Linux Unified Key Setup Loglevel loop-aes LSB lsdel lsdev lsmod lsof... 33, 68, 97, 195 lspci lsusb ltrace LUKS lvcreate lvdisplay lvextend LVM , 168 lvm.conf lvm LVM-Snapshot lvreduce lvremove M Mail Transfer Agent Mail User Agent MailDrop mailq main.cf Major Release make... 45, 217 make deb-pkg make install make mrproper make zimage Makefile... 45, 51, 217 MASQUERADE ,

61 Index Index Master Boot Record... 93, 161 master.cf masterfile-format MaxSpareServers MBR... 92, 94 md_mod MDA , 448 mdadm , 148 mdadm.conf menu.lst Microkernel mingetty MINIX... 39, 57 Minor Release MinSpareServers , 355 mkdosfs mke2fs , 127 mkfs , 127 mkfs.cramfs mkfs.ext mkfs.ext mkfs.jfs mkfs.msdos mkfs.ntfs mkfs.vfat mkfs.xfs mkinitramfs mkinitrd... 48, 100 mkisofs mkswap , 131 mod_access_compat , 350 mod_auth_basic mod_authz_host , 350 mod_perl mod_php mod_ssl modinfo modprobe Module modules.dep... 62, 63 Modus, aktiver/passiver mount , 109, 110 mountd , 397 mounten Mountpoint MRTG mt MTA mtr MUA N Nagios named named.conf , 310 named-checkzone named-compilezone NAT nc NCSA ncurses ncurses-devel net (samba) NetBIOS netcat , 444, 488 netstat... 28, 192 Neustart newaliases NFS , 393 nfs NFS-Client nfsd NFS-Server nfsstat Nginx nginx nginx.conf Nicht rückspulend nmap nmbd nmblookup noauto noexec Normalbackup nosuid nouser nslookup , 312, 314 nss_ldap NTFS NVMe... 92, 159 nvme O ObjectClass Object-ID OID OpenLDAP-Server openssl OpenVAS OpenVPN Organisationseinheit OUTPUT P Paging pam_cracklib pam_cracklib.so pam_ldap.so , 434 pam_limits pam_listfile , 433 pam_sssd.so pam_unix Papierprüfung Partition , 124 Partitionstabelle... 93, 125, 161 Passiver Modus patch Patch-Level Perl PHP PID ping ping POP POP Port Listener Port-Forwarding portmap Portscanner POST Postfix POSTROUTING Power On Self Test PREROUTING Primary IDE Private Netze Procmail ProFTPD proftpd.conf Protokolldateien ps... 28, 29, 31, 78 pstree... 31, 78 Pulled Pork pump Pure-FTPd PUTTY pvcreate , 172 pvdisplay PXE Q qmail Quellen Queues R radvd radvd.conf RAID REDIRECT redirect Redirect-Direktive reiserfs REJECT reject Rekursion einschränken Reshape resize2fs , 174, 175 respawn Reverse-Lookup-Zone rmmod rndc , 309 ro Rockridge ROM Root-Server , 312 route , 190 Router Router Advertisements Routing-Tabelle rpc.mountd rpcinfo RPC-Portmapper RSA-Key rsync rsync-dämon Rückspulend Runlevel Runlevel-Wechsel rw

62 Index Index S Samba Samba 4-Dokumentation samba-tool SAN Sandbox sar Schema SCSI SCSI-Geräte SCSI-Laufwerke SCSI-Streamer Secondary IDE Sekundäre Zone SELinux sendmail.cf sendmail.mc Server Name Indication ServerRoot ServerType sfdisk shim.efi showmount shutdown... 80, 120, 235 Sicherungsart Sieve , 449 slapadd slapcat , 415 slapd slapd.conf , 416 slapd-config slapindex SMB smb.conf smbclient smbcontrol smbd smbfs , 391 smbmount smbpasswd smbstatus... 34, 386 smbusers SMTP Snapshot , 177 Snapshot-Volumen SNAT , 469 SNI Snort Softlinks Software-RAID Software-Router Spare Disk Split-Brain Split-DNS-Konfiguration Split-Horizon Split-View Squid Squid Proxy Server squid.conf srm.conf ss SSD SSH , 478 ssh_config ssh_known_hosts ssh-add ssh-agent sshd , 480 sshd_config ssh-keygen , 483 sshrc SSH-Tunnel SSID SSL SSLCertificateFile SSLCertificateKeyFile SSSD stable Standard-Gateway StartServers Startskript Startzylinder static.key Storage Area Networks strace strings Subvolumen suid Superblocks swap Swap-Datei swapoff , 130 swapon , 130 Swap-Partition SWAT sync sysstat System Security Services Daemon systemctl... 85, 86, 87 systemd systemd-boot systemd-boot systemd-delta systemd-mountunits T Tanenbaum, Andrew S , 57 tar , 219, 228, 229 tcpd tcpdump TCP-Wrappern telinit... 80, 85 telnet , 487 testparm time TLS TLSA top Torvalds, Linus... 39, 57 traceroute Transport Layer Security truecrypt tsclient TSIG tune2fs , 127 U U-Boot udev udev_rules udevadm udevmonitor UDF UEFI-Shell UFS umount... 69, 108, 111, 119 uname... 43, 59, 62, 66, 218 Unique Local Unicast unmounten update-grub... 48, 52 update-grub update-rc.d uptime user User-Land users usrquota V Vacation-Erweiterung Verschlüsselte Dateisysteme veto files vgcreate vgdisplay vgextend vgreduce vgscan VirtualBox Virtualbox VirtualHost vmlinuz vmstat vsftpd W w wall wbinfo wget winbind winbindd , 385 WINS X X X11-Tunnel XFS xfs_check xfs_fsr xfs_info xfs_repair xfsdump xfsrestore xinetd xz... 41, 221 Z zcat Zettabyte File System ZFS zimage Zone, sekundäre Zonendateien , 318 Zonentransfer einschränken

63 Wissen, wie s geht. Harald Maaßen ist Dozent und IT-Berater. Er leitet seit einigen Jahren Kurse zu den Prüfungen des LPI und zu Microsoft-Zertifikaten. Seine Spezialgebiete sind Netzwerke und Sicherheit. Harald Maaßen Das Komplettpaket LPIC-1 & LPIC-2 Das gesamte Prüfungswissen Seiten, broschiert, 3. Auflage ,90 Euro, ISBN Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag. Teilen Sie Ihre Leseerfahrung mit uns!

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung. Galileo Press

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung. Galileo Press Harald Maaßen LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung Galileo Press Auf einen Blick LPI 101 Topic 101: Systemarchitektur 21 Topic 102: Linux-Installation und -Paketverwaltung 55 Topic 103:

Mehr

Leseprobe. LPIC-1»Grundlegende Systemdienste«LPIC-2»Webdienste« Inhalt: LPIC-1, LPIC-2. Index: LPIC-1, LPIC-2. Der Autor. Leseprobe weiterempfehlen

Leseprobe. LPIC-1»Grundlegende Systemdienste«LPIC-2»Webdienste« Inhalt: LPIC-1, LPIC-2. Index: LPIC-1, LPIC-2. Der Autor. Leseprobe weiterempfehlen Wissen, wie s geht. Leseprobe Im Auszug des Buches LPIC-1 erfahren Sie alles Prüfungsrelevante zu den grundlegenden Systemdiensten. Im Buch LPIC-2 in Kapitel 208 erfahren Sie alles über das Prüfungsthema

Mehr

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung. Galileo Press

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung. Galileo Press Harald Maaßen LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung Galileo Press Vorwort 15 Hinweise zum Buch 15 Hinweise zur Prüfung 17 LPI 101 101.1 Hardware-Einstellungen ermitteln und konfigurieren

Mehr

101 Systemarchitektur... 21. 102 Linux-Installation und -Paketverwaltung... 57. 103 GNU- und Unix-Kommandos... 87

101 Systemarchitektur... 21. 102 Linux-Installation und -Paketverwaltung... 57. 103 GNU- und Unix-Kommandos... 87 Auf einen Blick Auf einen Blick LPI 101 101 Systemarchitektur... 21 102 Linux-Installation und -Paketverwaltung... 57 103 GNU- und Unix-Kommandos... 87 104 Geräte, Linux-Dateisysteme, Filesystem Hierarchy

Mehr

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung Harald Maaßen LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung Der Name Galileo Press geht auf den italienischen Mathematiker und Philosophen Galileo Galilei (1564 1642) zurück. Er gilt als Gründungsfigur

Mehr

108 Grundlegende Systemdienste

108 Grundlegende Systemdienste 108 Grundlegende Systemdienste 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. Und zur

Mehr

I Grundlagen der System-Administration 8

I Grundlagen der System-Administration 8 Inhaltsverzeichnis I Grundlagen der System-Administration 8 1 Starten und Anhalten des Systems 9 1.1 Überblick über den Boot-Vorgang................... 9 1.2 Der Bootmanager LILO.........................

Mehr

Topic 108: Grundlegende Systemdienste

Topic 108: Grundlegende Systemdienste 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

Mehr

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung Harald Maaßen LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung Auf einen Blick LPI 101... 19 Topic 101: Systemarchitektur... 21 Topic 102: Linux-Installation und -Paketverwaltung... 57 Topic 103: GNU-

Mehr

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung

Harald Maaßen LPIC-1. Sicher zur erfolgreichen Linux-Zertifizierung Harald Maaßen LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung Auf einen Blick LPI 101... 19 Topic 101: Systemarchitektur... 21 Topic 102: Linux-Installation und -Paketverwaltung... 57 Topic 103: GNU-

Mehr

Mail Protokolle. ESMTP: Extented SMTP Server gibt Infos über seine Fähigkeiten aus, zb für Verschlüsselung verwendet

Mail Protokolle. ESMTP: Extented SMTP Server gibt Infos über seine Fähigkeiten aus, zb für Verschlüsselung verwendet LINUX II MAIL Mail Protokolle SMTP: Simple Mail Transport Protocol Transport von Emails, Port: 25 ESMTP: Extented SMTP Server gibt Infos über seine Fähigkeiten aus, zb für Verschlüsselung verwendet POP3:

Mehr

Network-Attached Storage mit FreeNAS

Network-Attached Storage mit FreeNAS Network-Attached Storage mit FreeNAS Diese Anleitung zeigt das Setup eines NAS-Servers mit FreeNAS. FreeNAS basiert auf dem OS FreeBSD und unterstützt CIFS (samba), FTP, NFS, RSYNC, SSH, lokale Benutzer-Authentifizierung

Mehr

Vorbereitung für LPI 102. Vorbereitung für LPI 102

Vorbereitung für LPI 102. Vorbereitung für LPI 102 Vorbereitung für LPI 102 i Vorbereitung für LPI 102 Vorbereitung für LPI 102 ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME Montag, 12. September 2016 AP Vorbereitung für LPI 102 iii Contents 1 Wiederholung

Mehr

1.1 Leicht oder schwer? Installieren Automatisiert und schnell: Installieren mit Kickstart Prüfungsvorbereitung 27

1.1 Leicht oder schwer? Installieren Automatisiert und schnell: Installieren mit Kickstart Prüfungsvorbereitung 27 Inhaltsverzeichnis Einführung 11 1 Installation 19 1.1 Leicht oder schwer? 21 1.2 Installieren 22 1.3 Automatisiert und schnell: Installieren mit Kickstart 25 1.4 Prüfungsvorbereitung 27 2 Arbeiten mit

Mehr

LPIC-1 Prüfung LPI 101

LPIC-1 Prüfung LPI 101 LPIC-1 Prüfung LPI 101 Prüfung LPI 101 Neue Lerninhalte gültig für die Prüfung LPI 101 ab 01.04.2009 101 Systemarchitektur 101 Systemarchitektur 101.1 Hardware-Einstellungen ermitteln und konfigurieren

Mehr

Installationsanleitung des Druckertreibers unter Mac OS (Ver und höher)

Installationsanleitung des Druckertreibers unter Mac OS (Ver und höher) Installationsanleitung des Druckertreibers unter Mac OS (Ver. 10.10 und höher) Hochschule Reutlingen Treiberinstallation unter Mac OSX Seite 1 von 17 Administratorrechte Für die Installation der verschiedenen

Mehr

Unterrichtseinheit 10

Unterrichtseinheit 10 Unterrichtseinheit 10 Begriffe zum Drucken unter Windows 2000 Druckgerät Das Hardwaregerät, an dem die gedruckten Dokumente entnommen werden können. Windows 2000 unterstützt folgende Druckgeräte: Lokale

Mehr

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd ls Listet Dateien und Verzeichnisse auf ls (Listet die Dateien und Verzeichnisse in Spalten auf) ls -l (Listet die Datei und Verzeichnisse als ausführliche Liste auf) ls *.sh (Listet nur Datei auf, die

Mehr

Benutzer und Rechte Teil 1, Paketverwaltung

Benutzer und Rechte Teil 1, Paketverwaltung Benutzer und Rechte Teil 1, Paketverwaltung Linux-Kurs der Unix-AG Benjamin Eberle 25. Mai 2016 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen

Mehr

Auf einen Blick LPI 201 LPI 202

Auf einen Blick LPI 201 LPI 202 Auf einen Blick Auf einen Blick LPI 201 200 Kapazitätsplanung... 23 201 Der Linux-Kernel... 39 202 Systemstart... 77 203 Dateisystem und Devices... 107 204 Erweiterte Administration von Storage Devices...

Mehr

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS Bernd Bleßmann, Jörg Bleßmann Linux Aufbau und Einsatz eines Betriebssystems 1. Auflage Bestellnummer 01146 HLuHB Darmstadt 15917903 Bildungsverlag EINS Vorwort 7 1 Betriebssysteme 9 1.1 Die Aufgaben des

Mehr

Printing mit Windows Server 2003 Ver 1.0

Printing mit Windows Server 2003 Ver 1.0 Printing mit Windows Server 2003 Ver 1.0 Autor: Mag Georg Steingruber Veröffentlicht: August 2003 Feedback oder Anregungen:i-georgs@microsoft.com Abstract Dieses Dokument beschreibt die Einrichtung eines

Mehr

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?): Mär 14, 17 20:40 Seite 1/6 Aufgabe 1: Erklären Sie folgende Begriffe (25 Punkte): Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?): Abstimmen von mehreren Prozessen, warten auf Ergebnisse,

Mehr

Workbooster File Exchanger Command Line Tool

Workbooster File Exchanger Command Line Tool Thema Technische Benutzerdokumentation - WBFileExchanger Workbooster File Exchanger Command Line Tool Letzte Anpassung 18. Januar 2014 Status / Version Finale Version - V 1.1 Summary Erstellung Diese technische

Mehr

Linux Treiber Installation Hochschule Reutlingen

Linux Treiber Installation Hochschule Reutlingen Linux Treiber Installation Hochschule Reutlingen Änderungsübersicht: Version Datum Autor Beschreibung 0.5 19.06.2017 Ivo Lajcsak Erstellung für Proof of Concept Tests 0.7 16.08.2017 Ivo Lajcsak Änderungen

Mehr

Installationsanleitung E-Newsletter

Installationsanleitung E-Newsletter Installationsanleitung E-Newsletter Einleitung...2 Installation WebService...2 Vorbereitung Windows Server 2003, 2008, 2008 R2...2 Vorbereitung Windows Server 2012...6 PROFFIX E-Newsletter WebService installieren...

Mehr

Unix/Linux Grundlagen für Einsteiger

Unix/Linux Grundlagen für Einsteiger Unix/Linux Grundlagen für Einsteiger Seminarunterlage Version: 6.08 Version 6.08 vom 25. Juli 2016 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Konfiguration Agenda Anywhere

Konfiguration Agenda Anywhere Konfiguration Agenda Anywhere Bereich: IT-Lösungen - Inhaltsverzeichnis 1. Ziel 2 2. Agenda Anywhere-USB-Stick 2 2.1. Passwort ändern 2 2.2. Zugang sperren (USB-Stick verloren) 4 2.3. Benutzer-Ersatz-USB-Stick

Mehr

Anweisungen zur Installation und Entfernung von Windows PostScript- und PCL-Druckertreibern Version 8

Anweisungen zur Installation und Entfernung von Windows PostScript- und PCL-Druckertreibern Version 8 Anweisungen zur Installation und Entfernung von Windows PostScript- und PCL-Druckertreibern Version 8 Diese README-Datei enthält Anweisungen zum Installieren des Custom PostScript- und PCL- Druckertreibers

Mehr

15/10/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! ASP Parallels Client

15/10/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! ASP Parallels Client 15/10/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! ASP Parallels Client PARALLELS CLIENT INSTALLIEREN UND EINRICHTEN Der Parallels Client (vormals 2X

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Übung 1: Unix Werkzeuge Robert Sombrutzki sombrutz@informatik.hu-berlin.de Unix Werkzeuge Warum? Diese Frage sollten Sie sich immer mal wieder stellen! Denkbare Antworten Weil Sie diese Werkzeuge immer

Mehr

Benutzerhandbuch. Neukirchen

Benutzerhandbuch. Neukirchen Benutzerhandbuch Neukirchen August 2015 Kontakt: Kai Hübl Lambertsberg 17 D-34626 Neukirchen kai.huebl@asneg.de Contents 1 Einleitung... 5 1.1 Inhalt... 5 1.2 OPC UA Client Stack... 5 1.3 OPC UA Server

Mehr

Linux-Einführung Übung

Linux-Einführung Übung Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.

Mehr

Zentraler Druckserver mit CUPS

Zentraler Druckserver mit CUPS Zentraler Druckserver mit CUPS Daniel van Ross Mathematisches Institut CUPS allgemein CUPS Common Unix Printing System (cups.org) entwickelt von Easy Software Products (easysw.com) Open Source (GPL/LGPL)

Mehr

Installieren und Verwenden des Document Distributor 1

Installieren und Verwenden des Document Distributor 1 1 Der besteht aus einem Client- und Server-Softwarepaket. Das Server- Paket muß auf einem Windows NT-, Windows 2000- oder Windows XP-Computer installiert sein. Das Client-Paket kann auf allen Computern

Mehr

Raffinierte Shell Scripts

Raffinierte Shell Scripts COk - 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Dave Taylor Raffinierte Shell Scripts Übersetzung aus dem Amerikanischen

Mehr

Inhaltsübersicht. Vorwort I Installation RAID- und LVM-Grundlagen Ubuntu-Server-Installation Erste Schritte...

Inhaltsübersicht. Vorwort I Installation RAID- und LVM-Grundlagen Ubuntu-Server-Installation Erste Schritte... Inhaltsübersicht Vorwort... 13 I Installation... 15 1 RAID- und LVM-Grundlagen... 17 2 Ubuntu-Server-Installation... 37 3 Erste Schritte... 57 II Administration... 63 4 Systemkonfiguration... 65 5 Systemstart

Mehr

Browser mit SSL und Java, welcher auf praktisch jedem Rechner ebenso wie auf vielen mobilen Geräten bereits vorhanden ist

Browser mit SSL und Java, welcher auf praktisch jedem Rechner ebenso wie auf vielen mobilen Geräten bereits vorhanden ist Collax SSL-VPN Howto Dieses Howto beschreibt wie ein Collax Server innerhalb weniger Schritte als SSL-VPN Gateway eingerichtet werden kann, um Zugriff auf ausgewählte Anwendungen im Unternehmensnetzwerk

Mehr

Installationsanleitung MS SQL Server 2005. für Sage 50 Ablage & Auftragsbearbeitung. Sage Schweiz AG D4 Platz 10 CH-6039 Root Längenbold

Installationsanleitung MS SQL Server 2005. für Sage 50 Ablage & Auftragsbearbeitung. Sage Schweiz AG D4 Platz 10 CH-6039 Root Längenbold Installationsanleitung MS SQL Server 2005 für Sage 50 Ablage & Auftragsbearbeitung Sage Schweiz AG D4 Platz 10 CH-6039 Root Längenbold Inhaltsverzeichnis 1. GRUNDSÄTZLICHES... 3 2. SQLExpress Installationsanleitung

Mehr

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck Das Linux-Dateisystem bin usr sbin lib mail / var spool boot lpd Rc0.d etc Rc.d Rc1.d Verzeichnisstruktur / Root- oder Wurzelverzeichnis, das oberste Verzeichnis im kompletten Dateisystem. /bin Programme

Mehr

MySQL Community Server Installationsbeispiel

MySQL Community Server Installationsbeispiel MySQL Community Server 5.5.28 Installationsbeispiel Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der untermstrich-datenbank

Mehr

Einen syslog-server im Netz aufzusetzen, der per TCP/IP syslog-meldungen anderer Rechner im Netz annimmt und speichert (=remote logging)

Einen syslog-server im Netz aufzusetzen, der per TCP/IP syslog-meldungen anderer Rechner im Netz annimmt und speichert (=remote logging) 6 Fehlerüberwachung In diesem Kapitel lernen Sie: Den syslog-daemon zu konfigurieren, so daß Sie bestimmen können, welche Meldungen welcher Wichtigkeit in welche Dateien fließen (LPI Lernziele 1.111.3,

Mehr

Konfiguration Agenda Anywhere

Konfiguration Agenda Anywhere Konfiguration Agenda Anywhere Bereich: IT-Lösungen - Inhaltsverzeichnis 1. Ziel 2 2. Agenda Anywhere-USB-Stick 2 2.1. Passwort ändern 2 2.2. Zugang sperren (USB-Stick verloren) 4 2.3. Benutzer-Ersatz-USB-Stick

Mehr

Terminland TLSync. Installationsanleitung. Terminland TLSync. Installationsanleitung. Dokumentation: 3.02 Terminland: ab Datum:

Terminland TLSync. Installationsanleitung. Terminland TLSync. Installationsanleitung. Dokumentation: 3.02 Terminland: ab Datum: Terminland TLSync Dokumentation: 3.02 Terminland: ab 10.08 Datum: 09.02.2017 Terminland TLSync - Seite 1 von 11 Inhaltsverzeichnis 1 Einführung... 3 2 Systemvoraussetzung... 3 2.1 Betriebssysteme... 3

Mehr

untermstrich SYNC Handbuch

untermstrich SYNC Handbuch Handbuch 11/2017 Inhaltsverzeichnis 1. Einleitung... 2 2. Installation... 3 2.1 Systemanforderungen... 3 2.2 Vorbereitungen in Microsoft Outlook... 3 2.3 Setup... 4 3. SYNC-Einstellungen... 6 3.1 Verbindungsdaten...

Mehr

Anwenderhandbuch. ipoint - Server

Anwenderhandbuch. ipoint - Server Anwenderhandbuch ipoint - Server Inhaltsverzeichnis 1 ÜBERWACHUNG DES SERVERPROZESSES... 3 1.1 DEN SERVER STARTEN... 3 1.2 DEN SERVER ANHALTEN/BEENDEN... 6 2 DEN SERVER KONFIGURIEREN... 8 3 FIREWALL...11

Mehr

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr. Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor

Mehr

56. UKW Tagung Weinheim 2011 Zeitsynchronisation mit NTP (Network Time Protocol)

56. UKW Tagung Weinheim 2011 Zeitsynchronisation mit NTP (Network Time Protocol) (Network Time Protocol) Warum NTP? Grundlagen von NTP Netzarchitektur Zeitserver (Einzelsystem, Pool) Clientkonfiguration UNIX / Linux Clientkonfiguration Windows Literaturquellen Diskussion Referent:

Mehr

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux 1 Erste Schritte 1 1.1 Ein Disk Image auswählen und herunterladen............. 2 1.2 Das Disk Image entpacken............................ 3 1.3 Windows......................................... 4 1.4 macos...........................................

Mehr

Modul 123. E-Mail und FTP. Unit 6. E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS

Modul 123. E-Mail und FTP. Unit 6. E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS Modul 123 Unit 6 (V1.1) E-Mail und FTP Zielsetzung: E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS Technische Berufschule Zürich IT Seite 1 Grundlagen : Das Store-and-Forward

Mehr

Dateisystem 2, RegEx, Manpages

Dateisystem 2, RegEx, Manpages Dateisystem 2, RegEx, Manpages Linux-Kurs der Unix-AG Andreas Teuchert 10. Dezember 2012 Manpages Dokumentation zu Programmen, speziellen Dateien, etc. steht in Manpages Aufruf mit man Manpage

Mehr

NetUSE-SSH-Keymanager 2.12

NetUSE-SSH-Keymanager 2.12 Benutzerhandbuch Maksim Kabakou - Fotolia.com Revision: 38 Stand: 10. Januar 2014 NetUSE AG Dr.-Hell-Straße 6 D-24107 Kiel Telefon: +49 431 2390 400 http://netuse.de/ Inhaltsverzeichnis 1. Versionsübersicht...3

Mehr

ESTOS XMPP Proxy

ESTOS XMPP Proxy ESTOS XMPP Proxy 4.1.12.22953 4.1.12.22953 1 Willkommen zum ESTOS XMPP Proxy... 4 1.1 WAN Einstellungen... 4 1.2 LAN Einstellungen... 5 1.3 Diagnose... 6 1.4 Proxy Dienst... 6 1.5 Server-Zertifikat...

Mehr

ESTOS XMPP Proxy

ESTOS XMPP Proxy ESTOS XMPP Proxy 4.1.18.27533 4.1.18.27533 1 Willkommen zum ESTOS XMPP Proxy... 4 1.1 WAN Einstellungen... 4 1.2 LAN Einstellungen... 5 1.3 Diagnose... 6 1.4 Proxy Dienst... 6 1.5 Server-Zertifikat...

Mehr

EasyWebNG - Screenshots

EasyWebNG - Screenshots EasyWebNG - Screenshots EasyWebNG ist und bleibt 100% kostenlos. Weitere Informationen finden Sie unter http://www.nbs-rottweil.de/easywebng Bereich Alle InstallationEasyWeb. Startseite Startseite nach

Mehr

Dateisystem 1, Suchpfad, Befehlstypen

Dateisystem 1, Suchpfad, Befehlstypen Dateisystem 1, Suchpfad, Befehlstypen Linux-Kurs der Unix-AG Andreas Teuchert 3. Dezember 2012 Was ist ein Dateisystem? Verwaltung von Dateien auf Datenträgern Beispiele: EXT3, EXT4, FAT, NTFS Baumstruktur

Mehr

NTCS Synchronisation mit Exchange

NTCS Synchronisation mit Exchange NTCS Synchronisation mit Exchange Mindestvoraussetzungen Betriebssystem: Mailserver: Windows Server 2008 SP2 (x64) Windows Small Business Server 2008 SP2 Windows Server 2008 R2 SP1 Windows Small Business

Mehr

SMTP-Verfahren POP-Verfahren IMAP-Verfahren

SMTP-Verfahren POP-Verfahren IMAP-Verfahren IT Zertifikat Mailserver 01 Server Mailserver Protokolle Teil des Client-Server-Modells bietet Dienste für lokale Programme/ Computer (Clients) an -> Back-End-Computer Ausbau zu Gruppe von Servern/ Diensten

Mehr

Die Druckdaemons werden im Allgemeinen als Spooler bezeichnet. Wenn es um das Drucken mit Linux geht, gibt es 2 große Lager.

Die Druckdaemons werden im Allgemeinen als Spooler bezeichnet. Wenn es um das Drucken mit Linux geht, gibt es 2 große Lager. Übersicht Drucken mit Linux Die Druckdaemons werden im Allgemeinen als Spooler bezeichnet. Wenn es um das Drucken mit Linux geht, gibt es 2 große Lager. Das eine kommt aus der BSD-Unix Schiene : LPRng

Mehr

WorldSDS Installationsanleitung. Inhaltsverzeichnis

WorldSDS Installationsanleitung. Inhaltsverzeichnis Inhaltsverzeichnis Inhalt 1. Programm installieren... 2 Prüfung 32 oder 64 Bit Version... 2 2. WorldSDS starten und Lizenz einmalig aktivieren... 4 3. Datenkabel an P8GR und an den PC anschließen und die

Mehr

System- und Netzwerkmanagement

System- und Netzwerkmanagement System- und Netzwerkmanagement Protokollierung mit Syslog-NG Markus Müller (11043150) Sven Nissel (11042398) Roman Pyro (11042289) Christian Fehmer (11042419) Versuchsaufbau - Übersicht Syslog Konfiguration

Mehr

protokolliert alle Anmeldungen am Server direkt

protokolliert alle Anmeldungen am Server direkt Logdateien in der paedml 1 Überblick 1.1 Systemrelevante Logdateien unter Linux Systemrelevante Log Dateien liegen weitgehend in /var/log bzw. einem Unterverzeichnis, das mit dem Namen des Dienstes benannt

Mehr

Kurs für Linux Online Kurs Verwalter des Linux System

Kurs für Linux Online Kurs Verwalter des Linux System Kurs für Linux Online Kurs Verwalter des Linux System Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Linux Basis Programm MODUL 1 - Fundamental Einführung in Linux Das Verfahren

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

Switching. Übung 2 System Management. 2.1 Szenario

Switching. Übung 2 System Management. 2.1 Szenario Übung 2 System Management 2.1 Szenario In der folgenden Übung werden Sie Ihre Konfiguration sichern, löschen und wieder herstellen. Den Switch werden Sie auf die neueste Firmware updaten und die Funktion

Mehr

Xpert-Zertifizierung: LINUX System-Verwaltung

Xpert-Zertifizierung: LINUX System-Verwaltung Xpert-Zertifizierung: LINUX System-Verwaltung Allgemeines Das Kurs- und Zertifikatssystem setzt auf globale Qualifizierungsstandards (Linux Professional Institut - LPI) und adaptiert diese für deutschsprachige

Mehr

MERCUR Messaging Konfigurationsbeispiele

MERCUR Messaging Konfigurationsbeispiele 2005 - Konfigurationsbeispiele Übersicht wird weltweit in den unterschiedlichsten Umgebungen eingesetzt. Je nach Anforderung, erstreckt sich das Einsatzgebiet von der einfachen passiven Postfachverwaltung

Mehr

Das Handbuch zu KCron

Das Handbuch zu KCron Das Handbuch zu KCron Autor: Frank Börner (f.boerner@selflinux.org) Autor: Robert Schröter (robert-schroeter@gmx.de) Autor: Morgan N. Sandquist (morgan@pipeline.com) Formatierung: Frank Börner (f.boerner@selflinux.org)

Mehr

Handout Mozilla Thunderbird für Exchange konfigurieren

Handout Mozilla Thunderbird für Exchange konfigurieren Handout Mozilla Thunderbird für Exchange konfigurieren Neues IMAP4-Konto hinzufügen Als erster Schritt der Konfiguration muss ein IMAP4-Konto für die Emails hinzugefügt werden. Dazu wählt man im mittleren

Mehr

untermstrich SYNC Handbuch

untermstrich SYNC Handbuch Handbuch 03/2017 Inhaltsverzeichnis 1. Einleitung... 2 2. Installation... 3 2.1 Systemanforderungen... 3 2.2 Vorbereitungen in Microsoft Outlook... 3 2.3 Setup... 4 3. SYNC-Einstellungen... 6 3.1 Verbindungsdaten...

Mehr

Installations-Dokumentation, YALG Team

Installations-Dokumentation, YALG Team Installations-Dokumentation, YALG Team Version 8.1 1 Benötigtes Material 2 Vor der Installation 3 Beginn 4 Installation 4.1 Sicherheit 4.2 Partitionierung 4.3 Paketauswahl 4.4 Paketauswahl (fein) 5 Konfiguration

Mehr

Rechnernetze Praktikum Versuch 2: MySQL und VPN

Rechnernetze Praktikum Versuch 2: MySQL und VPN Rechnernetze Praktikum Versuch 2: MySQL und VPN Ziel Absicherung einer MySQL Verbindung mittels VPN Vorbereitung Warum muss eine MySQL Verbindung gesichert werden? Was versteht man unter MySQL Injektion?

Mehr

Step by Step Installation von Windows Server von Christian Bartl

Step by Step Installation von Windows Server von Christian Bartl Step by Step Installation von Windows Server 2003 von Installation von Windows Server 2003 1. Zum Starten der Installation legen Sie die Installations-CD in das CD-ROM-Laufwerk. Normalerweise sollte der

Mehr

Wie richtet man Outlook ein?

Wie richtet man Outlook ein? Wie richtet man Outlook ein? Wer eine eigene Homepage besitzt, der kann sich auch eine eigene E-Mail-Adresse zulegen, die auf dem Namen der Domain endet. Der Besitzer der Webseite www.petershomepage.de

Mehr

Installationsanleitung STATISTICA. Einzelplatz Domainbasierte Registrierung

Installationsanleitung STATISTICA. Einzelplatz Domainbasierte Registrierung Installationsanleitung STATISTICA Einzelplatz Domainbasierte Registrierung Für diese Installation ist eine Internetverbindung zwingend erforderlich. Benutzer, die Windows Vista, Windows 7 oder Windows

Mehr

Datenbank auf neuen Server kopieren

Datenbank auf neuen Server kopieren Datenbank auf neuen Server kopieren Mobility & Care Manager Release Datum: 01.10.2014 Version 1.1 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Änderungsgeschichte... 15 1. Einleitung... 3 2. Voraussetzungen...

Mehr

Windows Cockpit Konfiguration Montag, 23. November :59

Windows Cockpit Konfiguration Montag, 23. November :59 Windows Cockpit Konfiguration Montag, 23. November 2015 10:59 Standard Standard Einstellungen Interne Programm Version Cockpit Brand Text Alternativer Logfile Pfad Alte Logdateien automatisch löschen Update

Mehr

Installationsanleitung ab-agenta

Installationsanleitung ab-agenta Installationsanleitung ab-agenta Hard-/Software-Voraussetzungen Unterstützung von 32- und 64-Bit Betriebssystemen Windows 7/8/8.1/10, 2008/2012/2016 Server Einplatz-Version: mindestens 4 GB RAM Arbeitsspeicher,

Mehr

42 Team IMAP-Server. Einstellung für Microsoft Outlook Einstellung für Mozilla Thunderbird

42 Team IMAP-Server. Einstellung für Microsoft Outlook Einstellung für Mozilla Thunderbird 42 Team IMAP-Server Einstellung für Microsoft Outlook Einstellung für Mozilla Thunderbird Die in diesen Unterlagen enthaltenen Informationen können ohne gesonderte Mitteilung geändert werden. 42 Software

Mehr

Windows Server 2016 Essentials Basis-Server für kleine Unternehmen

Windows Server 2016 Essentials Basis-Server für kleine Unternehmen Windows Server 2016 23 Windows Server 2016 Essentials Mit Windows Server 2016 Essentials hat Microsoft einen Server im Angebot, der sich relativ leicht einrichten lässt und grundlegende Funktionen zu Verfügung

Mehr

Fiery Network Controller for DocuColor 250/240 SERVER & CONTROLLER SOLUTIONS. Drucken unter UNIX

Fiery Network Controller for DocuColor 250/240 SERVER & CONTROLLER SOLUTIONS. Drucken unter UNIX Fiery Network Controller for DocuColor 250/240 SERVER & CONTROLLER SOLUTIONS Drucken unter UNIX 2005 Electronics for Imaging, Inc. Die in dieser Veröffentlichung enthaltenen Informationen werden durch

Mehr

III.3.4. Drucken über den Server mit Quotierung

III.3.4. Drucken über den Server mit Quotierung III.3.4. Drucken über den Server mit Quotierung III.3.4. Drucken über den Server mit Quotierung Um die Druckkostenquotierung zu verwenden und den Druckerzugriff innerhalb der logodidact -Console zu steuern,

Mehr

Inhaltsverzeichnis. 3 Linux-Prozessverwaltung DerLinux-Prozess Was isteinprozess?... 41

Inhaltsverzeichnis. 3 Linux-Prozessverwaltung DerLinux-Prozess Was isteinprozess?... 41 Inhaltsverzeichnis 1 Hardware-Grundlagen 10 1.1 Interrupts (IRQ)............................. 10 1.2 DirectMemory Access(DMA)..................... 11 1.3 IO-Ports................................. 12 1.4

Mehr

Technical Note 0604 ewon

Technical Note 0604 ewon Technical Note 0604 ewon Talk2M als Email- & SMS-Server - 1 - Inhaltsverzeichnis 1 Allgemeines... 3 1.1 Information... 3 1.2 Hinweis... 3 1.3 Anschluss PC und ewon-router... 3 2 Email-Versand mit ewon-router...

Mehr

JAKOBSOFTWARE Distribution Service Support DOKUMENTATION. Installation escan 2011 Corporate Edition

JAKOBSOFTWARE Distribution Service Support DOKUMENTATION. Installation escan 2011 Corporate Edition JAKOBSOFTWARE IT-Sicherheit ist unsere Domäne Distribution Service Support DOKUMENTATION Installation escan 2011 Corporate Edition Copyright (c) 2011 Alle Rechte vorbehalten Jürgen Jakob Software-Entwicklung

Mehr

Benutzung der Manpage, Shell Teil 3

Benutzung der Manpage, Shell Teil 3 Benutzung der Manpage, Shell Teil 3 Linux-Kurs der Unix-AG Andreas Teuchert 3./9. Mai 2012 Manpages Dokumentation zu Programmen, speziellen Dateien, etc. steht in Manpages Aufruf mit man Manpage

Mehr

Konfiguration von Opera für

Konfiguration von Opera für {tip4u://051} Version 2 Zentraleinrichtung für Datenverarbeitung (ZEDAT) www.zedat.fu-berlin.de Konfiguration von Opera für E-Mail Um Ihre E-Mails über den Mailserver der ZEDAT herunterzuladen oder zu

Mehr

LINUX Gesamtmitschrift

LINUX Gesamtmitschrift LINUX Gesamtmitschrift Martin Rabensteiner, 22.11.2015 Filesystem unter Linux - Keine Laufwerksbuchstaben - ~ Home-Verzeichnis User - Versteckte Dateien.filename Pfade 1. Absoluter Pfad eindeutiger Weg

Mehr

PrinterAdmin Print Job Manager Benutzerhandbuch

PrinterAdmin Print Job Manager Benutzerhandbuch PrinterAdmin Print Job Manager 8.0 - Benutzerhandbuch Teil I Bestandteile (Seite 2) Teil II Installationsoptionen (Seite 3 ~ 7) Option 1: Installation von PrinterAdmin Print Job Manager auf einem zentralen,

Mehr

Fiery EXP250 Color Server SERVER & CONTROLLER SOLUTIONS. Drucken unter UNIX

Fiery EXP250 Color Server SERVER & CONTROLLER SOLUTIONS. Drucken unter UNIX Fiery EXP250 Color Server SERVER & CONTROLLER SOLUTIONS Drucken unter UNIX 2005 Electronics for Imaging, Inc. Die in dieser Veröffentlichung enthaltenen Informationen werden durch den Inhalt des Dokuments

Mehr

IPCOP Version VPN von Blau auf Grün mit Zerina und OpenVPN

IPCOP Version VPN von Blau auf Grün mit Zerina und OpenVPN IPCOP Version 1.4.10 VPN von Blau auf Grün mit Zerina und OpenVPN Grundsätzliches Dieses Tutorial setzt eine Funktionierente Grundkonfiguration wie in dem Tutorial zur Installation des IPcop voraus (www.ipcop.org).

Mehr

Linux 07. Linux WS 04/05 by www.realtec.de - 1 -

Linux 07. Linux WS 04/05 by www.realtec.de - 1 - 1. Was tun, wenn root-password vergessen: 1) - neu booten bis Bootmanager - im Grub anhalten - Parameterliste ergänzen mit "init = /bin/bash" => nur über die bash wird gestartet => Tastaturbelegung ändert

Mehr

Automatisierung von Abläufen mit cron

Automatisierung von Abläufen mit cron Automatisierung von Abläufen mit cron Quelle: SUSE LINUX Administrationshandbuch Inhaltsverzeichnis 1. Allgemeines...2 1.1 Die crontab...2 1.2 Editieren der crontab...4 1.3 cron-verzeichnisse...5 2. Beispiel

Mehr

Linux System Administration Inhouse Training

Linux System Administration Inhouse Training Zielgruppe: IT-Engineers mit Linux-Grundkenntnissen Dauer: 4 Tage Abstract: In diesem Training steht die Praxis im Vordergrund: Die Teilnehmer lernen, wie sich Linux-Systeme mit den drei großen Linux-Distributoren

Mehr

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet.

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet. Da einige gerne in Vergessenheit geraten werden hier einige essentielle und nützliche aufgelistet. Der Autor übernimmt keine Verantwortung für die auf dieser Seite dargestellten Inhalte. Für weitere Informationen

Mehr

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder BS-Anzeigen 3 Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder Inhaltsverzeichnis Anwendungsbereich... 3 Betroffene Softwareversion... 3 Anzeigenschleuder.com... 3 Anmeldung...

Mehr

Installation von MS SQL-Server 2014 Express

Installation von MS SQL-Server 2014 Express ALGE 2016 SQL Server Installation Inhaltsverzeichnis Installation von MS SQL-Server 2014 Express...1 Datenbank für Remote- Zugriff vorbereiten...6 Windows Firewall Konfiguration...9 Falls Sie ein Englischsprachiges

Mehr

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt. Arbeitsblätter Der Windows Small Business Server 2011 MCTS Trainer Vorbereitung zur MCTS Prüfung 70 169 Aufgaben Kapitel 1 1. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

Harald Maaßen LPIC-2. Sicher zur. erfolgreichen Linux-Zertifizierung. Galileo Press

Harald Maaßen LPIC-2. Sicher zur. erfolgreichen Linux-Zertifizierung. Galileo Press Harald Maaßen LPIC-2 Sicher zur erfolgreichen Linux-Zertifizierung Galileo Press Vorwort 13 LPI 201 200 Kapazitätsplanung 19 200.1 Messen und Problembehandlung bei der Ressourcenverwendung 19 Allgemeines

Mehr