دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 5. Auflage, erweiterte Ausgabe نویسندگان: Stefan Kania, Peer Heinlein, Daniel van Soest, Axel Miesen, Dirk Deimeke سری: Rheinwerk computing ISBN (شابک) : 9783836260930, 3836260948 ناشر: سال نشر: 2018 تعداد صفحات: 1961 زبان: German فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 21 مگابایت
در صورت تبدیل فایل کتاب Linux-Server Das umfassende Handbuch به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب سرورهای لینوکس راهنمای جامع نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Liebe Leser! Inhaltsverzeichnis Vorwort Über dieses Buch 1 Der Administrator 1.1 Der Beruf des Systemadministrators 1.1.1 Berufsbezeichnung und Aufgaben 1.1.2 Job-Definitionen 1.1.3 Definitionen der Management-Level 1.2 Nützliche Fähigkeiten und Fertigkeiten 1.2.1 Soziale Fähigkeiten 1.2.2 Arbeitstechniken 1.3 Das Verhältnis des Administrators zu Normalsterblichen 1.3.1 Der Chef und andere Vorgesetzte 1.3.2 Benutzer 1.3.3 Andere Administratoren 1.4 Unterbrechungsgesteuertes Arbeiten 1.5 Einordnung der Systemadministration 1.5.1 Arbeitsgebiete 1.5.2 DevOps 1.6 Ethischer Verhaltenskodex 1.7 Administration – eine Lebenseinstellung? Teil I Grundlagen 2 Bootvorgang 2.1 Einführung 2.2 Der Bootloader GRUB 2 2.2.1 Funktionsweise 2.2.2 Installation 2.2.3 Konfiguration 2.3 Bootloader Recovery 2.4 Der Kernel und die »initrd« 2.4.1 »initrd« erstellen und modifizieren 2.4.2 »initrd« manuell modifizieren 2.5 »systemd« 2.5.1 Begrifflichkeiten 2.5.2 Kontrollieren von Diensten 2.5.3 Aktivieren und Deaktivieren von Diensten 2.5.4 Erstellen und Aktivieren eigener Service Units 2.5.5 Target Units 2.5.6 »systemd«- und Servicekonfigurationen 2.5.7 Anzeige von Dienstabhängigkeiten 2.5.8 Logs mit »journald« 2.5.9 Abschlussbemerkung 3 Festplatten und andere Devices 3.1 RAID 3.1.1 RAID-0 3.1.2 RAID-1 3.1.3 RAID-5 3.1.4 RAID-6 3.1.5 RAID-10 3.1.6 Zusammenfassung 3.1.7 Weich, aber gut: Software-RAID 3.1.8 Software-RAID unter Linux 3.1.9 Abschlussbemerkung zu RAIDs 3.2 Rein logisch: Logical Volume Manager »LVM« 3.2.1 Grundlagen und Begriffe 3.2.2 Setup 3.2.3 Aufbau einer Volume Group mit einem Volume 3.2.4 Erweiterung eines Volumes 3.2.5 Eine Volume Group erweitern 3.2.6 Spiegelung zu einem Volume hinzufügen 3.2.7 Eine defekte Festplatte ersetzen 3.2.8 Backups mit Snapshots 3.2.9 Mirroring ausführlich 3.2.10 Thin Provisioning 3.2.11 Kommandos 3.3 »udev« 3.3.1 »udev«-Regeln 3.3.2 Eigene Regeln schreiben 3.4 Alles virtuell? »/proc« 3.4.1 CPU 3.4.2 RAM 3.4.3 Kernelkonfiguration 3.4.4 Kernelparameter 3.4.5 Gemountete Dateisysteme 3.4.6 Prozessinformationen 3.4.7 Netzwerk 3.4.8 Änderungen dauerhaft speichern 3.4.9 Abschlussbemerkung 4 Dateisysteme 4.1 Dateisysteme: von Bäumen, Journalen und einer Kuh 4.1.1 Bäume 4.1.2 Journale 4.1.3 Und die Kühe? COW-fähige Dateisysteme 4.2 Praxis 4.2.1 Ext2/3-FS aufgebohrt: mke2fs, tune2fs, dumpe2fs, e2label 4.2.2 ReiserFS und seine Tools 4.2.3 XFS 4.2.4 Das Dateisystem vergrößern oder verkleinern 4.2.5 BtrFS 4.3 Fazit 5 Berechtigungen 5.1 User, Gruppen und Dateisystemstrukturen 5.2 Dateisystemberechtigungen 5.2.1 Spezialbits 5.3 Erweiterte POSIX-ACLs 5.3.1 Setzen und Anzeigen von einfachen ACLs 5.3.2 Setzen von Default-ACLs 5.3.3 Setzen von erweiterten ACLs 5.3.4 Entfernen von ACLs 5.3.5 Sichern und Zurückspielen von ACLs 5.4 Erweiterte Dateisystemattribute 5.4.1 Attribute, die jeder Benutzer ändern kann 5.4.2 Attribute, die nur »root« ändern kann 5.4.3 Weitere Attribute 5.5 Quotas 5.5.1 Installation und Aktivierung der Quotas 5.5.2 Journaling-Quotas 5.5.3 Quota-Einträge verwalten 5.6 Pluggable Authentication Modules (PAM) 5.6.1 Verschiedene PAM-Typen 5.6.2 Die PAM-Kontrollflags 5.6.3 Argumente zu den Modulen 5.6.4 Modulpfade 5.6.5 Module und ihre Aufgaben 5.6.6 Die neuere Syntax bei der PAM-Konfiguration 5.7 Konfiguration von PAM 5.8 »ulimit« 5.8.1 Setzen der »ulimit«-Werte 5.9 Abschlussbemerkung Teil II Aufgaben 6 Paketmanagement 6.1 Paketverwaltung 6.1.1 »rpm« oder »deb«? 6.1.2 »yum«, »yast«, »zypper« oder »apt«? 6.1.3 Außerirdische an Bord – »alien« 6.2 Pakete im Eigenbau 6.2.1 Vorbereitungen 6.2.2 Am Anfang war das Makefile 6.2.3 Vom Fellknäuel zum Paket 6.2.4 Patchen mit »patch« und »diff« 6.2.5 Updates sicher konfigurieren 6.3 Updates nur einmal laden: »Cache« 6.3.1 »deb«-basierte Distributionen: »apt-cacher-ng« 6.3.2 Installation 6.3.3 Konfiguration 6.3.4 Clientkonfiguration 6.3.5 Fütterungszeit – bereits geladene Pakete dem Cache hinzufügen 6.3.6 Details: »Report-HTML« 6.3.7 »rpm«-basierte Distributionen 6.4 Alles meins: »Mirror« 6.4.1 »deb«-basierte Distributionen: »debmirror« 6.4.2 Konfiguration 6.4.3 Benutzer und Gruppe anlegen 6.4.4 Verzeichnisstruktur anlegen 6.4.5 Mirror-Skript erstellen (Ubuntu) 6.4.6 Cronjobs einrichten 6.4.7 Schlüssel importieren 6.4.8 Mirror erstellen 6.4.9 Mirror verfügbar machen – Webdienst konfigurieren 6.4.10 Clientkonfiguration 6.4.11 rpm-basierte Distributionen 6.4.12 Benutzer und Gruppe anlegen 6.4.13 Verzeichnisstruktur anlegen: »openSUSE Leap« 6.4.14 Verzeichnisstruktur anlegen: »CentOS« 6.4.15 Mirror-Skript erstellen 6.4.16 Cronjobs einrichten 6.4.17 Mirror erstellen 6.4.18 Mirror verfügbar machen – Webdienst konfigurieren 6.4.19 Clientkonfiguration: »openSUSE Leap« 6.4.20 Clientkonfiguration: »CentOS« 7 Backup und Recovery 7.1 Backup gleich Disaster Recovery? 7.2 Backupstrategien 7.3 Datensicherung mit »tar« 7.3.1 Weitere interessante Optionen für GNU-»tar« 7.3.2 Sicherung über das Netzwerk mit »tar« und »ssh« 7.4 Datensynchronisation mit »rsync« 7.4.1 Lokale Datensicherung mit »rsync« 7.4.2 Synchronisieren im Netzwerk mit »rsync« 7.4.3 Wichtige Optionen für »rsync« 7.4.4 Backupskript für die Sicherung auf einen Wechseldatenträger 7.4.5 Backupskript für die Sicherung auf einen Backupserver 7.4.6 Verwendung von »ssh« für die Absicherung von »rsync« 7.5 Imagesicherung mit »dd« 7.5.1 Sichern des Master Boot Records (MBR) 7.5.2 Partitionstabelle mithilfe von »dd« zurückspielen 7.5.3 Images mit »dd« erstellen 7.5.4 Einzelne Dateien mit »dd« aus einem Image zurückspielen 7.5.5 Abschlussbemerkung zu »dd« 7.6 Disaster Recovery mit ReaR 7.6.1 ReaR installieren 7.6.2 ReaR konfigurieren 7.6.3 Aufrufparameter von ReaR 7.6.4 Der erste Testlauf 7.6.5 Der Recovery-Prozess 7.6.6 Die ReaR-Konfiguration im Detail 7.6.7 Migrationen mit ReaR Teil III Dienste 8 Webserver 8.1 Apache 8.1.1 Installation 8.1.2 Virtuelle Hosts einrichten 8.1.3 Debian/Ubuntu: Virtuelle Hosts aktivieren 8.1.4 HTTPS konfigurieren 8.1.5 Benutzer-Authentifizierung mit Kerberos 8.1.6 Apache-Server mit ModSecurity schützen 8.1.7 Tuning und Monitoring 8.2 nginx 8.2.1 Installation 8.2.2 Grundlegende Konfiguration 8.2.3 Virtuelle Hosts 8.2.4 HTTPS mit nginx 8.3 Logfiles auswerten 9 FTP-Server 9.1 Einstieg 9.1.1 Das File Transfer Protocol 9.1.2 vsftpd 9.2 Download-Server 9.3 Zugriff von Usern auf ihre Homeverzeichnisse 9.4 FTP über SSL (FTPS) 9.5 Anbindung an LDAP 10 Mailserver 10.1 Postfix 10.1.1 Grundlegende Konfiguration 10.1.2 Postfix als Relay vor Exchange, Dovecot oder anderen Backends 10.1.3 Die Postfix-Restrictions: Der Schlüssel zu Postfix 10.1.4 Weiterleitungen und Aliasse für Mailadressen 10.1.5 SASL/SMTP-Auth 10.1.6 SSL/TLS für Postfix einrichten 10.2 Antivirus- und Spam-Filter mit Amavisd-new, ClamAV und SpamAssassin 10.2.1 Installation 10.2.2 ClamAV konfigurieren 10.2.3 Updates für SpamAssassin konfigurieren 10.2.4 Amavisd-new konfigurieren 10.2.5 Eine Quarantäne mit Amavis betreiben 10.2.6 Postfix für die Verwendung mit Amavisd-new konfigurieren 10.3 POP3/IMAP-Server mit Dovecot 10.3.1 Vorbereitungen im Linux-System 10.3.2 Log-Meldungen und Debugging 10.3.3 User-Authentifizierung 10.3.4 Aktivierung des LMTP-Servers von Dovecot 10.3.5 Einrichten von SSL/TLS-Verschlüsselung 10.4 Der Ernstfall: Der IMAP-Server erwacht zum Leben 10.5 Dovecot im Replikations-Cluster 10.5.1 Einrichtung der Replikation 10.5.2 Hochverfügbare Service-IP 10.6 Monitoring und Logfile-Auswertung 10.6.1 Logfile-Auswertung mit »Pflogsumm« 11 Datenbank 11.1 MariaDB in der Praxis 11.1.1 Installation und grundlegende Einrichtung 11.1.2 Replikation 11.1.3 Master-Master-Replikation 11.2 Tuning 11.2.1 Tuning des Speichers 11.2.2 Tuning von Indizes 11.3 Backup und Point-In-Time-Recovery 11.3.1 Restore zum letztmöglichen Zeitpunkt 11.3.2 Restore zu einem bestimmten Zeitpunkt 12 Syslog 12.1 Aufbau von Syslog-Nachrichten 12.2 Der Klassiker: »SyslogD« 12.3 Syslog-ng 12.3.1 Der »options«-Abschnitt 12.3.2 Das »source«-Objekt 12.3.3 Das »destination«-Objekt 12.3.4 Das »filter«-Objekt 12.3.5 Das »log«-Objekt 12.4 Rsyslog 12.4.1 Eigenschaftsbasierte Filter 12.4.2 Ausdrucksbasierte Filter 12.5 Loggen über das Netz 12.5.1 SyslogD 12.5.2 Syslog-ng 12.5.3 Rsyslog 12.6 Syslog in eine Datenbank schreiben 12.6.1 Anlegen der Log-Datenbank 12.6.2 In die Datenbank loggen 12.7 »systemd« mit »journalctl« 12.7.1 Erste Schritte mit dem »journalctl«-Kommando 12.7.2 Filtern nach Zeit 12.7.3 Filtern nach Diensten 12.7.4 Kernelmeldungen 12.8 Fazit 13 Proxy-Server 13.1 Einführung des Stellvertreters 13.2 Proxys in Zeiten des Breitbandinternets 13.3 Herangehensweisen und Vorüberlegungen 13.4 Grundkonfiguration 13.4.1 Aufbau des Testumfelds 13.4.2 Netzwerk 13.4.3 Cache 13.4.4 Logging 13.4.5 Handhabung des Dienstes 13.4.6 Objekte 13.4.7 Objekttypen 13.4.8 Objektlisten in Dateien 13.4.9 Regeln 13.4.10 Überlagerung mit »first match« 13.4.11 Anwendung von Objekten und Regeln 13.5 Authentifizierung 13.5.1 Benutzerbasiert 13.5.2 Gruppenbasiert 13.6 Log-Auswertung: »Calamaris« und »Sarg« 13.6.1 Calamaris 13.6.2 Sarg 13.7 Unsichtbar: »transparent proxy« 13.8 Ab in den Pool – Verzögerung mit »delay_pools« 13.8.1 Funktionsweise – alles im Eimer! 13.8.2 Details – Klassen, Eimer und ACLs richtig wählen 13.9 Familienbetrieb: »Sibling, Parent und Co.« 13.9.1 Grundlagen 13.9.2 Eltern definieren 13.9.3 Geschwister definieren 13.9.4 Load Balancing 13.9.5 Inhalte eigenständig abrufen: »always_direct« 13.10 Cache-Konfiguration 13.10.1 Cache-Arten: »Hauptspeicher« und »Festplatten« 13.10.2 Hauptspeicher-Cache 13.10.3 Festplatten-Cache 13.10.4 Tuning 14 Kerberos 14.1 Begriffe im Zusammenhang mit Kerberos 14.2 Funktionsweise von Kerberos 14.3 Installation und Konfiguration des Kerberos-Servers 14.3.1 Konfiguration der Datei »/etc/krb5.conf« 14.3.2 Konfiguration der Datei »kdc.conf« 14.4 Initialisierung und Testen des Kerberos-Servers 14.4.1 Verwalten der Principals 14.5 Kerberos und PAM 14.5.1 Konfiguration der PAM-Dateien auf einem openSUSE-System 14.5.2 Testen der Anmeldung 14.6 Neue Benutzer mit Kerberos-Principal anlegen 14.7 Hosts und Dienste 14.7.1 Einträge entfernen 14.8 Konfiguration des Kerberos-Clients 14.8.1 PAM und Kerberos auf dem Client 14.9 Replikation des Kerberos-Servers 14.9.1 Bekanntmachung aller KDCs im Netz 14.9.2 Konfiguration des KDC-Masters 14.9.3 Konfiguration des KDC-Slaves 14.9.4 Replikation des KDC-Masters auf den KDC-Slave 14.10 Kerberos-Policys 14.11 Kerberos in LDAP einbinden 14.11.1 Konfiguration des LDAP-Servers 14.11.2 Umstellung des Kerberos-Servers 14.11.3 Zurücksichern der alten Datenbank 14.11.4 Erstellung der Service-Keys in der Standard-»keytab«-Datei 14.11.5 Erstellung der Service Keys in einer eigenen Datei 14.11.6 Bestehende LDAP-Benutzer um Kerberos-Principal erweitern 14.12 Neue Benutzer im LDAP-Baum 14.13 Authentifizierung am LDAP-Server über »GSSAPI« 14.13.1 Authentifizierung unter Debian und Ubuntu einrichten 14.13.2 Authentifizierung unter openSUSE und CentOS einrichten 14.13.3 Den zweiten KDCs an den LDAP-Server anbinden 14.14 Konfiguration des LAM Pro 15 Samba 4 15.1 Vorüberlegungen 15.1.1 Installation der Pakete unter Ubuntu und Debian 15.2 Konfiguration von Samba 4 als Domaincontroller 15.2.1 Konfiguration des Bind9 15.3 Testen des Domaincontrollers 15.3.1 Testen des DNS-Servers 15.3.2 Test des Verbindungsaufbaus 15.3.3 Test des Kerberos-Servers 15.3.4 Einrichtung des Zeitservers 15.4 Benutzer- und Gruppenverwaltung 15.5 Benutzer- und Gruppenverwaltung über die Kommandozeile 15.5.1 Verwaltung von Gruppen über die Kommandozeile 15.5.2 Verwaltung von Benutzern über die Kommandozeile 15.5.3 Setzen der Passwortrichtlinien 15.6 Die »Remote Server Administration Tools« (RSAT) 15.6.1 Die »RSAT« einrichten 15.6.2 Beitritt eines Windows-Clients zur Domäne 15.6.3 Benutzer- und Gruppenverwaltung mit den »RSAT« 15.7 Gruppenrichtlinien 15.7.1 Verwaltung der GPOs mit den RSAT 15.7.2 Erste Schritte mit der Gruppenrichtlinienverwaltung 15.7.3 Eine Gruppenrichtlinie erstellen 15.7.4 Die Gruppenrichtlinie mit einer OU verknüpfen 15.7.5 Benutzer und Gruppen verschieben 15.7.6 GPOs über die Kommandozeile 15.8 Linux-Client in der Domäne 15.8.1 Konfiguration der Authentifizierung 15.8.2 Mounten über »pam_mount« 15.8.3 Umstellen des grafischen Logins 15.9 Zusätzliche Server in der Domäne 15.9.1 Einen Fileservers einrichten 15.9.2 Ein zusätzlicher Domaincontroller 15.9.3 Konfiguration des zweiten DC 15.9.4 Einrichten des Nameservers 15.9.5 Testen der Replikation 15.9.6 Weitere Tests 15.9.7 Einrichten des Zeitservers 15.10 Die Replikation der Freigabe »sysvol« einrichten 15.10.1 Einrichten des »rsync«-Servers 15.10.2 Einrichten von »rsync« auf dem »PDC-Master« 15.11 Was geht noch mit Samba 4? 16 NFS 16.1 Unterschiede zwischen »NFSv3« und »NFSv4« 16.2 Funktionsweise von »NFSv4« 16.3 Einrichten des »NFSv4«-Servers 16.3.1 Konfiguration des Pseudodateisystems 16.3.2 Anpassen der Datei »/etc/exports« 16.3.3 Tests für den NFS-Server 16.4 Konfiguration des »NFSv4«-Clients 16.5 Konfiguration des »idmapd« 16.6 Optimierung von »NFSv4« 16.6.1 Optimierung des »NFSv4«-Servers 16.6.2 Optimierung des »NFSv4«-Clients 16.7 »NFSv4« und Firewalls 16.8 NFS und Kerberos 16.8.1 Erstellung der Principals und der »keytab«-Dateien 16.8.2 Kerberos-Authentifizierung unter Debian und Ubuntu 16.8.3 Kerberos-Authentifizierung auf SUSE und CentOS 16.8.4 Anpassen der Datei »/etc/exports« 16.8.5 Einen NFS-Client für Kerberos unter Debian und Ubuntu konfigurieren 16.8.6 Einen NFS-Client für Kerberos unter SUSE und CentOS konfigurieren 16.8.7 Testen der durch Kerberos abgesicherten NFS-Verbindung 16.8.8 Testen der Verbindung 17 LDAP 17.1 Einige Grundlagen zu LDAP 17.1.1 Was ist ein Verzeichnisdienst? 17.1.2 Der Einsatz von LDAP im Netzwerk 17.1.3 Aufbau des LDAP-Datenmodells 17.1.4 Objekte 17.1.5 Attribute 17.1.6 Schema 17.1.7 Das LDIF-Format 17.2 Unterschiede in den einzelnen Distributionen 17.2.1 Umstellung auf die statische Konfiguration unter SUSE 17.2.2 Umstellung auf die statische Konfiguration unter Ubuntu-Server und Debian 17.2.3 Pfade und Benutzer 17.2.4 Die Datenbank-Backends 17.2.5 Grundkonfiguration des LDAP-Servers 17.3 Konfiguration des LDAP-Clients 17.4 Absichern der Verbindung zum LDAP-Server über TLS 17.4.1 Erstellen der Zertifizierungsstelle 17.4.2 Erstellen des Serverzertifikats 17.4.3 Signieren des Zertifikats 17.4.4 Zertifikate in die »slapd.conf« eintragen 17.4.5 Konfiguration des LDAP-Clients 17.5 Einrichtung des »sssd« 17.5.1 Erster Zugriff auf den LDAP-Server 17.6 Grafische Werkzeuge für die LDAP-Verwaltung 17.7 Änderungen mit »ldapmodify« 17.7.1 Interaktive Änderung mit »ldapmodify« 17.7.2 Änderungen über eine LDIF-Datei mit »ldapmodify« 17.8 Absichern des LDAP-Baums mit ACLs 17.8.1 Eine eigene Datei für die ACLs einbinden 17.8.2 Erste ACLs zur Grundsicherung des DIT 17.8.3 ACLs mit regulären Ausdrücken 17.8.4 ACLs vor dem Einsatz testen 17.9 Filter zur Suche im LDAP-Baum 17.9.1 Die Fähigkeiten des LDAP-Servers testen 17.9.2 Einfache Filter 17.9.3 Filter mit logischen Verknüpfungen 17.9.4 Einschränkung der Suchtiefe 17.10 Verwendung von Overlays 17.10.1 Overlays am Beispiel von »dynlist« 17.10.2 Weitere Overlays 17.11 Partitionierung des DIT 17.11.1 Einrichtung von »subordinate«-Datenbanken 17.11.2 Verwaltung von »Referrals« 17.11.3 Konfiguration des Hauptnamensraums 17.11.4 Die untergeordneten Datenbank einrichten 17.11.5 Testen der Referrals 17.12 Einrichtung mit Chaining 17.12.1 Die untergeordneten Datenbank einrichten 17.12.2 Konfiguration der Server 17.12.3 Erste Tests 17.12.4 Das Overlay »chain« 17.12.5 Der sssd-Zugriff 17.12.6 Auf dem untergeordneten Namensraum 17.13 Testen der Umgebung 17.13.1 Auf dem Master von »dc=exampe,dc=net« 17.13.2 Auf dem Master von »dc=referral,dc=example,dc=net« 17.14 Replikation des DIT 17.14.1 Konfiguration des Providers 17.14.2 Konfiguration des Consumers 17.15 Die dynamische Konfiguration 17.15.1 Umstellung auf die dynamische Konfiguration am Provider 17.15.2 Umstellung auf die dynamische Konfiguration am Consumer 17.16 Verwaltung von Weiterleitungen für den Mailserver Postfix 17.17 Benutzerauthentifizierung von Dovecot über LDAP 17.18 Benutzerauthentifizierung am Proxy »Squid« über LDAP 17.18.1 Die Authentifizierung über LDAP aktivieren 17.18.2 Benutzerbezogene Authentifizierung 17.18.3 Gruppenbezogene Authentifizierung 17.19 Benutzerauthentifizierung am Webserver Apache über LDAP 17.19.1 Konfiguration der Cache-Parameter 17.19.2 Konfiguration der Zugriffsparameter 17.20 Und was geht sonst noch alles mit LDAP? 18 Druckserver 18.1 Grundkonfiguration des Netzwerkzugriffs 18.2 Policys 18.2.1 Location-Policys 18.2.2 Operation Policys 18.2.3 Weitere Konfigurationsmöglichkeiten 18.2.4 Browsing 18.3 Drucker und Klassen einrichten und verwalten 18.3.1 Drucker einrichten 18.3.2 Klassen einrichten 18.4 Druckerquotas 18.5 CUPS über die Kommandozeile 18.5.1 Einstellen eines Standarddruckers 18.5.2 Optionen für einen Drucker verwalten 18.6 PPD-Dateien 18.7 CUPS und Kerberos 18.7.1 Erstellen des Kerberos-Principals und der »keytab«-Datei 18.7.2 Umstellung der Authentifizierung am CUPS-Server 18.8 Noch mehr Druck Teil IV Infrastruktur 19 Hochverfügbarkeit 19.1 Das Beispiel-Setup 19.2 Installation 19.2.1 Debian 9 und Ubuntu 18.04 LTS 19.2.2 CentOS 7.5 19.2.3 openSUSE Leap 19.3 Einfache Vorarbeiten 19.4 Shared Storage mit DRBD 19.4.1 Grundlegende Konfiguration 19.4.2 Die wichtigsten Konfigurationsoptionen 19.4.3 Die DRBD-Ressource in Betrieb nehmen 19.5 Grundkonfiguration der Clusterkomponenten 19.5.1 Pacemaker und Corosync: das Benachrichtigungssystem 19.5.2 Pacemaker: der Ressourcenmanager 19.5.3 Quorum deaktivieren 19.6 Dienste hochverfügbar machen 19.6.1 Die erste Ressource: eine hochverfügbare IP-Adresse 19.6.2 Hochverfügbarkeit am Beispiel von Apache 19.6.3 DRBD integrieren 19.6.4 Fencing 20 Virtualisierung 20.1 Einleitung 20.2 Für den »Sysadmin« 20.3 Servervirtualisierung 20.3.1 KVM 20.3.2 Xen 20.4 Netzwerkgrundlagen 20.5 Management und Installation 20.5.1 Einheitlich arbeiten: »libvirt« 20.5.2 Konsolenbasiertes Management: »virsh« 20.5.3 Virtuelle Maschinen installieren 20.5.4 »virt-install« 20.5.5 Alleskönner: »Virtual Machine Manager« 20.5.6 Zusätzliche Konsolentools 20.6 Umzugsunternehmen: Live Migration 20.6.1 Vorbereitungen 20.6.2 Konfiguration im »Virtual Machine Manager« 21 Docker 21.1 Einführung, Installation und wichtige Grundlagen 21.1.1 Was ist Docker? 21.1.2 Was ist ein Container? 21.1.3 Container vs. VM 21.1.4 Docker: Entstehung und Geschichte 21.1.5 Docker-Versionen 21.1.6 Funktionale Übersicht 21.1.7 Installation 21.1.8 Ergänzungen zur Installation, erster Systemtest 21.1.9 Etwas Terminologie 21.1.10 Konfigurationsmöglichkeiten des Docker-Daemons 21.1.11 Betrieb hinter einem Proxy 21.1.12 Image-Schichten und Storage Driver 21.1.13 Einrichtung von devicemapper/direct-lvm 21.2 Management von Images und Containern 21.2.1 Das Docker-CLI (Command Line Interface) 21.2.2 Erste Schritte 21.2.3 Löschen von Containern und Images 21.2.4 Handling von Containern 21.2.5 Prozessverwaltung 21.2.6 Umgebungsvariablen 21.2.7 (Zentralisiertes) Logging 21.2.8 Verteilung von Images über Dateiversand 21.2.9 Der Docker Hub 21.2.10 Image-Tags und Namenskonventionen 21.2.11 Informationen über Images gewinnen 21.2.12 Go-Templates 21.2.13 Erstellen eigener Base-Images 21.2.14 Container limitieren 21.2.15 Packungsdichte 21.3 Docker-Networking 21.3.1 Grundlagen 21.3.2 Docker und iptables 21.3.3 /etc/hosts-Einträge beim Containerstart 21.3.4 User Defined Networks 21.3.5 Portmapping 21.4 Datenpersistenz 21.4.1 Bind Mounts und Volumes 21.4.2 Weitere Möglichkeiten zur Datenpersistenz 21.5 Erstellen eigener Images mit Dockerfiles 21.5.1 Einfaches Committen von Anpassungen 21.5.2 Dockerfiles und docker build: Basics 21.5.3 Dangling Images 21.5.4 Den Build-Cache umgehen 21.5.5 Fehler(-Suche) im Buildprozess 21.5.6 Die Dockerfile-Direktiven: Ein Überblick 21.5.7 Ein Beispiel mit COPY, VOLUME, EXPOSE, USER, CMD 21.5.8 CMD und ENTRYPOINT, CMD vs. ENTRYPOINT 21.5.9 .dockerignore-Files 21.5.10 Healthchecks 21.5.11 Multistage-Builds 21.5.12 Best Practices 21.6 Multi-Container-Rollout mit Docker Compose 21.6.1 Einleitung und Installation 21.6.2 Basics 21.6.3 Ein erstes Beispiel mit docker-compose 21.6.4 Build and Run 21.6.5 Netzwerke, Volumes, Environment 21.6.6 Flexible Compose-Konfigurationen durch Umgebungsvariablen 21.6.7 Integration in systemd 21.7 Betrieb einer eigenen Registry 21.7.1 Basis-Setup und erster Test 21.7.2 Registry mit TLS 21.7.3 Registry-Authentifizierung 21.7.4 Suchen oder Löschen in der privaten Registry 21.7.5 Der Docker Registry Manager 21.8 Container-Cluster mit dem Docker Swarm Mode 21.8.1 Swarm-Konzepte 21.8.2 Unser Beispielszenario 21.8.3 Cluster-Setup 21.8.4 Swarm Services 21.8.5 Skalierung 21.8.6 Netzwerken im Schwarm: Overlay-Netzwerke 21.8.7 Ausfallsicherheit 21.8.8 Ausrollen von Services 21.8.9 Labels und Constraints 21.8.10 Noch mal Healthchecks Teil V Kommunikation 22 Netzwerk 22.1 Vorwort zu »Predictable Network Interface Names« 22.2 Netzwerkkonfiguration mit »iproute2« 22.2.1 Erste Schritte 22.2.2 Die Syntax von »ip« 22.2.3 Links ansehen und manipulieren: »ip link« 22.2.4 IP-Adressen ansehen und manipulieren: »ip address« 22.2.5 Manipulation von ARP-Einträgen: »ip neighbour« 22.3 Routing mit »ip« 22.3.1 Routing-Informationen anzeigen 22.3.2 Da geht noch mehr: »Advanced Routing« 22.3.3 Die vorhandenen Regeln ansehen 22.3.4 Eine neue Routing-Tabelle anlegen 22.3.5 Ändern der »Policy Routing Database« 22.3.6 Routing über mehrere Uplinks 22.3.7 Fazit bis hierher 22.4 Bonding 22.4.1 Bonding-Konfiguration 22.4.2 Bonding unter Debian 22.4.3 Bonding unter Ubuntu 22.4.4 Bonding unter CentOS 22.4.5 Bonding unter openSUSE Leap 22.5 IPv6 22.5.1 Die Vorteile von IPv6 22.5.2 Notation von IPv6-Adressen 22.5.3 Die Netzmasken 22.5.4 Die verschiedenen IPv6-Adressarten 22.5.5 Es geht auch ohne »ARP« 22.5.6 Feste Header-Länge 22.5.7 IPv6 in der Praxis 22.6 Firewalls mit »netfilter« und »iptables« 22.6.1 Der Weg ist das Ziel – wie Pakete durch den Kernel laufen 22.6.2 Einführung in »iptables« 22.6.3 Regeln definieren 22.6.4 Die klassischen Targets 22.6.5 Ein erster Testlauf 22.6.6 Rein wie raus: »Stateful Packet Inspection« 22.6.7 Das erste Firewallskript 22.6.8 Externe Firewall 22.6.9 Logging 22.6.10 Network Address Translation und Masquerading 22.6.11 Weitere nützliche Module für »iptables« 22.6.12 Abschlussbemerkung 22.7 DHCP 22.7.1 Funktionsweise 22.7.2 Konfiguration 22.8 DNS-Server 22.8.1 Funktionsweise 22.8.2 Unterschied: rekursiv und autoritativ 22.8.3 Einträge im DNS: »Resource Records« 22.8.4 Die Grundkonfiguration 22.8.5 Zonendefinitionen 22.8.6 Die erste vollständige Zone 22.8.7 Die »hint«-Zone 22.8.8 Reverse Lookup 22.8.9 Slave-Server 22.8.10 DNS-Server und IPv6 22.9 Vertrauen schaffen mit »DNSSEC« 22.9.1 Die Theorie: »Wie arbeitet DNSSEC?« 22.9.2 Anpassungen am Server 22.9.3 Schlüssel erzeugen 22.9.4 Schlüssel der Zone hinzufügen und die Zone signieren 22.9.5 Signierte Zone aktivieren 22.9.6 Signierung prüfen 22.9.7 Die Signierung veröffentlichen 22.9.8 Fazit 22.10 Nachwort zum Thema Netzwerk 23 OpenSSH 23.1 Die SSH-Familie 23.1.1 Die Clients: »ssh«, »scp«, »sftp« 23.1.2 Der Server: »sshd« 23.2 Schlüssel statt Passwort 23.2.1 Schlüssel erzeugen 23.2.2 Passwortloses Login 23.2.3 Der SSH-Agent merkt sich Passphrasen 23.3 X11-Forwarding 23.4 Portweiterleitung und Tunneling 23.4.1 SshFS: entfernte Verzeichnisse lokal einbinden 24 Administrationstools 24.1 Was kann dies und jenes noch? 24.1.1 Der Rsync-Daemon 24.1.2 Wenn's mal wieder später wird: »screen« 24.1.3 Anklopfen mit »nmap« 24.1.4 Netzwerkinspektion: »netstat« 24.1.5 Zugreifende Prozesse finden: »lsof« 24.1.6 Was macht mein System? »top«! 24.1.7 Wenn gar nichts mehr geht – Debugging mit »strace« 24.1.8 Prüfung der Erreichbarkeit mit »my traceroute« 24.1.9 Subnetzberechnung mit »ipcalc« 24.2 Aus der Ferne – Remote-Administrationstools 24.2.1 PuTTY 24.2.2 WinSCP 24.2.3 Synergy 24.2.4 Eine für immer: »mosh« 25 Versionskontrolle 25.1 Philosophien 25.1.1 Lokal 25.1.2 Zentral 25.1.3 Dezentral 25.2 Versionskontrollsysteme 25.2.1 CVS 25.2.2 Apache Subversion 25.2.3 GNU Bazaar 25.2.4 Mercurial 25.2.5 Git 25.3 Kommandos 25.4 Serverdienste 25.4.1 Git-Server mit Gitolite 25.4.2 Git-Server mit Gitea Teil VI Automatisierung 26 Scripting 26.1 Aufgebohrte Muscheln 26.2 Vom Suchen und Finden: ein kurzer Überblick 26.2.1 Die Detektive: »grep«, »sed« und »awk« 26.2.2 Reguläre Ausdrücke verstehen und anwenden 26.3 Fortgeschrittene Shell-Programmierung 26.3.1 Expansionsschemata 26.3.2 Umgebungsvariablen 26.3.3 »Back to bash«: ein tieferer Blick in die Muschel 26.3.4 Logging in Skripten 26.4 Tipps und Tricks aus der Praxis 26.4.1 Aufräumkommando 26.4.2 IFS 26.4.3 Datumsmagie 26.4.4 E-Mails aus einem Skript versenden 26.4.5 Interaktive Programme steuern 27 Ansible 27.1 Einführung, Überblick und Installation 27.1.1 Geschichte und Versionen 27.1.2 Was bedeutet »Ansible«? 27.1.3 Merkmale 27.1.4 Beispielszenario 27.1.5 Installation auf dem Control Host 27.1.6 Installation auf den Target Hosts 27.1.7 Einrichten der SSH-Public-Key-Authentifizierung 27.1.8 Ein Ad-hoc-Test ohne jegliche Konfiguration 27.1.9 Noch ein Hinweis zur Migration von älteren Versionen 27.2 Basiseinrichtung und Ad-hoc-Kommandos 27.2.1 Verzeichnisstruktur einrichten 27.2.2 Grundkonfiguration (ansible.cfg) 27.2.3 Erstellen und Verwalten eines Inventorys 27.2.4 Ad-hoc-Kommandos 27.2.5 Patterns zum Adressieren von Hosts 27.2.6 Die Ansible-Konsole 27.2.7 Idempotenz 27.2.8 Parallele Ausführung 27.2.9 »Hängende« Verbindungen 27.2.10 Exkurs: Versionskontrolle mit Git 27.3 Die Konfigurations- und Serialisierungssprache YAML 27.3.1 YAML-Files editieren 27.3.2 Listen und Hashes 27.3.3 Verschachtelte Strukturen 27.3.4 Block-Ausdrücke 27.4 Playbooks 27.4.1 Playbooks, Tasks und Plays 27.4.2 Das Kommando ansible-playbook 27.4.3 Tags 27.4.4 Variablen 27.4.5 Facts und implizite Variablen 27.4.6 Jinja2 und Templates 27.4.7 Bedingte Ausführung 27.4.8 Schleifen 27.4.9 Das Verhalten von command und shell 27.4.10 Fehlerbehandlung und Retry-Files 27.4.11 Blocks (und noch mal Fehlerbehandlung) 27.4.12 Die Vault 27.4.13 Handler 27.4.14 Asynchrone Ausführung 27.4.15 Lokale Tasks 27.4.16 Hosts in einer definierten Reihenfolge abarbeiten 27.4.17 Dynamische Gruppen 27.4.18 Lookups 27.4.19 Logging und no_log 27.4.20 Die Kuh spricht: cowsay 27.5 Die Modul-Bibliothek 27.5.1 Module zur Kommandoausführung 27.5.2 Module zur Paketverwaltung 27.5.3 Module zur Verwaltung von Dateien und Dateiinhalten 27.5.4 Module für weitere typische Verwaltungsaufgaben 27.5.5 Spezialmodule (Kontrollflusssteuerung etc.) 27.6 Modularisierung von Playbooks mit Rollen oder Includes 27.6.1 Erstellung und Verwendung von Rollen 27.6.2 Ansible Galaxy 27.6.3 Verwendung von Imports/Includes 27.7 Webinterfaces 27.7.1 Ansible Tower / AWX 27.7.2 Ansible Configuration Management Database (ansible-cmdb) 27.7.3 Ansible Run Analysis (ARA) 27.7.4 nci ansible ui 27.8 Was könnte noch besser sein bzw. was fehlt noch? 27.8.1 Skip/End auf Rollenebene 27.8.2 Locking bei konkurrierenden Playbook-Aufrufen 27.8.3 Schleifen über Blöcke 27.8.4 Konfigurierbarer Logging-Output 27.8.5 Standardisierte Vorgaben für die Rollen-Dokumentation 27.8.6 Fazit 28 Monitoring – wissen, was läuft 28.1 Monitoring mit Naemon 28.1.1 Allgemeine Konfiguration 28.1.2 Konfiguration der Objekte 28.1.3 Eigene Hosts und Services konfigurieren 28.1.4 Benachrichtigungen 28.1.5 NRPE – Partitionsfüllstand und andere lokale Werte remote überprüfen 28.2 Monitoring mit Munin 28.3 Fazit Teil VII Sicherheit, Verschlüsselung und Zertifikate 29 Sicherheit 29.1 Weniger ist mehr 29.2 »chroot« 29.2.1 Dienste 29.3 Selbstabsicherung: »AppArmor« 29.3.1 Status und Betriebsarten 29.3.2 Eigene Profile erstellen 29.4 Gotcha! Intrusion-Detection-Systeme 29.4.1 »snort« und Co. 29.5 Installation und Konfiguration 29.5.1 Vorbereitungen 29.5.2 Kompilieren und installieren 29.5.3 Basiskonfiguration 29.5.4 Ein erster Test: »ICMP« 29.5.5 Start-Skript erstellen: »systemd« 29.6 Performante Log-Speicherung mit »Barnyard2« und »MySQL« 29.6.1 Vorbereitungen 29.6.2 Kompilieren und installieren 29.6.3 Einbinden in Snort 29.7 Das Neueste vom Neuen: »pulledpork« 29.8 Klein, aber oho: »fail2ban« 29.8.1 Konfiguration 29.8.2 Aktive Sperrungen 29.8.3 Reguläre Ausdrücke 29.9 OpenVPN 29.9.1 Serverinstallation – OpenVPN, PKI und Co. 29.9.2 CentOS/openSUSE Leap: »easy-rsa« 29.9.3 Gemeinsam weiter 29.9.4 Roadwarrior 29.9.5 Start-Skript? 29.9.6 Site-to-site 29.9.7 Simple-HA 29.9.8 Tipps und Tricks 30 Verschlüsselung und Zertifikate 30.1 Definition und Historie 30.2 Moderne Kryptologie 30.2.1 Symmetrische Verschlüsselung 30.2.2 Asymmetrische Verschlüsselung 30.3 Den Durchblick behalten 30.3.1 Das Grundproblem 30.3.2 Verwendungszwecke 30.3.3 Umsetzung mithilfe einer PKI 30.3.4 X.509 30.3.5 Ein anderer Ansatz: PGP (Web-of-Trust) 30.4 Einmal mit allem und kostenlos bitte: »Let's Encrypt« 30.4.1 Wie funktioniert das? 30.4.2 Einschränkungen 30.4.3 Der Client »certbot« 30.5 In der Praxis 30.5.1 Einrichtung einer PKI mit Server- und E-Mail-Zertifikaten 30.5.2 E-Mail-Verschlüsselung 30.6 Neben der Kommunikation – Dateiverschlüsselung 30.6.1 Dateien 30.6.2 Devices 30.6.3 Festplatten/System 30.7 Rechtliches 30.7.1 Fortgeschrittene elektronische Signatur 30.7.2 Qualifiziertes Zertifikat 30.7.3 Qualifizierte elektronische Signatur 30.7.4 Sichere Signaturerstellungseinheit (SSEE) A Die Autoren Stichwortverzeichnis Rechtliche Hinweise