Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
33
Über dieses Buch
37
Was hat sich getan: »changelog«
41
I Grundlagen
47
1 Der Administrator
49
1.1 Ganz allgemein: Der Administrator
49
1.1.1 Was ich tun kann!
49
1.1.2 Was ich tun sollte!
50
1.1.3 Was ich nicht tun sollte! (BOFH)
51
1.2 Was im Gesetz steht
52
1.2.1 Datenschutz: »BDSG« und »LDSG«
52
1.2.2 Telemediengesetz
54
1.2.3 Telekommunikationsgesetz
54
1.2.4 Gesetz zur Vorratsdatenspeicherung
54
2 Wichtige Grundlagen vorab
55
2.1 Historie
55
2.2 Der Kernel
57
2.2.1 Entwicklung des Linux-Kernels
57
2.2.2 Aufbau des Linux-Kernels
58
2.2.3 Verwandtschaft
59
2.3 Die Struktur von Linux
59
2.3.1 Konformität zu »POSIX«
60
2.3.2 Alles ist eine Datei
60
2.3.3 Verzeichnisstruktur
60
2.4 Unterschiede
62
2.4.1 Paketverwaltung
63
2.4.2 Updates und Upgrades
63
2.4.3 Umgang mit Paketen
63
2.4.4 Benutzer- und Rechteverwaltung
64
2.4.5 Ausführung
66
2.4.6 Lizenzarten
66
2.4.7 Support und kommerzielle Software
67
3 Planung
69
3.1 Einteilung: »Meilensteine«
69
3.1.1 Zeitaufwand
70
3.1.2 Ein Server(-dienst) bleibt selten allein
71
3.2 Unterstützung
71
3.2.1 Systemvoraussetzungen
71
3.2.2 Peripherie
72
3.3 Dimensionierung
72
3.3.1 Einsatzzweck
72
3.3.2 Software: »Was?«, »Wie viel?« und »Wie lange?«
73
3.3.3 Hardware: »CPU«, »RAM« und »HDD«
74
3.3.4 Weniger ist mehr
74
4 Ubuntu-Typen
75
4.1 Hintergründe
75
4.1.1 Die Prinzipien: »Code of Conduct«
76
4.1.2 Pragmatismus
76
4.1.3 Entstehung
76
4.1.4 Entwicklungsgeschichte
77
4.1.5 Vorteile
77
4.1.6 Lizenzen
78
4.2 Unterteilung
79
4.2.1 Die Typen: »Desktop«, »Server«, »GNOME« und »Netboot«
79
4.2.2 Varianten von »Kubuntu« über »Lubuntu« und Co.
80
4.3 Kritik
82
4.3.1 »Canonical« und »Mark Shuttleworth«
82
4.3.2 Freie und nicht freie Software
82
4.3.3 Vermeintliche »Paywall«
82
4.3.4 Spyware
83
4.3.5 Statement der Autoren
83
TEIL II Installation
85
5 Die Installation
87
5.1 Die Qual der Wahl
87
5.1.1 Woher bekomme ich Ubuntu?
87
5.1.2 Welche Variante soll ich verwenden?
87
5.1.3 Medium: »CD«, »DVD« oder »USB«
88
5.2 Die Installation
89
5.2.1 Steuerung in den Menüs
89
5.2.2 Beginn der Reise
89
5.2.3 Standort und Tastatur
91
5.2.4 Rechnername, Benutzername und Benutzerkonto
93
5.2.5 Verschlüsselung von »/home«
95
5.2.6 Zeitzone
95
5.2.7 Partitionierung: »LVM« und Co.
95
5.2.8 Einstellungen des Systems
97
6 Partitionen: Festplatten richtig aufteilen
101
6.1 Allgemeines
101
6.1.1 Begrifflichkeiten
102
6.1.2 Eine Übersicht: »Was liegt wo?«
106
6.2 Partitionierung einer Festplatte
109
6.2.1 Neue Festplatte identifizieren
109
6.2.2 Neue Festplatte partitionieren
110
6.3 Einfach logisch: »Logical Volume Manager«
113
6.3.1 Begrifflichkeiten
114
6.3.2 Arbeiten mit »LVM«
115
6.3.3 Eine Partition erweitern
118
6.3.4 Snapshots
123
6.4 Dateisysteme
125
6.4.1 Eine Übersicht gängiger Dateisysteme
125
6.4.2 Fazit
127
6.5 Partitionen und Dateisystem verändern
127
6.5.1 Vorbereitungen
127
6.5.2 Start mit der »Ubuntu-Live-CD«
128
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 (DSL-Router)
140
7.1.4 Namenskonventionen – Änderungen seit »systemd«
141
7.2 Tools: »ifconfig«, »route«, »arp«, »ip«, »mii-tool« und »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
150
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
152
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
155
7.7 Geschwindigkeit mit »ethtool«
156
7.7.1 Installation von »ethtool«
156
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
161
7.8.2 Die Konfigurationsdatei »/etc/network/interfaces«
162
7.8.3 Zusammenfassung
164
7.9 Fortgeschrittene Konfiguration
165
7.9.1 Brückenbau (»Bridging«)
165
7.9.2 VLANs (»Trunking/Channeling«)
167
7.9.3 Bonding (»Etherchannel/Trunking/Teaming«)
169
7.9.4 Richtig zugeordnet mit »udev«
174
8 Erste Schritte
177
8.1 Hilfe, da blinkt was! Die Bash
177
8.1.1 Grundlagen
178
8.1.2 Wenn man mal nicht weiterweiß: »man«
178
8.2 Einzeiler – die Macht der Verkettung
180
8.2.1 Einfache Verkettung mit »;«
180
8.2.2 Erfolgsorientierte Verkettung mit »&&«
181
8.2.3 Umlenkung mit »Pipe«, »STDIN« und »STDOUT«
181
8.3 Die Editoren »vim« und »nano«
183
8.3.1 Der »vim«
183
8.3.2 Der »nano«
184
8.3.3 Der Standardeditor
186
8.4 Where the magic happens: »Scripting«
187
8.4.1 Der Aufbau
187
8.4.2 Das erste Skript: »helloworld.sh«
187
8.4.3 Ausführen
188
8.4.4 Zeitgesteuert arbeiten: »Cron« – ein kleiner Exkurs
189
8.5 Privilegierte Rechte
191
8.5.1 Wer darf was: »sudoers«
191
8.5.2 Freigabe von Benutzern für »sudo«
193
TEIL III Dienste, Anwendungen und Sicherheit
195
9 Fernwartung mit »OpenSSH«
197
9.1 Grundlagen: »ssh«
197
9.1.1 Die Anfänge: »telnet«
197
9.1.2 Weiterentwicklung: »OpenSSH«
198
9.2 Der Client: »ssh«
200
9.2.1 Die erste Anmeldung
200
9.2.2 Prüfung bekannter Systeme
201
9.2.3 SSH-Schlüssel entfernen
202
9.2.4 Bekannte SSH-Schlüssel auslesen
203
9.2.5 Nicht nur verbinden, sondern auch ausführen
203
9.2.6 Zusammenfassung
204
9.3 Der Server: »sshd«
204
9.3.1 Voraussetzungen für die entferne Anmeldung
204
9.3.2 Authentifizierung mit Schlüsseln
205
9.3.3 Schlüssel sicher übertragen
208
9.3.4 Zusammenfassung
209
9.4 SSH für Fortgeschrittene
209
9.4.1 Schlüssel sichern und wiederherstellen
209
9.4.2 SSH-Client-Konfiguration
210
9.4.3 SSH-Client spezial: »escape char«
212
9.4.4 SSH-Server-Konfiguration
213
9.4.5 Wartezeiten bei DNS-Problemen: »UseDNS no«
215
9.4.6 Absichern: alle außer »root«
215
9.5 Wenn's mal wieder länger dauert: »mosh«
215
10 Mailserver mit Postfix und Dovecot
219
10.1 Die Basis mit »Postfix«
219
10.1.1 Zertifikate besorgen
221
10.1.2 Benutzer anlegen
222
10.1.3 SMTP-Grundlagen
223
10.1.4 Postfix-Grundkonfiguration
226
10.2 Dovecot
227
10.2.1 SASL in Postfix und Dovecot aktivieren
228
10.2.2 Submission-Port 587
231
10.2.3 TLS in Dovecot aktivieren
233
10.3 Roundcube installieren
235
10.3.1 Filter für Roundcube installieren: »Sieve«
239
10.3.2 SSL in Apache aktivieren
241
10.4 Antivirus- und Spamfilter: »Amavisd-new«, »ClamAV« und »SpamAssassin«
243
10.4.1 Installation
243
10.4.2 ClamAV konfigurieren
243
10.4.3 »Unofficial-Sigs« für ClamAV installieren
245
10.4.4 Amavisd-new konfigurieren
246
10.4.5 Postfix für die Verwendung mit Amavisd-new konfigurieren
251
10.5 Monitoring und Logfile-Auswertung
252
10.5.1 Logfile-Auswertung mit »Lire«
252
11 Netzwerkdateisysteme
255
11.1 Samba
255
11.1.1 Installation
256
11.1.2 Freigaben
257
11.1.3 Allgemeine Freigaben
257
11.1.4 Persönliche Freigaben
260
11.2 Network File System (NFS) Version 4
260
11.2.1 Der NFSv4-Server
260
11.2.2 Der NFSv4-Client
262
11.3 Auf die Schnelle: »SSHFS«
263
11.3.1 Installation: »Client«
263
11.3.2 Einbinden von Verzeichnissen
264
11.3.3 Automount
265
11.3.4 Mögliche Fehler
265
11.3.5 Fazit
266
12 Webserver: »Apache« und »Nginx«
267
12.1 Apache
268
12.1.1 Grundinstallation
268
12.1.2 Ein vollständiger »LAMP-Server«
269
12.1.3 Virtuelle Hosts
269
12.1.4 Transportverschlüsselung mit SSL/TLS
272
12.2 Nginx
275
12.2.1 Installation
275
12.2.2 Virtuelle Hosts mit Nginx: »Server Blocks«
276
12.2.3 SSL konfigurieren
277
12.2.4 Zu einem vollständigen LEMP-Server aufrüsten
278
12.2.5 Das Protokoll »HTTP/2« aktivieren
279
13 Datenbanken: SQLite, MySQL, MariaDB und PostgreSQL
281
13.1 Allgemeines
281
13.1.1 Begrifflichkeiten
282
13.1.2 Vergleich
283
13.1.3 Welches Vorwissen wird benötigt?
284
13.2 Einführung: SQL
284
13.2.1 Wie Sie sich einen Überblick verschaffen
284
13.2.2 Eine Datenbank anlegen
286
13.2.3 Eine Tabelle anlegen
287
13.2.4 Daten hinzufügen
287
13.2.5 Daten verändern
288
13.2.6 Daten löschen
288
13.2.7 Eine Tabelle bzw. Datenbank löschen
289
13.2.8 Abfragen oder »Wie komme ich an meine Daten?«
290
13.2.9 Zwischenfazit
301
13.3 Der Kleinste: »SQLite«
301
13.3.1 Installation
301
13.3.2 Eine Datenbank anlegen
302
13.3.3 Mit einer Datenbank arbeiten
303
13.4 Der große Bruder: »MySQL«
304
13.4.1 Installation
305
13.4.2 Grundkonfiguration
306
13.4.3 Anmeldung am DBMS
306
13.4.4 Benutzer anlegen und Rechte vergeben
307
13.4.5 Backup und Restore
313
13.5 MySQL komfortabel: »phpMyAdmin«
317
13.5.1 Installation
317
13.5.2 Das Webinterface
319
13.5.3 Daten anzeigen
320
13.5.4 Abfrage bearbeiten
322
13.5.5 Fazit
322
13.6 Wirklich Open-Source: »MariaDB«
323
13.6.1 Installation
323
13.6.2 Konfiguration
324
13.6.3 Dienstkonfiguration
327
13.6.4 Basis
328
13.6.5 Backup und Restore
329
13.6.6 MariaDB komfortabel: Ebenfalls mit »phpMyAdmin«
329
13.6.7 Fazit
329
13.7 Ein anderer Ansatz: »PostgreSQL«
329
13.7.1 Installation
330
13.7.2 Dienstkonfiguration
330
13.7.3 Anmeldung am DBMS
331
13.7.4 Benutzer anlegen
334
13.7.5 Rechte vergeben
334
13.7.6 Rechte entziehen
336
13.7.7 Benutzer entfernen
336
13.7.8 Logging
337
13.7.9 Zugriff von einem entfernten System
337
13.7.10 Backup und Restore
339
13.7.11 PostgreSQL komfortabel: »phpPgAdmin«
340
14 Archivierung und Datensicherung
345
14.1 Archivierung mit »tar«
345
14.2 Archivierung mit »rsync«
347
14.2.1 Synchronisierung im lokalen Dateisystem
347
14.2.2 rsync über SSH: Synchronisierung auf einen entfernten Server
348
14.2.3 Für Fortgeschrittene: »rsync-Daemon«
349
14.3 Verzeichnisse mit »unison« synchronisieren
351
14.4 Datensicherung mit »backup2l«
352
15 Es ist an der Zeit: »ntp«
355
15.1 Basiswissen
355
15.1.1 Welches Vorwissen wird benötigt?
355
15.2 Zeit manuell einstellen
356
15.2.1 Hardware-Uhr einstellen
356
15.2.2 Software-Uhr einstellen
357
15.2.3 Zeitzone ändern
359
15.2.4 Zusammenfassung
361
15.3 Zeit automatisch einstellen: Network Time Protocol (NTP)
362
15.3.1 Warum »NTP« wichtig ist
362
15.3.2 Arbeitsweise von »NTP«
362
15.3.3 Zeit abfragen und setzen: »ntpdate«
363
15.3.4 Zeitserver-Pools
364
15.3.5 Lokaler Zeitabgleich: »systemd-timesyncd«
364
15.3.6 Für alle: »ntpd«
365
15.3.7 Zusammenfassung
367
15.4 Zeit nicht für alle bereitstellen
367
16 Webmin
369
16.1 Die Web-GUI: »Webmin«
369
16.1.1 Aufklärung
370
16.1.2 Aufbau und Arbeitsweise
370
16.1.3 Welches Vorwissen wird benötigt?
371
16.2 Vorbereitungen: Von der Installation zum lauffähigen »Webmin«
371
16.2.1 Herunterladen
371
16.2.2 Installation mit »dpkg«
372
16.2.3 Abhängigkeiten bequem nachinstallieren
372
16.2.4 Die erste Anmeldung
373
16.2.5 Zusammenfassung
375
16.3 Benutzer und Module
375
16.3.1 Benutzer
375
16.3.2 Beispiel-Modul: »Squid Proxy Server«
378
16.3.3 Zusammenfassung
381
16.4 Cluster: »Kurz und gut«
381
16.4.1 Partner finden
381
16.4.2 Befehle auf allen Cluster-Mitgliedern ausführen
382
16.4.3 Zusammenfassung
382
16.5 Fazit bis hierher
382
16.6 Für Fortgeschrittene
383
16.6.1 Module nachinstallieren
383
16.6.2 Module klonen
383
16.6.3 Systembenutzer zu Webmin-Benutzern machen
384
16.7 Ausblicke
385
16.7.1 Benutzer- und Gruppenmanagement
386
16.7.2 Zentralisiertes Scheduling
386
16.7.3 DNS-Cluster mit »bind9«
386
16.8 Abschließendes Fazit
386
17 Jeder nur eine: »DHCP«
389
17.1 Wozu das Ganze?
389
17.1.1 Welches Vorwissen wird benötigt?
389
17.2 Theorie: »Dynamic Host Configuration Protocol (DHCP)«
389
17.2.1 Ablauf einer DHCP-Anfrage
390
17.2.2 IPv6
391
17.2.3 Vokabular
391
17.3 Der Klassiker: »dnsmasq«
392
17.3.1 Installation
392
17.3.2 Konfiguration: »quick & dirty«
393
17.3.3 Konfiguration: Routing-Anpassung
395
17.3.4 Konfiguration: Reservierung
395
17.3.5 Konfiguration: DNS
396
17.3.6 Konfiguration: DNS, interne Domäne
397
17.3.7 Konfiguration: DNS, anderen ausliefern
397
17.3.8 Fazit
397
17.4 Der reine Server: »ISC-DHCPD«
398
17.4.1 Installation
398
17.4.2 Konfiguration: IPv4 (minimal)
398
17.4.3 Konfiguration: Reservierungen
400
17.4.4 Konfiguration: DDNS
401
17.4.5 Fazit
405
18 Lastverteilung (Loadbalancing)
407
18.1 Allgemeines
407
18.1.1 Unterschied: »Loadbalancing vs. Reverse-Proxy«
407
18.1.2 Welches Vorwissen wird benötigt?
408
18.1.3 Begrifflichkeiten
408
18.1.4 Testumfeld
409
18.2 Loadbalancing für Arme: »DNS-Round-Robin«
410
18.2.1 DNS-Round-Robin für Webserver
410
18.2.2 Eine Besonderheit des DNS-Round-Robin: »MX«
411
18.3 Pen
411
18.3.1 Weitere Einstellungen mit »penctl«
412
18.3.2 Pen als Systemdienst
414
18.3.3 Fazit
415
18.4 Pound
415
18.4.1 Eine grundlegende Konfiguration
416
18.4.2 Einmal mit Verschlüsselung, bitte
417
18.4.3 Mehrere Webseiten
418
18.5 Das volle Programm: »HAProxy«
419
18.5.1 Installation
420
18.5.2 Grundlegende Konfiguration
420
18.5.3 Konfiguration für Fortgeschrittene
422
18.5.4 Start im Debug-Modus
427
18.5.5 Fazit
428
19 OpenLDAP
429
19.1 Die Theorie: »Verzeichnisdienst«
429
19.1.1 Herkunft
429
19.1.2 Funktionsweise (X.500)
430
19.1.3 Vorüberlegungen
431
19.1.4 Einsatzgebiete
431
19.1.5 Zusammenfassung
432
19.2 Installation und Konfiguration
432
19.2.1 Welches Vorwissen wird benötigt?
432
19.2.2 Programme installieren
432
19.2.3 Grundkonfiguration
433
19.2.4 Zusammenfassung
439
19.3 Aufbau des Baums
439
19.3.1 Grundstruktur
439
19.3.2 Benutzer
441
19.3.3 Weitere Daten erfassen oder verändern
442
19.3.4 Daten aus dem Baum entfernen
444
19.3.5 Zusammenfassung
445
19.4 Aufklärung: »Klassen« und »Vererbung«
445
19.5 Das Kernstück – erfolgreich suchen
446
19.5.1 Generelles
446
19.5.2 Die einfache Suche mit Filtern
447
19.5.3 Filter mit Wildcard
448
19.5.4 Und-Verknüpfung
449
19.5.5 Oder-Verknüpfung
450
19.5.6 Verschachtelte Filter
450
19.5.7 Zusammenfassung
451
19.6 Backup and Restore
451
19.6.1 Backup mit »slapcat«
451
19.6.2 Restore mit »slapadd«
453
19.7 Tools
453
19.7.1 Darf es etwas mehr sein? »ldapscripts«
453
19.7.2 Umfangreich: »Apache Directory Studio«
457
19.8 Fortgeschrittene Konfigurationen
461
19.8.1 Absicherung der Kommunikation mit »TLS«
461
19.8.2 Systemanmeldung mit LDAP
464
20 Web-Proxy mit »squid«
471
20.1 Der Stellvertreter und seine Vorzüge
471
20.2 Die Basis
472
20.2.1 Welches Vorwissen wird benötigt?
472
20.2.2 Installation
473
20.2.3 Konfiguration
473
20.2.4 Clientkonfiguration
476
20.2.5 Übersichtlichkeit
478
20.2.6 Zusammenfassung
478
20.3 Details zu Objekten – »acl«
479
20.3.1 Definition: »acl«
479
20.3.2 Objekttypen
480
20.3.3 Objektlisten in Dateien
481
20.3.4 Zusammenfassung
482
20.4 Details zu Regeln – »http access«
482
20.4.1 Regeln: »http access«
482
20.4.2 Regeltypen
483
20.4.3 Negierungen
483
20.4.4 Verarbeitung
484
20.4.5 Zusammenfassung
485
20.5 Praktisches Beispiel – Objekte und Regeln im Einsatz
485
20.5.1 Aufbau und Vorbereitungen
485
20.5.2 Einfaches Regelwerk
486
20.5.3 Erweitertes Regelwerk: »Server-Einschränkungen«
486
20.5.4 Komplexes Regelwerk: »Client- und Server-Einschränkungen«
488
20.5.5 Erweitertes komplexes Regelwerk: »Überlagerung und Zeitsteuerung«
489
20.5.6 Zusammenfassung
490
20.6 Authentifizierung
491
20.6.1 Benutzerbasiert
493
20.6.2 Lokale Basic-Authentifizierung: »basic ncsa auth«
493
20.6.3 Verzeichnisdienst
495
20.6.4 Windows-Domäne mit »NT Login Manager« abfragen: »ntlm auth«
495
20.6.5 Windows-Domäne mit Kerberos: »negotiate kerb auth«
498
20.6.6 Verzeichnisdienst LDAP: »ldap auth«
502
20.7 Gruppenprüfung
504
20.7.1 Windows-Domäne mit NTLM: »ext wbinfo group acl«
505
20.7.2 Verzeichnisdienst mit LDAP: »ext ldap group acl«
506
20.8 Cache-Konfiguration
507
20.8.1 Cache-Arten: »Hauptspeicher« und »Festplatten«
507
20.8.2 Hauptspeichercache
508
20.8.3 Festplattencache
509
20.8.4 Tuning
511
20.9 Verwandtschaft – »Sibling, Parent und Co.«
512
20.9.1 Grundlagen
512
20.9.2 Eltern definieren
513
20.9.3 Geschwister definieren
513
20.9.4 Loadbalancing
514
20.9.5 Inhalte eigenständig abrufen: »always direct«
515
20.10 Kontrollen
515
20.10.1 squidGuard
515
20.10.2 Antiviren-Check: ClamAV mit HAVP einbinden
518
20.11 Log-Auswertung: »Calamaris« und »Sarg«
521
20.11.1 Calamaris
521
20.11.2 Sarg
522
20.12 Weiteres zu Squid
523
20.12.1 Mehr Infos: »squid-cgi«
523
20.12.2 Seiten aus dem Cache löschen: »squidclient«
525
20.12.3 Fehlermeldungen anpassen
527
21 Webseiten schneller ausliefern: »varnish«
531
21.1 Die Basis
531
21.1.1 Welches Vorwissen wird benötigt?
531
21.1.2 Vor- und Nachteile
532
21.1.3 Ein Beispiel für Sie
533
21.1.4 Installation des Reverse-Proxy
533
21.1.5 Grundlagen zur Konfiguration
534
21.1.6 Die Magie: »VCL«
536
21.1.7 Ein einfaches Beispiel
537
21.1.8 Einfaches Beispiel mit Cache
538
21.2 Der Cache von A–Z
540
21.2.1 Ausnahmen: »Die guten ins Töpfchen, die schlechten ins Kröpfchen!«
540
21.2.2 Cookies missachten
542
21.2.3 Grace
543
21.2.4 Objekte aus dem Cache entfernen
544
21.3 Multi-Server-Setup
548
21.3.1 Willkommen in der Manege: »Director«
548
21.3.2 Alle gesund? »Probes«
550
21.3.3 Mehrere Webseiten
551
21.4 Abgesichert mit »SSL/TLS«
552
21.4.1 Den Helfer aufs Spielfeld bringen: »Nginx«
552
21.4.2 Zertifikate erstellen
552
21.4.3 Konfiguration: »nginx«
553
21.4.4 Erster Aufruf
553
21.5 Tools und mehr
555
21.5.1 Auslastung: »varnishtop«
555
21.5.2 Histogramm: »varnishhist«
556
21.5.3 Statistiken: »varnishstat«
557
21.5.4 Tuning
557
21.5.5 Caching: 10 typische Fehler
558
22 Syslog
563
22.1 Die Basis: Syslog-Nachrichten
563
22.1.1 »Facility« – Wo der Schuh drückt
563
22.1.2 »Severity« – Wie sehr es schmerzt
564
22.1.3 Konfiguration
565
22.2 Loggen über das Netz
566
22.2.1 Konfiguration des Servers
566
22.2.2 Konfiguration des Clients
567
22.3 Selbst ist der Admin – eigene Log-Einträge erzeugen
568
22.3.1 »logger«
568
22.4 Aufräumen mit »logrotate«
570
22.4.1 Arbeitsablauf
570
22.4.2 Konfiguration
570
23 Sicherheit
573
23.1 Grundgerüst: »Dienstsicherheit«
574
23.1.1 Einer für alle – oder besser: »Einer für einen«
574
23.1.2 Online-Dienste nutzen
575
23.1.3 Welches Vorwissen wird benötigt?
575
23.2 Du nicht: »fail2ban«
576
23.2.1 Arbeitsweise
576
23.2.2 Installation
576
23.2.3 Status
577
23.2.4 Konfiguration
578
23.2.5 Weitere Dienste schützen: »apache«
580
23.2.6 Filter im Detail: »apache«
581
23.2.7 Filter prüfen
582
23.2.8 Schlüsseldienst – Sperrung aufheben
583
23.2.9 Zusammenfassung
584
23.3 Abkapselung: »chroot«
584
23.3.1 Dienst: »vsftpd«
585
23.3.2 Konfiguration
585
23.4 Einsame Insel: »jailkit«
587
23.4.1 Installation
587
23.4.2 Befehle
587
23.4.3 Gefängnisbau
588
23.4.4 Benutzer einsperren: »Gehe nicht über Los!«
589
23.4.5 Gefängnisanbau: »Erweiterungen«
590
23.5 Selbstabsicherung: »AppArmor«
591
23.5.1 Status und Betriebsarten
591
23.5.2 Eigene Profile erstellen
594
24 Virtuelles privates Netzwerk mit »OpenVPN«
599
24.1 Allgemeines
600
24.1.1 Der Unterschied zwischen »IPsec« und »OpenVPN«
600
24.1.2 Authentifizierung
601
24.1.3 Betriebsart: »tun« oder »tap«
601
24.1.4 Testumfeld
602
24.1.5 Welches Vorwissen wird benötigt?
603
24.1.6 Server-Installation
603
24.2 PKI erzeugen: »easy-rsa«
603
24.2.1 Default-Werte festlegen: »vars«
604
24.2.2 CA erstellen: »build-ca«
606
24.2.3 Server-Zertifikat erstellen: »build-key-server«
606
24.2.4 Diffie-Hellman-Schlüssel erstellen: »build-dh«
608
24.2.5 TLS-Auth-Schlüssel erstellen: »openvpn«
609
24.3 Roadwarrior
610
24.3.1 Server-Konfiguration
611
24.3.2 OpenVPN mit Systemd starten
613
24.3.3 Client-Installation unter Windows 7, 8.1 und 10
614
24.3.4 Client-Konfiguration: »Windows«
619
24.3.5 Client-Installation: »Ubuntu«
621
24.3.6 Client-Konfiguration: »Ubuntu«
621
24.4 Site-to-site
622
24.4.1 Zertifikate erstellen
622
24.4.2 Konfigurationen
623
24.5 Simple-HA
625
24.5.1 DNS-basierte HA
625
24.5.2 Konfigurierte HA
625
24.6 Tipps und Tricks
626
24.6.1 Rechteanpassungen auf Windows-Clients
626
24.6.2 Windows-Routing bzw. -Netzwerk
627
24.6.3 register-dns
628
24.6.4 Auf Wiedersehen: »explicit-exit-notify«
628
24.6.5 Der Windows-Installationspfad
628
24.6.6 Modemverbindungen (DSL-Modem/UMTS)
629
24.6.7 Debugging
629
25 Monitoring – Was ist los?
633
25.1 Die Basis
633
25.1.1 Der Client: »munin-node«
633
25.1.2 Der Server: »munin«
633
25.1.3 Munin-Node installieren und konfigurieren
634
25.2 Der Munin-Server
637
25.2.1 Webserver (falls nicht vorhanden) installieren
637
25.2.2 Munin installieren und konfigurieren
638
25.2.3 Die Ergebnisse
639
25.2.4 Fazit
641
26 Systemüberwachung: »Icinga«
643
26.1 Das Konzept
643
26.2 Installation
644
26.2.1 Der Monitoring-Server: »icinga2«
645
26.2.2 Das Datenbank-Backend: »MySQL«
645
26.2.3 Die IDO-Schnittstelle: »icinga2-ido-mysql«
645
26.2.4 Weboberfläche: »icingaweb2«
647
26.3 Ein erster zaghafter Blick
657
26.4 Kleiner Theorie-Exkurs
658
26.4.1 Aufbau der Konfigurationsdateien
659
26.4.2 Arten von Prüfungen
660
26.5 Alles, was man braucht: »Simple Network Management Protocol«
661
26.5.1 Auf dem Monitoring-Server
662
26.5.2 Auf Netzwerkkomponenten
662
26.5.3 Auf zu prüfenden Servern
663
26.6 Ran an die Arbeit: »Hosts«, »Services« und »Contacts«
664
26.6.1 Hinzufügen eines »Hosts«
664
26.6.2 Hinzufügen einer Basis-SNMP-Prüfung
665
26.6.3 Hinzufügen einer Dienst-Prüfung
667
26.7 Benachrichtigungen einrichten
668
26.7.1 Vorbereitungen
669
26.7.2 Benutzer anlegen
670
26.8 Plug-ins
673
26.8.1 Weitere Plug-ins
673
26.9 Fazit
674
27 Dateiübertragung: FTP, FTPS, SFTP und TFTP
675
27.1 Basiswissen
675
27.1.1 Welches Vorwissen wird benötigt?
676
27.2 Das File Transfer Protocol – Client
676
27.2.1 FTP mit der Kommandozeile
677
27.2.2 FTP mit dem Browser
679
27.2.3 FTP mit einem grafischen FTP-Client
681
27.3 FTP-Server: »vsftpd«
682
27.3.1 Serverkonfiguration für anonyme Benutzer
682
27.3.2 Serverkonfiguration für lokale Benutzer
684
27.3.3 Directory Traversal verhindern
685
27.3.4 Verschlüsselte FTP-Verbindungen mit TLS
686
27.3.5 Sicherheitsaspekte
689
27.4 Sicherer mit »SFTP«
691
27.4.1 Konfiguration
691
27.5 Für Fortgeschrittene: »TFTP«
693
27.5.1 Der Server: »atftpd«
693
27.5.2 Der Client: »atftp«
694
28 XMPP-Server mit Ejabberd
695
28.1 Installation und grundlegende Konfiguration
695
28.2 Administration über das Webinterface
697
28.3 Einrichten des XMPP-Clients
699
28.4 Fazit
705
29 CUPS – einfach drucken
707
29.1 Einführung
707
29.1.1 Arbeitsweise
707
29.2 Die Basis: Installation und Konfiguration
708
29.2.1 Vorbereitungen
708
29.2.2 Grundkonfiguration
709
29.3 Die Weboberfläche
710
29.3.1 Aufruf
710
29.4 Client-Konfiguration
713
29.4.1 Einrichtung unter Linux
713
29.4.2 Freigabe bis Windows 7: »Samba«
714
29.4.3 Freigabe für Windows 8, 8.1 und 10
719
30 DNS mit »bind9«
723
30.1 Theorie – alles beginnt mit dem ».«
723
30.1.1 Arbeitsweise von DNS
724
30.1.2 Unterschied: rekursiv und autoritativ
726
30.1.3 Einträge im DNS: »Resource Records«
726
30.1.4 Nachschlagewerk: Begriffe, Namen und Benennungen
728
30.2 Client-Tools: »nslookup«, »host« und »dig«
730
30.2.1 Der Klassiker: »nslookup«
730
30.2.2 Einfach, aber gut: »host«
733
30.2.3 Der Alleskönner: »dig«
734
30.3 Der Server: »bind9«
740
30.3.1 Vorwissen
740
30.3.2 Installation
740
30.3.3 Übersicht
741
30.3.4 Basiskonfiguration nach der Installation
742
30.3.5 Zonendateien
745
30.3.6 Zonendatei erstellen
748
30.3.7 Zonendatei einbinden
749
30.3.8 Zonendatei erweitern
749
30.3.9 Reverse-Zonen: »sträwkcüR«
750
30.3.10 Reverse-Zonen einbinden
751
30.4 Alle machen mit: »Master-Slave«
751
30.4.1 Zonen-Transfer erlauben
752
30.4.2 Konfiguration in der Zone
753
30.5 Nützliches zum Dienst »bind9«
753
30.5.1 Konfiguration prüfen: »named-checkconf«
754
30.5.2 Zonendateien prüfen: »named-checkzone«
754
30.5.3 Die rechte Hand: »rndc«
755
30.5.4 Erweitertes Logging
756
30.6 Besonderheit: »IDN«
758
30.7 Auf in die neue Welt: »IPv6«
758
30.7.1 IPv6-Namensauflösung
758
30.7.2 IPv6-Reverse-Zonen
759
30.7.3 Übersicht behalten mit »$ORIGIN«
761
30.8 Vertrauen schaffen mit »DNSSEC«
762
30.8.1 Die Theorie: Wie arbeitet »DNSSEC«?
762
30.8.2 Anpassungen am Server
764
30.8.3 Schlüssel erzeugen
765
30.8.4 Schlüssel der Zone hinzufügen und die Zone signieren
766
30.8.5 Signierte Zone aktivieren
768
30.8.6 Signierung prüfen
768
30.8.7 Die Signierung veröffentlichen
770
30.8.8 Fazit
771
31 Ubuntu-Mirror: Pakete nur einmal laden
773
31.1 Die Basis
773
31.1.1 Welches Vorwissen wird benötigt?
773
31.2 Der Cache: »approx« und »apt-cacher-ng«
774
31.3 Klein, aber fein: »approx«
774
31.3.1 Benötigtes Paket: »approx«
774
31.3.2 Konfiguration
774
31.3.3 Client-Konfiguration
775
31.3.4 Zusammenfassung
776
31.4 Für Fortgeschrittene: »apt-cacher-ng«
776
31.4.1 Pakete für »apt-cacher-ng«
776
31.4.2 Konfiguration
777
31.4.3 Client-Konfiguration
778
31.4.4 Details: »Report-HTML«
778
31.4.5 Zusammenfassung
779
31.5 Der Mirror: »debmirror«
779
31.5.1 Pakete für »debmirror«
779
31.5.2 Welches Vorwissen wird benötigt?
779
31.5.3 Konfiguration
779
31.5.4 Zusammenfassung
786
32 Web-Proxy für Zuhause
787
32.1 Der Kleine: »tinyproxy«
787
32.1.1 Welches Vorwissen wird benötigt?
787
32.1.2 Installation
788
32.1.3 Client-Konfiguration
788
32.1.4 Grundkonfiguration
789
32.1.5 Weitere Konfigurationen
790
32.1.6 Filtern
793
32.1.7 Anonymisierung
795
32.1.8 Statistiken
796
32.1.9 Fazit
797
32.2 Rein Privat: »privoxy«
797
32.2.1 Installation
798
32.2.2 Client-Konfiguration
798
32.2.3 Konfiguration
799
32.2.4 Webinterface
799
32.2.5 (K)Ein Blick hinter die Kulissen: ».action« und ».filter«
800
32.3 Das Anonymisierungs-Dreigestirn: »squid«, »privoxy« und »tor«
801
32.3.1 Installation
803
32.3.2 Tor
803
32.3.3 Privoxy
806
32.3.4 Squid
808
32.3.5 Clients
809
32.3.6 Nachbesserungen
811
32.3.7 Debugging
811
32.3.8 Nachteile und Risiken
812
33 Ubuntu als Medienserver für Musik, Bilder und Videos
813
33.1 MiniDLNA
813
33.1.1 Installation und grundlegende Konfiguration
813
33.1.2 Mediendaten hinzufügen
815
33.1.3 Weiteres
816
33.2 VLC: Ubuntu als DLNA-Client
818
34 ownCloud – die Dropbox für den eigenen Server
821
34.1 Installation
821
34.1.1 Webserver-Konfiguration
822
34.1.2 Der erste Login
823
34.2 Dateien hochladen und teilen
824
34.3 Dateien über den ownCloud-Client synchronisieren
827
34.3.1 Mobile Endgeräte
829
35 Backup heterogener Umgebungen mit »Bareos«
831
35.1 Basiswissen
831
35.1.1 Planung
832
35.1.2 Alles in einem: »Bareos«
833
35.1.3 Struktur der Datenablage
834
35.1.4 Aufträge und Auftragsplanung
835
35.1.5 Vorhalte- und Verfallszeiten
835
35.1.6 Den Überblick behalten
836
35.2 Installation des Backup-Servers
836
35.2.1 Vorwissen
836
35.2.2 Installation von »Bareos«
837
35.3 Basiskonfiguration des Backup-Servers
840
35.3.1 Konfiguration des »Director«
840
35.3.2 Konfiguration des »Storage Daemon«
853
35.3.3 Konfiguration des ersten Clients – »File Daemon« auf dem Backup-Server
855
35.3.4 Die Konfiguration fertigstellen, Fehler beseitigen und die erste Sicherung durchführen
856
35.3.5 Zusammenfassung
863
35.4 Sicherung eines Linux-Clients
864
35.4.1 Installation auf dem Client
864
35.4.2 Konfiguration auf dem Client
864
35.4.3 Konfiguration des Clients auf dem Server
866
35.4.4 Sicherung erstellen
868
35.5 Sicherung von Windows-Clients
870
35.5.1 Installation auf dem Client
871
35.5.2 Konfiguration auf dem Client
874
35.5.3 Konfiguration des Windows-Clients auf dem Server
876
35.5.4 Sicherung erstellen
877
35.6 Nichts vergessen: »FileSet«
879
35.6.1 Grundlegendes
879
35.6.2 Klassische Auswahl mit »File«
879
35.6.3 Wildcards und reguläre Ausdrücke
881
35.7 Zeitplanung: »Schedule«
884
35.8 Dienste sichern: »MySQL«
886
35.8.1 Und noch mal bitte: »Plug-ins«
889
35.9 Dateien wiederherstellen
892
35.10 Das Bareos-Admin-Tool »bat«
899
35.10.1 Installation
899
35.10.2 Konfiguration
900
35.10.3 Ausführen von »bat«
900
35.11 Komfortabel: »bareos-webui«
902
35.11.1 Vorbereitung: Anmeldedaten
905
35.11.2 Anpassungen: Datenbank
906
35.11.3 Abschluss der Installation
907
35.11.4 Der erste Aufruf: »Ein Test«
907
36 Mehr Strom, Igor! Verbrauchsmessung mit Ubuntu
911
36.1 Den Stromzähler auslesen
911
36.1.1 Telegramme vom Smart Meter
912
36.1.2 Zählerdaten sammeln und visualisieren
913
TEIL IV Werkzeugkiste
917
37 Zuhause: »bash«
919
37.1 Vergangenheit: »history«
919
37.1.1 Nicht jeden!
919
37.1.2 Wieder hervorbringen: »Pfeiltasten« und »Suche«
920
37.1.3 Das Programm »history«
920
37.1.4 Die Historie synchronisieren
921
37.2 Reguläre Ausdrücke verstehen und anwenden
922
37.2.1 Implementierungen
922
37.3 Für Fortgeschrittene: »Expansion«
924
37.3.1 Expansionsschemata
924
37.4 Umgebungsvariablen
930
37.5 Da ist noch mehr
931
37.5.1 Spezialparameter
931
37.5.2 String-Verarbeitung
932
37.5.3 Lokale Variablen
933
37.5.4 Typdefinition von Variablen
934
37.5.5 Funktionen
934
37.5.6 Abfragen im Griff mit »test«
935
37.6 Tipps und Tricks aus der Praxis
936
37.6.1 Aufräumkommando
936
37.6.2 Richtig trennen: »IFS«
937
37.6.3 Datumsmagie
937
37.6.4 Laufzeitbestimmung
938
37.6.5 Testdateien erstellen
939
37.6.6 Veränderungen beobachten
940
37.6.7 Dateien aus dem Internet laden
940
37.6.8 E-Mails versenden
941
37.6.9 Interaktive Programme steuern
941
38 Suchen, Finden und Ersetzen
943
38.1 Suchen und Finden im Dateisystem
943
38.1.1 »locate«
943
38.1.2 »find«
944
38.2 Suchen und Finden in Dateien
945
38.2.1 Dateien durchsuchen mit »grep«
945
38.2.2 Unscharfes Suchen mit »tre-agrep«
947
38.3 Ersetzungen in Dateien
947
38.3.1 Zeichenbasiertes Ersetzen mit »sed«
947
38.3.2 Zeichenklassen ersetzen und formatieren mit »tr«
948
38.3.3 Bitte nur eins – Feldsuche
949
38.4 Fazit
952
39 Netzwerkdiagnose
953
39.1 Erreichbarkeit
953
39.1.1 Ein Wort der Warnung
953
39.1.2 Der Klassiker: »Ping«
954
39.1.3 Weitere Funktionen
958
39.1.4 Verwandte Programme
959
39.1.5 Nur im LAN: »arping«
959
39.2 Der richtige Weg – Routenverfolgung
962
39.2.1 Der Klassiker: »traceroute«
962
39.2.2 Alternativ: »tracepath«
964
39.2.3 Kontinuierlich mit »My traceroute«
965
39.3 Ganz genau – Bit für Bit: »sniffer«
966
39.3.1 Der Klassiker: »tcpdump«
966
39.3.2 Moderner: »tshark«
971
39.4 Wissen, was läuft
971
39.4.1 Auf dem Server: »netstat«
972
39.4.2 Im Netzwerk: »nmap«
973
39.5 Übersicht behalten: »ethstatus«, »iptraf« und »nmon«
975
39.5.1 Einfach und gut: »ethstatus«
975
39.5.2 Komplex und umfangreich: »iptraf«
976
39.5.3 Der Alleskönner: »nmon«
980
39.6 Weitere Tools
982
39.6.1 Subnetzberechnung mit »ipcalc«
982
39.6.2 Informationen zu einem Internetsystem abfragen: »whois«
984
40 Versionskontrolle mit »git«
989
40.1 Das »Einmaleins« der Versionskontrolle
990
40.1.1 Arbeitsweise
991
40.1.2 Welches Vorwissen wird benötigt?
992
40.2 Das Populärste: »Git«
992
40.2.1 Grundkonfiguration
993
40.3 Rein lokal
994
40.3.1 Erstellen des ersten Repositorys
995
40.3.2 Dateien versionieren
995
40.3.3 Dateien überprüfen
996
40.3.4 Unterschiede anzeigen
996
40.3.5 Änderungen aufnehmen
997
40.3.6 Dateien aus der Versionierung entfernen
998
40.4 Dezentraler Server mit »SSH«
998
40.4.1 Vorbereitungen: »Clients«
998
40.4.2 Vorbereitungen: »Server«
999
40.4.3 SSH-Schlüssel importieren
1000
40.4.4 Repository erstellen
1001
40.4.5 Repository laden: »Clients«
1001
40.4.6 Mit dem Repository arbeiten: »Clients«
1002
40.4.7 Sicherheit steigern
1003
40.5 Nur lesend mit »git«
1004
40.5.1 Installation
1005
40.5.2 Vorbereitungen
1005
40.5.3 Dienstkonfiguration
1005
40.5.4 Clients
1006
40.5.5 Fazit
1007
40.6 Nützliches
1007
40.6.1 Den Standard-Texteditor anpassen: »core.editor«
1007
40.6.2 Vorgabe für Nachrichten: »commit.template«
1008
40.6.3 Autokorrektur: »help.autocorrect«
1009
40.6.4 Exportieren: »git archive«
1010
40.6.5 Dateien ignorieren
1010
40.6.6 Versionen vergleichen / Änderungen nachvollziehen
1012
40.6.7 Wer hat's verbockt: »blame«
1014
40.6.8 Und wenn es doch passiert: »Konflikte«
1014
Die Autoren
1017
Index
1019