Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
35
Über dieses Buch
39
Was hat sich getan: »changelog«
43
TEIL I Grundlagen
51
1 Der Administrator
53
1.1 Ganz allgemein: Der Administrator
53
1.1.1 Was ich tun kann!
53
1.1.2 Was ich tun sollte!
54
1.1.3 Was ich nicht tun sollte! (BOFH)
55
1.2 Was im Gesetz steht
56
1.2.1 Datenschutz: »BDSG« und »LDSG«
57
1.2.2 Telemediengesetz
58
1.2.3 Telekommunikationsgesetz
58
1.2.4 EU-Datenschutz-Grundverordnung »EU-DSGVO«
59
2 Wichtige Grundlagen vorab
61
2.1 Historie
61
2.2 Der Kernel
63
2.2.1 Entwicklung des Linux-Kernels
63
2.2.2 Aufbau des Linux-Kernels
64
2.2.3 Verwandtschaft
65
2.3 Die Struktur von Linux
65
2.3.1 Konformität zu »POSIX«
66
2.3.2 Alles ist eine Datei
66
2.3.3 Verzeichnisstruktur
66
2.4 Unterschiede
69
2.4.1 Paketverwaltung
69
2.4.2 Updates und Upgrades
69
2.4.3 Umgang mit Paketen
69
2.4.4 Benutzer- und Rechteverwaltung
70
2.4.5 Ausführung
72
2.4.6 Lizenzarten
72
2.4.7 Support und kommerzielle Software
74
3 Planung
75
3.1 Einteilung: »Meilensteine«
75
3.1.1 Zeitaufwand
77
3.1.2 Ein Server(-dienst) bleibt selten allein
77
3.2 Unterstützung
77
3.2.1 Systemvoraussetzungen
77
3.2.2 Peripherie
78
3.3 Dimensionierung
78
3.3.1 Einsatzzweck
79
3.3.2 Software: »Was?«, »Wie viel?« und »Wie lange?«
80
3.3.3 Hardware: »CPU«, »RAM« und »HDD«
80
3.3.4 Weniger ist mehr
81
4 Ubuntu-Typen
83
4.1 Hintergründe
83
4.1.1 Die Prinzipien: »Code of Conduct«
84
4.1.2 Pragmatismus
84
4.1.3 Entstehung
84
4.1.4 Entwicklungsgeschichte
85
4.1.5 Vorteile
85
4.1.6 Lizenzen
86
4.2 Unterteilung
87
4.2.1 Die Typen: »Desktop«, »Server«, »GNOME« und »Netboot«
87
4.2.2 Varianten von »Kubuntu« über »Lubuntu« und Co.
88
4.3 Kritik
90
4.3.1 Canonical und Mark Shuttleworth
90
4.3.2 Freie und nicht freie Software
90
4.3.3 Vermeintliche Paywall
90
4.3.4 Spyware
91
4.3.5 Statement der Autoren
91
TEIL II Installation
93
5 Die Installation
95
5.1 Die Qual der Wahl
95
5.1.1 Woher bekomme ich Ubuntu?
95
5.1.2 Welche Variante soll ich verwenden?
95
5.1.3 Medium: »CD«, »DVD« oder »USB«
96
5.2 Die Installation
96
5.2.1 Steuerung in den Menüs
97
5.2.2 Beginn der Reise
97
5.2.3 Tastaturlayout
98
5.2.4 Installationstyp
99
5.2.5 Netzwerk
99
5.2.6 Dateisystem
100
5.2.7 Profil: Rechnername, Benutzername und Benutzerkonto
101
6 Partitionen: Festplatten aufteilen
103
6.1 Allgemeines
103
6.1.1 Begrifflichkeiten
104
6.1.2 Eine Übersicht: »Was liegt wo?«
108
6.2 Partitionierung einer Festplatte
111
6.2.1 Neue Festplatte identifizieren
112
6.2.2 Neue Festplatte partitionieren
112
6.3 Einfach logisch: »Logical Volume Manager«
115
6.3.1 Begrifflichkeiten
116
6.3.2 Arbeiten mit »LVM«
117
6.3.3 Eine Partition erweitern
120
6.3.4 Snapshots
124
6.4 Dateisysteme
126
6.4.1 Eine Übersicht gängiger Dateisysteme
127
6.4.2 Fazit
128
6.5 Partitionen und Dateisystem verändern
128
6.5.1 Vorbereitungen
129
6.5.2 Start mit der »Ubuntu-Live-CD«
129
7 Netzwerkkonfiguration
135
7.1 Basiswissen
135
7.1.1 Welches Vorwissen wird benötigt?
136
7.1.2 Theorie-Exkurs
136
7.1.3 Ein Beispiel: Adressbereich richtig wählen (Heim-Router)
140
7.1.4 Namenskonventionen - Änderungen seit »systemd«
141
7.2 Tools: »ifconfig«, »route«, »arp«, »ip«, »mii-tool/ethtool«
142
7.2.1 Die Arbeitsweise von »ip«
142
7.3 Ablösung von »ifconfig« durch »ip address«
144
7.3.1 IP-Adressen verändern
145
7.3.2 IP-Adressen hinzufügen
146
7.3.3 Stolperfalle »Label«
147
7.3.4 Zusammenfassung
149
7.4 Ablösung von »route« durch »ip route«
149
7.4.1 Routen hinzufügen
150
7.4.2 Routen entfernen
151
7.4.3 Zusammenfassung
151
7.5 Ablösung von »arp« durch »ip neighbour«
151
7.5.1 ARP-Eintrag hinzufügen
152
7.5.2 ARP-Einträge entfernen
152
7.5.3 ARP-Tabelle erneuern
153
7.5.4 Zusammenfassung
153
7.6 Linkstatus mit »ip link«
153
7.6.1 Schnittstellen deaktivieren und aktivieren
155
7.6.2 Neue MAC-Adresse setzen
155
7.6.3 Den Device-Namen ändern
156
7.7 Geschwindigkeit mit »ethtool«
156
7.7.1 Installation von »ethtool«
157
7.7.2 Statusanzeige von »ethtool«
157
7.7.3 Einstellung von »speed« und »duplex«
159
7.7.4 Zusätzliche Informationen
160
7.7.5 Identifikation: »The who-is-who«
161
7.7.6 Zusammenfassung
161
7.8 Permanente IP-Adresskonfiguration
161
7.8.1 Statisch und DHCP
162
7.8.2 Die Konfiguration mit »netplan«
162
7.8.3 Zusammenfassung
165
7.9 Fortgeschrittene Konfiguration
165
7.9.1 Brückenbau (»Bridging«)
166
7.9.2 VLANs (»Trunking/Channeling«)
167
7.9.3 Bonding (»Etherchannel/Trunking/Teaming«)
169
7.9.4 Richtig zugeordnet mit »udev«
176
8 Erste Schritte
179
8.1 Hilfe, da blinkt was! Die Bash
179
8.1.1 Grundlagen
180
8.1.2 Wenn man mal nicht weiterweiß: »man«
181
8.2 Einzeiler - die Macht der Verkettung
182
8.2.1 Einfache Verkettung mit »;«
182
8.2.2 Erfolgsorientierte Verkettung mit »&&«
183
8.2.3 Umlenkung mit »Pipe«, »STDIN« und »STDOUT«
183
8.3 Die Editoren »vim« und »nano«
185
8.3.1 Der »vim«
185
8.3.2 Der »nano«
186
8.3.3 Der Standardeditor
188
8.4 Where the magic happens: »Scripting«
189
8.4.1 Der Aufbau
189
8.4.2 Das erste Skript: »helloworld.sh«
189
8.4.3 Ausführen
190
8.4.4 Zeitgesteuert arbeiten: »cron« - ein kleiner Exkurs
191
8.5 Privilegierte Rechte
193
8.5.1 Wer darf was: »sudoers«
193
8.5.2 Freigabe von Benutzern für »sudo«
195
TEIL III Dienste, Anwendungen und Sicherheit
197
9 Fernwartung mit »OpenSSH«
199
9.1 Grundlagen
199
9.1.1 Die Anfänge: »telnet«
199
9.1.2 Weiterentwicklung: »OpenSSH«
200
9.2 Der Client: »ssh«
202
9.2.1 Die erste Anmeldung
202
9.2.2 Prüfung bekannter Systeme
203
9.2.3 SSH-Schlüssel entfernen
204
9.2.4 Bekannte SSH-Schlüssel auslesen
205
9.2.5 Nicht nur verbinden, sondern auch ausführen
205
9.2.6 Zusammenfassung
206
9.3 Der Server: »sshd«
206
9.3.1 Voraussetzungen für die entferne Anmeldung
206
9.3.2 Authentifizierung mit Schlüsseln
206
9.3.3 Schlüssel sicher übertragen
210
9.3.4 Zusammenfassung
211
9.4 SSH für Fortgeschrittene
211
9.4.1 Schlüssel sichern und wiederherstellen
211
9.4.2 SSH-Client-Konfiguration
212
9.4.3 SSH-Client spezial: »escape_char«
214
9.4.4 SSH-Server-Konfiguration
215
9.4.5 Wartezeiten bei DNS-Problemen: »UseDNS no«
216
9.4.6 Absichern: alle außer »root«
216
9.5 Wenn's mal wieder länger dauert: »mosh«
216
10 Archivierung und Datensicherung
219
10.1 Archivierung mit »tar«
219
10.2 Archivierung mit »rsync«
221
10.2.1 Synchronisierung im lokalen Dateisystem
221
10.2.2 rsync über SSH: Synchronisierung auf einen entfernten Server
222
10.2.3 Für Fortgeschrittene: »rsync-Daemon«
223
10.3 Verzeichnisse mit »unison« synchronisieren
225
10.4 Datensicherung mit »backup2l«
226
11 Syslog
229
11.1 Die Basis: Syslog-Nachrichten
229
11.1.1 »Facility« - Wo der Schuh drückt
229
11.1.2 »Severity« - Wie sehr es schmerzt
230
11.1.3 Konfiguration
231
11.2 Loggen über das Netz
232
11.2.1 Konfiguration des Servers
232
11.2.2 Konfiguration des Clients
233
11.3 Selbst ist der Admin - eigene Log-Einträge mit »logger« erzeugen
234
11.4 Aufräumen mit »logrotate«
236
11.4.1 Arbeitsablauf
236
11.4.2 Konfiguration
236
12 Jeder nur eine: »DHCP«
239
12.1 Wozu das Ganze?
239
12.1.1 Welches Vorwissen wird benötigt?
239
12.2 Theorie: »Dynamic Host Configuration Protocol (DHCP)«
239
12.2.1 Ablauf einer DHCP-Anfrage
240
12.2.2 IPv6
241
12.2.3 Vokabular
241
12.3 Der Klassiker: »dnsmasq«
242
12.3.1 Installation
242
12.3.2 Konfiguration: »quick & dirty«
243
12.3.3 Konfiguration: Routing-Anpassung
245
12.3.4 Konfiguration: Reservierung
245
12.3.5 Konfiguration: DNS
246
12.3.6 Konfiguration: DNS, interne Domäne
247
12.3.7 Konfiguration: Einen anderen DNS ausliefern
247
12.3.8 Fazit
247
12.4 Der reine Server: »ISC-DHCPD«
248
12.4.1 Installation
248
12.4.2 Konfiguration: IPv4 (minimal)
248
12.4.3 Konfiguration: Reservierungen
250
12.4.4 Konfiguration: DDNS
251
12.4.5 Fazit
256
13 Dateiübertragung: FTP, FTPS, SFTP und TFTP
257
13.1 Basiswissen
257
13.1.1 Welches Vorwissen wird benötigt?
258
13.2 Das File Transfer Protocol - Client
258
13.2.1 FTP mit der Kommandozeile
259
13.2.2 FTP mit dem Browser
261
13.2.3 FTP mit einem grafischen FTP-Client
261
13.3 FTP-Server: >>vsftpd<<
263
13.3.1 Serverkonfiguration für anonyme Benutzer
263
13.3.2 Serverkonfiguration für lokale Benutzer
265
13.3.3 Directory Traversal verhindern
266
13.3.4 Verschlüsselte FTP-Verbindungen mit TLS
267
13.3.5 Sicherheitsaspekte
270
13.4 Sicherer mit »SFTP«
271
13.4.1 Konfiguration
272
13.5 Für Fortgeschrittene: »TFTP«
273
13.5.1 Der Server: »atftpd«
274
13.5.2 Der Client: »atftp«
275
14 Es ist an der Zeit: »ntp«
277
14.1 Basiswissen
277
14.1.1 Welches Vorwissen wird benötigt?
277
14.2 Zeit manuell einstellen
278
14.2.1 Hardware-Uhr einstellen
278
14.2.2 Software-Uhr einstellen
279
14.2.3 Zeitzone ändern
281
14.2.4 Zusammenfassung
283
14.3 Zeit automatisch einstellen: Network Time Protocol (NTP)
284
14.3.1 Warum »NTP« wichtig ist
284
14.3.2 Arbeitsweise von »NTP«
284
14.3.3 Zeit abfragen und setzen: »ntpdate«
285
14.3.4 Zeitserver-Pools
286
14.3.5 Lokaler Zeitabgleich: »systemd-timesyncd«
286
14.3.6 Für alle: »ntpd«
287
14.3.7 Zusammenfassung
289
14.4 Zeit nicht für alle bereitstellen
289
15 DNS mit »bind9«
291
15.1 Theorie - alles beginnt mit dem ».«
291
15.1.1 Arbeitsweise von DNS
292
15.1.2 Unterschied: rekursiv und autoritativ
294
15.1.3 Einträge im DNS: »Resource Records«
294
15.1.4 Nachschlagewerk: Begriffe, Namen und Benennungen
296
15.2 Client-Tools: »nslookup«, »host« und »dig«
298
15.2.1 Der Klassiker: »nslookup«
298
15.2.2 Einfach, aber gut: »host«
301
15.2.3 Der Alleskönner: »dig«
302
15.3 Der Server: »bind9«
308
15.3.1 Vorwissen
308
15.3.2 Installation
309
15.3.3 Übersicht
309
15.3.4 Basiskonfiguration nach der Installation
309
15.3.5 Zonendateien
313
15.3.6 Zonendatei erstellen
316
15.3.7 Zonendatei einbinden
317
15.3.8 Zonendatei erweitern
317
15.3.9 Reverse-Zonen: »sträwkcüR«
318
15.3.10 Reverse-Zonen einbinden
319
15.4 Alle machen mit: »Master-Slave«
320
15.4.1 Zonen-Transfer erlauben
321
15.4.2 Konfiguration in der Zone
321
15.5 Nützliches zum Dienst »bind9«
322
15.5.1 Konfiguration prüfen: »named-checkconf«
322
15.5.2 Zonendateien prüfen: »named-checkzone«
322
15.5.3 Die rechte Hand: »rndc«
323
15.5.4 Erweitertes Logging
324
15.6 Besonderheit: »IDN«
326
15.7 Auf in die neue Welt: »IPv6«
326
15.7.1 IPv6-Namensauflösung
326
15.7.2 IPv6-Reverse-Zonen
327
15.7.3 Übersicht behalten mit »$ORIGIN«
329
15.8 Vertrauen schaffen mit »DNSSEC«
330
15.8.1 Die Theorie: Wie arbeitet »DNSSEC«?
330
15.8.2 Anpassungen am Server
332
15.8.3 Schlüssel erzeugen
333
15.8.4 Schlüssel der Zone hinzufügen und die Zone signieren
334
15.8.5 Signierte Zone aktivieren
336
15.8.6 Signierung prüfen
336
15.8.7 Die Signierung veröffentlichen
338
15.8.8 Fazit
338
16 Netzwerkdateisysteme
339
16.1 Welches Vorwissen wird benötigt?
339
16.2 Samba
340
16.2.1 Installation
340
16.2.2 Freigaben
341
16.2.3 Allgemeine Freigaben
341
16.2.4 Persönliche Freigaben
344
16.3 Network File System (NFS) Version 4
344
16.3.1 Der NFSv4-Server
344
16.3.2 Der NFSv4-Client
347
16.4 Auf die Schnelle: »SSHFS«
347
16.4.1 Installation: »Client«
348
16.4.2 Einbinden von Verzeichnissen
348
16.4.3 Automount
349
16.4.4 Mögliche Fehler
349
16.4.5 Fazit
350
17 Datenbanken: »SQLite, MySQL, MariaDB und PostgreSQL«
351
17.1 Allgemeines
351
17.1.1 Begrifflichkeiten
352
17.1.2 Vergleich
353
17.1.3 Welches Vorwissen wird benötigt?
354
17.2 Einführung: SQL
354
17.2.1 Wie Sie sich einen Überblick verschaffen
354
17.2.2 Eine Datenbank anlegen
356
17.2.3 Eine Tabelle anlegen
357
17.2.4 Daten hinzufügen
357
17.2.5 Daten verändern
358
17.2.6 Daten löschen
358
17.2.7 Eine Tabelle bzw. Datenbank löschen
359
17.2.8 Abfragen oder »Wie komme ich an meine Daten?«
360
17.2.9 Zwischenfazit
371
17.3 Der Kleinste: »SQLite«
371
17.3.1 Installation
372
17.3.2 Eine Datenbank anlegen
372
17.3.3 Mit einer Datenbank arbeiten
373
17.4 Der große Bruder: »MySQL«
374
17.4.1 Installation
375
17.4.2 Grundkonfiguration
375
17.4.3 Anmeldung am DBMS
376
17.4.4 Benutzer anlegen und Rechte vergeben
377
17.4.5 Backup und Restore
383
17.5 MySQL komfortabel: »phpMyAdmin«
387
17.5.1 Installation
387
17.5.2 Das Webinterface
389
17.5.3 Daten anzeigen
390
17.5.4 Abfrage bearbeiten
391
17.5.5 Fazit
392
17.6 Wirklich Open-Source: »MariaDB«
392
17.6.1 Installation
393
17.6.2 Konfiguration
393
17.6.3 Dienstkonfiguration
395
17.6.4 Basis
396
17.6.5 Backup und Restore
397
17.6.6 MariaDB komfortabel: Ebenfalls mit »phpMyAdmin«
398
17.6.7 Fazit
398
17.7 Ein anderer Ansatz: »PostgreSQL«
398
17.7.1 Installation
398
17.7.2 Dienstkonfiguration
398
17.7.3 Anmeldung am DBMS
399
17.7.4 Benutzer anlegen
402
17.7.5 Rechte vergeben
403
17.7.6 Rechte entziehen
404
17.7.7 Benutzer entfernen
404
17.7.8 Logging
405
17.7.9 Zugriff von einem entfernten System
405
17.7.10 Backup und Restore
407
17.7.11 PostgreSQL komfortabel: »phpPgAdmin«
408
18 Mailserver
413
18.1 Die Basis mit »Postfix«
413
18.1.1 Zertifikate besorgen
415
18.1.2 Benutzer anlegen
416
18.1.3 SMTP-Grundlagen
418
18.1.4 Postfix-Grundkonfiguration
420
18.2 Dovecot
421
18.2.1 SASL in Postfix und Dovecot aktivieren
423
18.2.2 Submission-Port 587
425
18.2.3 TLS in Dovecot aktivieren
428
18.3 Roundcube installieren
430
18.3.1 Filter für Roundcube installieren: »Sieve«
434
18.3.2 SSL in Apache aktivieren
436
18.4 Antivirus- und Spamfilter: »Amavisd-new«, »ClamAV« und »SpamAssassin«
437
18.4.1 Installation
438
18.4.2 ClamAV konfigurieren
438
18.4.3 »Unofficial-Sigs« für ClamAV installieren
439
18.4.4 Amavisd-new konfigurieren
440
18.4.5 Postfix für die Verwendung mit Amavisd-new konfigurieren
446
19 Webmin
449
19.1 Die Web-GUI: »Webmin«
449
19.1.1 Aufklärung
450
19.1.2 Aufbau und Arbeitsweise
450
19.1.3 Welches Vorwissen wird benötigt?
451
19.2 Vorbereitungen: Von der Installation zum lauffähigen »Webmin«
451
19.2.1 Herunterladen
451
19.2.2 Installation mit »dpkg«
452
19.2.3 Abhängigkeiten bequem nachinstallieren
452
19.2.4 Die erste Anmeldung
453
19.2.5 Zusammenfassung
455
19.3 Benutzer und Module
455
19.3.1 Benutzer
456
19.3.2 Beispiel-Modul: »Squid Proxy Server«
459
19.3.3 Zusammenfassung
461
19.4 Cluster: »Kurz und gut«
461
19.4.1 Partner finden
461
19.4.2 Befehle auf allen Cluster-Mitgliedern ausführen
462
19.4.3 Zusammenfassung
463
19.5 Fazit bis hierher
463
19.6 Für Fortgeschrittene
463
19.6.1 Module nachinstallieren
463
19.6.2 Module klonen
464
19.6.3 Systembenutzer zu Webmin-Benutzern machen
465
19.7 Ausblicke
466
19.7.1 Benutzer- und Gruppenmanagement
466
19.7.2 Zentralisiertes Scheduling
467
19.7.3 DNS-Cluster mit »bind9«
467
19.8 Abschließendes Fazit
467
20 OpenLDAP
469
20.1 Die Theorie: »Verzeichnisdienst«
469
20.1.1 Herkunft
469
20.1.2 Funktionsweise (X.500)
470
20.1.3 Vorüberlegungen
471
20.1.4 Einsatzgebiete
471
20.1.5 Zusammenfassung
472
20.2 Installation und Konfiguration
472
20.2.1 Welches Vorwissen wird benötigt?
472
20.2.2 Programme installieren
473
20.2.3 Grundkonfiguration
473
20.2.4 Zusammenfassung
479
20.3 Aufbau des Baums
479
20.3.1 Grundstruktur
479
20.3.2 Benutzer
481
20.3.3 Weitere Daten erfassen oder verändern
482
20.3.4 Daten aus dem Baum entfernen
484
20.3.5 Zusammenfassung
485
20.4 Aufklärung: »Klassen« und »Vererbung«
485
20.5 Das Kernstück - erfolgreich suchen
486
20.5.1 Generelles
486
20.5.2 Die einfache Suche mit Filtern
487
20.5.3 Filter mit Wildcard
488
20.5.4 Und-Verknüpfung
489
20.5.5 Oder-Verknüpfung
490
20.5.6 Verschachtelte Filter
490
20.5.7 Zusammenfassung
491
20.6 Backup and Restore
491
20.6.1 Backup mit »slapcat«
491
20.6.2 Restore mit »slapadd«
493
20.7 Tools
494
20.7.1 Darf es etwas mehr sein? »ldapscripts«
494
20.7.2 Umfangreich: »Apache Directory Studio«
498
20.8 Fortgeschrittene Konfigurationen
502
20.8.1 Absicherung der Kommunikation mit »TLS«
502
20.8.2 Systemanmeldung mit LDAP
505
21 Web-Proxy mit »squid«
513
21.1 Der Stellvertreter und seine Vorzüge
513
21.2 Die Basis
514
21.2.1 Welches Vorwissen wird benötigt?
515
21.2.2 Installation
515
21.2.3 Konfiguration
515
21.2.4 Clientkonfiguration
519
21.2.5 Übersichtlichkeit
520
21.2.6 Zusammenfassung
521
21.3 Details zu Objekten - »acl«
521
21.3.1 Definition: »acl«
521
21.3.2 Objekttypen
522
21.3.3 Objektlisten in Dateien
523
21.3.4 Zusammenfassung
524
21.4 Details zu Regeln - »http_access«
524
21.4.1 Regeln: »http_access«
524
21.4.2 Regeltypen
525
21.4.3 Negierungen
525
21.4.4 Verarbeitung
526
21.4.5 Zusammenfassung
527
21.5 Praktisches Beispiel - Objekte und Regeln im Einsatz
527
21.5.1 Aufbau und Vorbereitungen
528
21.5.2 Einfaches Regelwerk
528
21.5.3 Erweitertes Regelwerk: »Server-Einschränkungen«
529
21.5.4 Komplexes Regelwerk: »Client- und Server-Einschränkungen«
530
21.5.5 Erweitertes komplexes Regelwerk: »Überlagerung und Zeitsteuerung«
532
21.5.6 Zusammenfassung
533
21.6 Authentifizierung
533
21.6.1 Benutzerbasiert
536
21.6.2 Lokale Basic-Authentifizierung: »basic_ncsa_auth«
536
21.6.3 Verzeichnisdienst
538
21.6.4 Windows-Domäne mit »NT Login Manager« abfragen: »ntlm_auth«
538
21.6.5 Windows-Domäne mit Kerberos: »negotiate_kerb_auth«
541
21.6.6 Verzeichnisdienst LDAP: »ldap_auth«
545
21.7 Gruppenprüfung
546
21.7.1 Windows-Domäne mit NTLM: »ext_wbinfo_group_acl«
547
21.7.2 Verzeichnisdienst mit LDAP: »ext_ldap_group_acl«
549
21.8 Cache-Konfiguration
550
21.8.1 Cache-Arten: »Hauptspeicher« und »Festplatten«
550
21.8.2 Hauptspeichercache
551
21.8.3 Festplattencache
552
21.8.4 Tuning
554
21.9 Weiteres zu Squid
555
21.9.1 Mehr Infos: »squid-cgi«
555
21.9.2 Seiten aus dem Cache löschen: »squidclient«
557
21.9.3 Fehlermeldungen anpassen
559
21.9.4 Ausblicke
561
22 Sicherheit
563
22.1 Grundgerüst: »Dienstsicherheit«
564
22.1.1 Einer für alle - oder besser: »Einer für einen«
564
22.1.2 Online-Dienste nutzen
565
22.1.3 Welches Vorwissen wird benötigt?
565
22.2 Du nicht: »fail2ban«
566
22.2.1 Arbeitsweise
566
22.2.2 Installation
566
22.2.3 Status
567
22.2.4 Konfiguration
567
22.2.5 Weitere Dienste schützen: »apache«
570
22.2.6 Filter im Detail: »apache«
571
22.2.7 Filter prüfen
572
22.2.8 Schlüsseldienst - Sperrung aufheben
574
22.2.9 Zusammenfassung
574
22.3 Abkapselung: »chroot«
574
22.3.1 Dienst: »vsftpd«
575
22.3.2 Konfiguration
575
22.4 Selbstabsicherung: »AppArmor«
577
22.4.1 Status und Betriebsarten
578
22.4.2 Eigene Profile erstellen
580
23 Virtuelles privates Netzwerk mit »OpenVPN«
585
23.1 Allgemeines
586
23.1.1 Der Unterschied zwischen »IPsec« und »OpenVPN«
586
23.1.2 Authentifizierung
586
23.1.3 Betriebsart: »tun« oder »tap«
587
23.1.4 Testumfeld
588
23.1.5 Welches Vorwissen wird benötigt?
589
23.1.6 Server-Installation
589
23.2 PKI erzeugen: »easy-rsa«
589
23.2.1 Neue CA erstellen: »make-cadir«
590
23.2.2 Default-Werte festlegen: »vars«
590
23.2.3 CA erstellen: »build-ca«
591
23.2.4 Server-Zertifikat erstellen: »build-key-server«
593
23.2.5 Client-Zertifikat: »build-key«
595
23.2.6 Diffie-Hellman-Schlüssel erstellen: »build-dh«
595
23.2.7 TLS-Auth-Schlüssel erstellen: »openvpn«
596
23.3 Roadwarrior
597
23.3.1 Server-Konfiguration
597
23.3.2 OpenVPN mit systemd starten
600
23.3.3 Client-Installation unter Windows 7, 8.1 und 10
601
23.3.4 Client-Konfiguration: »Windows«
604
23.3.5 Client-Installation: »Ubuntu«
606
23.3.6 Client-Konfiguration: »Ubuntu«
606
23.4 Site-to-site
608
23.4.1 Zertifikate erstellen
608
23.4.2 Konfigurationen in der Zentrale
609
23.4.3 Konfigurationen in den Zweigstellen
610
23.5 Simple-HA
612
23.5.1 DNS-basierte HA
612
23.5.2 Konfigurierte HA
612
23.6 Tipps und Tricks
614
23.6.1 Der Windows-Installationspfad
614
23.6.2 register-dns
614
23.6.3 Auf Wiedersehen: »explicit-exit-notify«
614
23.6.4 Modemverbindungen (DSL-Modem/UMTS)
615
23.6.5 Debugging
615
24 Monitoring - Was ist los?
619
24.1 Die Basis
619
24.1.1 Der Client: »munin-node«
619
24.1.2 Der Server: »munin«
619
24.1.3 Munin-Node installieren und konfigurieren
620
24.2 Der Munin-Server
623
24.2.1 Webserver (falls nicht vorhanden) installieren
623
24.2.2 Munin installieren und konfigurieren
623
24.2.3 Die Ergebnisse
625
24.2.4 Fazit
627
25 Alles im Blick mit »ELK«
629
25.1 Allgemeines
629
25.2 Installation und Vorbereitungen
630
25.2.1 Elasticsearch
630
25.2.2 Kibana
632
25.2.3 Logstash
635
25.2.4 Client-Konfiguration
639
25.3 Kibana, der erste Blick
640
25.4 Filter
643
25.4.1 Auf der Konsole
644
25.4.2 Überschüssiges loswerden
646
25.4.3 Filter erweitern: »sshd«
646
25.5 Kibana, Teil 2
648
25.5.1 Suche speichern
648
25.5.2 Visualisierung
649
25.5.3 Dashboards
650
25.6 Weniger Musik, mehr Daten: »Beats«
650
25.6.1 Betriebsart: Direkt oder indirekt?
651
25.6.2 Vorbereitungen
652
25.6.3 Installation und Konfiguration
652
25.6.4 Fazit
655
26 Systemüberwachung: »Icinga«
657
26.1 Das Konzept
657
26.2 Installation
658
26.2.1 Der Monitoring-Server: »icinga2«
659
26.2.2 Das Datenbank-Backend: »MySQL«
659
26.2.3 Die IDO-Schnittstelle: »icinga2-ido-mysql«
659
26.2.4 Weboberfläche: »icingaweb2«
661
26.3 Ein erster zaghafter Blick
669
26.4 Kleiner Theorie-Exkurs
669
26.4.1 Aufbau der Konfigurationsdateien
671
26.4.2 Arten von Prüfungen
671
26.5 Alles, was man braucht: »Simple Network Management Protocol«
672
26.5.1 Auf dem Monitoring-Server
673
26.5.2 Auf Netzwerkkomponenten
674
26.5.3 Auf zu prüfenden Servern
674
26.6 Ran an die Arbeit: »Hosts«, »Services« und »Contacts«
675
26.6.1 Hinzufügen eines »Hosts«
675
26.6.2 Hinzufügen einer Basis-SNMP-Prüfung
677
26.6.3 Hinzufügen einer Dienst-Prüfung
679
26.7 Benachrichtigungen einrichten
680
26.7.1 Vorbereitungen
680
26.7.2 Benutzer anlegen
681
26.8 Plug-ins
684
26.9 Fazit
685
27 CUPS - einfach drucken
687
27.1 Einführung
687
27.1.1 Arbeitsweise
687
27.2 Die Basis: Installation und Konfiguration
688
27.2.1 Vorbereitungen
688
27.2.2 Grundkonfiguration
689
27.3 Die Weboberfläche
690
27.3.1 Aufruf
690
27.4 Client-Konfiguration
693
27.4.1 Einrichtung unter Linux
693
27.4.2 Freigabe bis Windows 7: »Samba«
694
27.4.3 Freigabe für Windows 8, 8.1 und 10
699
28 Ubuntu-Mirror: Pakete nur einmal laden
703
28.1 Die Basis
703
28.1.1 Welches Vorwissen wird benötigt?
703
28.2 Der Cache: »approx« und »apt-cacher-ng«
704
28.3 Klein, aber fein: »approx«
704
28.3.1 Benötigtes Paket: »approx«
704
28.3.2 Konfiguration
704
28.3.3 Client-Konfiguration
705
28.3.4 Zusammenfassung
706
28.4 Für Fortgeschrittene: »apt-cacher-ng«
706
28.4.1 Pakete für »apt-cacher-ng«
706
28.4.2 Konfiguration
707
28.4.3 Client-Konfiguration
708
28.4.4 Details: »Report-HTML«
708
28.4.5 Zusammenfassung
709
28.5 Der Mirror: »debmirror«
709
28.5.1 Pakete für »debmirror«
709
28.5.2 Welches Vorwissen wird benötigt?
709
28.5.3 Konfiguration
709
28.5.4 Zusammenfassung
716
29 Backup heterogener Umgebungen mit »Bacula«
717
29.1 Basiswissen
717
29.1.1 Planung
718
29.1.2 Alles in einem: »Bacula«
719
29.1.3 Struktur der Datenablage
720
29.1.4 Aufträge und Auftragsplanung
721
29.1.5 Vorhalte- und Verfallszeiten
721
29.1.6 Den Überblick behalten
722
29.2 Installation des Backup-Servers
722
29.2.1 Vorwissen
722
29.2.2 Installation von »Bacula«
723
29.3 Basiskonfiguration des Backup-Servers
726
29.3.1 Konfiguration des »Director«
726
29.3.2 Konfiguration des »Storage Daemon«
738
29.3.3 Der erste Client - »File Daemon« auf dem Backup-Server
741
29.3.4 Die Konfiguration fertigstellen, Fehler beseitigen und die erste Sicherung durchführen
743
29.3.5 Zusammenfassung
749
29.4 Sicherung eines Linux-Clients
750
29.4.1 Installation auf dem Client
750
29.4.2 Konfiguration auf dem Client
750
29.4.3 Konfiguration des Clients auf dem Server
752
29.4.4 Sicherung erstellen
754
29.5 Sicherung von Windows-Clients
756
29.5.1 Installation auf dem Client
756
29.5.2 Konfiguration auf dem Client
759
29.5.3 Konfiguration des Windows-Clients auf dem Server
760
29.5.4 Sicherung erstellen
762
29.6 Nichts vergessen: »FileSet«
763
29.6.1 Grundlegendes
763
29.6.2 Klassische Auswahl mit »File«
764
29.6.3 Wildcards und reguläre Ausdrücke
766
29.7 Zeitplanung: »Schedule«
769
29.8 Dienste sichern: »MySQL«
771
29.9 Dateien wiederherstellen
775
29.10 Das Bacula-Admin-Tool »bat«
782
29.10.1 Installation
782
29.10.2 Konfiguration
782
29.10.3 Ausführen von »bat«
783
30 Puppenspieler mit »Ansible«
787
30.1 Grundwissen
787
30.1.1 Begrifflichkeiten
788
30.2 Installation
789
30.2.1 Einfache Kommandos
792
30.3 Einmal mit allen bitte: »Rollen«
792
30.3.1 Repository: »ansible-galaxy«
792
30.3.2 Eigenes Spielbuch erstellen
794
30.4 Ausblick
796
TEIL IV Webdienste
799
31 Webserver: »Apache« und »Nginx«
801
31.1 Apache
801
31.1.1 Grundinstallation
801
31.1.2 Ein vollständiger »LAMP-Server«
802
31.1.3 Virtuelle Hosts
803
31.1.4 Transportverschlüsselung mit SSL/TLS
805
31.2 Nginx
808
31.2.1 Installation
808
31.2.2 Virtuelle Hosts mit Nginx: »Server Blocks«
809
31.2.3 SSL konfigurieren
809
31.2.4 Zu einem vollständigen LEMP-Server aufrüsten
811
31.2.5 Das Protokoll »HTTP/2« aktivieren
812
31.3 Nützliches
813
31.3.1 Richtig sicher: »cipher suites« und Co.
813
31.3.2 Entropie verbessern
815
31.3.3 Offizielle Zertifikate mit »Let's Encrypt«
816
31.3.4 Auf Nummer sicher: »HTTPS only«
817
31.3.5 Zugriffsschutz
818
31.3.6 Kleine Helfer
820
32 Webseiten schneller ausliefern: »Varnish«
823
32.1 Die Basis
823
32.1.1 Welches Vorwissen wird benötigt?
823
32.1.2 Vor- und Nachteile
824
32.1.3 Ein Beispiel für Sie
825
32.1.4 Installation des Reverse-Proxys
825
32.1.5 Grundlagen zur Konfiguration
825
32.1.6 Die Magie: »VCL«
828
32.1.7 Ein einfaches Beispiel
829
32.1.8 Einfaches Beispiel mit Cache
830
32.2 Der Cache von A-Z
832
32.2.1 Ausnahmen: »Die guten ins Töpfchen, die schlechten ins Kröpfchen!«
832
32.2.2 Cookies missachten
834
32.2.3 Grace
835
32.2.4 Objekte aus dem Cache entfernen
836
32.3 Multi-Server-Setup
840
32.3.1 Willkommen in der Manege: »Director«
840
32.3.2 Alle gesund? »Probes«
842
32.3.3 Mehrere Webseiten
843
32.4 Abgesichert mit »SSL/TLS«
844
32.4.1 Den Helfer aufs Spielfeld bringen: »Nginx«
844
32.4.2 Zertifikate erstellen
845
32.4.3 Konfiguration: »Nginx«
845
32.4.4 Erster Aufruf
846
32.5 Tools und mehr
847
32.5.1 Auslastung: »varnishtop«
847
32.5.2 Histogramm: »varnishhist«
848
32.5.3 Statistiken: »varnishstat«
849
32.5.4 Tuning
850
32.5.5 Caching: 10 typische Fehler
851
33 Lastverteilung (Loadbalancing)
855
33.1 Allgemeines
855
33.1.1 Unterschied: »Loadbalancing vs. Reverse-Proxy«
856
33.1.2 Welches Vorwissen wird benötigt?
856
33.1.3 Begrifflichkeiten
857
33.1.4 Testumfeld
858
33.2 Loadbalancing für Arme: »DNS-Round-Robin«
858
33.2.1 DNS-Round-Robin für Webserver
859
33.2.2 Eine Besonderheit des DNS-Round-Robin: »MX«
859
33.3 Pen
860
33.3.1 Weitere Einstellungen mit »penctl«
860
33.3.2 Pen als Systemdienst
862
33.3.3 Fazit
863
33.4 Das volle Programm: »HAProxy«
864
33.4.1 Installation
864
33.4.2 Grundlegende Konfiguration
864
33.4.3 Konfiguration für Fortgeschrittene
866
33.4.4 Start im Debug-Modus
872
33.4.5 Fazit
872
34 Web-Anwendungen in Java mit »Apache Tomcat«
873
34.1 Allgemein
873
34.2 Installation und Konfiguration
874
34.3 Administration mit »manager« und »host-manager«
875
34.4 Beispielanwendungen
877
34.4.1 Anwendung installieren
877
34.5 Sichere Kommunikation mit »SSL/TLS«
878
34.5.1 SSL/TLS mit »NIO«
879
34.5.2 SSL/TLS mit »APR«
881
34.5.3 Sicher ist sicher: »HTTPS only«
882
34.5.4 Richtig umleiten - »FQDN«
882
35 Java-Anwendungsserver mit »Wildfly«
883
35.1 Die Basis
883
35.1.1 Welches Vorwissen wird benötigt?
884
35.2 Installation
884
35.2.1 Der erste Aufruf
887
35.2.2 Einen neuen Benutzer anlegen
888
35.3 In Betrieb
890
35.4 Anwendung installieren: »WAR«
890
35.4.1 Vorgeschalteter Reverse-Proxy »Nginx«
891
TEIL V Heiter bis wolkig: Cloud-Computing
893
36 ownCloud - die Dropbox für den eigenen Server
895
36.1 Installation
895
36.1.1 Vorbereitungen: »LAMP« installieren
895
36.1.2 ownCloud-Installation
896
36.1.3 Konfiguration: »MySQL«
896
36.1.4 Konfiguration: »Apache2«
897
36.1.5 Der erste Login
899
36.2 Dateien hochladen und teilen
900
36.3 Dateien über den ownCloud-Client synchronisieren
902
36.3.1 Mobile Endgeräte
904
37 Ab in den Hafen: »Docker«
907
37.1 Ganz allgemein
907
37.1.1 Architektur und Ablauf
908
37.1.2 Begriffe
910
37.1.3 Kommandos
911
37.2 Von der Installation zum ersten Container
912
37.2.1 Startschuss: »run«
913
37.3 Eigene Images erstellen
915
37.3.1 Bauplan erstellen
915
37.3.2 Image bauen
916
37.3.3 Images starten
916
37.3.4 Wiederbeleben
917
37.3.5 Zusammenfassung
918
37.4 Daten dauerhaft speichern und teilen
919
37.4.1 Vom Host zum Container
919
37.4.2 Volumes
919
37.5 Der Hafen: »Registry«
921
37.5.1 Online: »Docker-Hub« und »Docker-Store«
921
37.5.2 Eine eigene »Registry« betreiben
922
37.6 Eins, zwei, drei: »Alle zusammen!«
923
37.6.1 Akt 1: Initialisierung
924
37.6.2 Akt 2: Eigene HTML-Seite
925
37.6.3 Akt 3: PHP einbinden
926
37.6.4 Zusammenfassung
928
38 Rechnen in der Cloud »Amazon Web Services«
931
38.1 Einstieg
931
38.1.1 Begriffe
932
38.1.2 Konto erstellen
932
38.1.3 Anmeldung
935
38.2 EC2
935
38.2.1 Konfiguration
935
38.2.2 SSH-Verbindung aufbauen
941
38.3 Ausblicke
943
38.3.1 Bedenken
943
TEIL VI Werkzeugkiste
945
39 Zuhause: »bash«
947
39.1 Vergangenheit: »history«
947
39.1.1 Nicht jeden!
947
39.1.2 Wieder hervorbringen: »Pfeiltasten« und »Suche«
948
39.1.3 Das Programm »history«
948
39.1.4 Die Historie synchronisieren
949
39.2 Reguläre Ausdrücke verstehen und anwenden
950
39.2.1 Implementierungen
950
39.3 Für Fortgeschrittene: »Expansion«
952
39.3.1 Expansionsschemata
952
39.4 Umgebungsvariablen
958
39.5 Da ist noch mehr
959
39.5.1 Spezialparameter
959
39.5.2 String-Verarbeitung
959
39.5.3 Lokale Variablen
960
39.5.4 Typdefinition von Variablen
961
39.5.5 Funktionen
962
39.5.6 Abfragen im Griff mit »test«
963
39.6 Tipps und Tricks aus der Praxis
964
39.6.1 Aufräumkommando
964
39.6.2 Richtig trennen: »IFS«
964
39.6.3 Datumsmagie
965
39.6.4 Laufzeitbestimmung
966
39.6.5 Testdateien erstellen
967
39.6.6 Veränderungen beobachten
967
39.6.7 Dateien aus dem Internet laden
968
39.6.8 E-Mails versenden
968
39.6.9 Interaktive Programme steuern
969
40 Suchen, Finden und Ersetzen
971
40.1 Suchen und Finden im Dateisystem
971
40.1.1 »locate«
971
40.1.2 >>find<<
972
40.2 Suchen und Finden in Dateien
973
40.2.1 Dateien durchsuchen mit >>grep<<
973
40.2.2 Unscharfes Suchen mit >>tre-agrep<<
974
40.3 Ersetzungen in Dateien
975
40.3.1 Zeichenbasiertes Ersetzen mit >>sed<<
975
40.3.2 Zeichenklassen ersetzen und formatieren mit >>tr<<
976
40.3.3 Bitte nur eins - Feldsuche
977
40.4 Fazit
979
41 Netzwerkdiagnose
981
41.1 Erreichbarkeit
981
41.1.1 Ein Wort der Warnung
981
41.1.2 Der Klassiker: »Ping«
982
41.1.3 Weitere Funktionen
986
41.1.4 Verwandte Programme
987
41.1.5 Nur im LAN: »arping«
987
41.2 Der richtige Weg - Routenverfolgung
990
41.2.1 Der Klassiker: »traceroute«
990
41.2.2 Alternativ: »tracepath«
992
41.2.3 Kontinuierlich mit »My traceroute«
993
41.3 Ganz genau - Bit für Bit: »Sniffer«
994
41.3.1 Der Klassiker: »tcpdump«
994
41.3.2 Moderner: »tshark«
999
41.4 Wissen, was läuft
1000
41.4.1 Auf dem Server: »netstat«
1000
41.4.2 Im Netzwerk: »nmap«
1001
41.5 Übersicht behalten: »ethstatus«, »iptraf« und »nmon«
1003
41.5.1 Einfach und gut: »ethstatus«
1003
41.5.2 Komplex und umfangreich: »iptraf-ng«
1004
41.5.3 Der Alleskönner: »nmon«
1007
41.6 Weitere Tools
1009
41.6.1 Subnetzberechnung mit »ipcalc«
1009
41.6.2 Informationen zu einem Internetsystem abfragen: »whois«
1011
42 Versionskontrolle mit »Git«
1015
42.1 Das »Einmaleins« der Versionskontrolle
1016
42.1.1 Arbeitsweise
1017
42.1.2 Welches Vorwissen wird benötigt?
1018
42.2 Das Populärste: »Git«
1018
42.2.1 Grundkonfiguration
1019
42.3 Rein lokal
1021
42.3.1 Erstellen des ersten Repositorys
1021
42.3.2 Dateien versionieren
1021
42.3.3 Dateien überprüfen
1022
42.3.4 Unterschiede anzeigen
1022
42.3.5 Änderungen aufnehmen
1023
42.3.6 Dateien aus der Versionierung entfernen
1024
42.4 Dezentraler Server mit »SSH«
1024
42.4.1 Vorbereitungen: »Clients«
1024
42.4.2 Vorbereitungen: »Server«
1025
42.4.3 SSH-Schlüssel importieren
1026
42.4.4 Repository erstellen
1027
42.4.5 Repository laden: »Clients«
1027
42.4.6 Mit dem Repository arbeiten: »Clients«
1029
42.4.7 Sicherheit steigern
1029
42.5 Nur lesend mit »Git«
1031
42.5.1 Installation
1031
42.5.2 Vorbereitungen
1031
42.5.3 Dienstkonfiguration
1032
42.5.4 Clients
1032
42.5.5 Fazit
1033
42.6 Nützliches
1033
42.6.1 Den Standard-Texteditor anpassen: »core.editor«
1034
42.6.2 Vorgabe für Nachrichten: »commit.template«
1034
42.6.3 Autokorrektur: »help.autocorrect«
1035
42.6.4 Exportieren: »git archive«
1036
42.6.5 Dateien ignorieren
1037
42.6.6 Versionen vergleichen / Änderungen nachvollziehen
1038
42.6.7 Wer hat's verbockt: »blame«
1040
42.6.8 Und wenn es doch passiert: »Konflikte«
1041
Der Autor
1043
Index
1045