Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
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
← Prev
Back
Next →
← Prev
Back
Next →