Stefan Kania
Samba 4
Das Handbuch für Administratoren
2., überarbeitete und erweiterte Auflage
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht. Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2021 Carl Hanser Verlag München, www.hanser-fachbuch.de
Lektorat: Brigitte Bauer-Schiewek
Copy editing: Jürgen Dubau, Freiburg/Elbe
Layout: le-tex publishing services GmbH
Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München
Umschlagrealisation: Max Kostopoulos
Titelmotiv: © istockphoto.com/malerapaso
Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702
Print-ISBN: 978-3-446-46977-8
E-Book-ISBN: 978-3-446-46978-5
E-Pub-ISBN: 978-3-446-46979-2
Titelei
Impressum
Inhalt
Vorwort
1 Einleitung
1.1 Formales
1.1.1 Kommandozeile vs. grafische Administration
1.2 Schriftarten
1.2.1 Eingabe langer Befehle
1.2.2 Screenshots
1.2.3 Internetverweise
1.2.4 Icons
1.3 Linux-Distributionen
2 Grundlagen
2.1 Das Protokoll SMB
2.1.1 Was hat sich bei Samba getan?
2.2 Das Protokoll NetBIOS
3 Installation von Samba
3.1 Unterschiede zwischen den verschiedenen Samba-4-Versionen
3.2 Die verschiedenen Installationsarten
3.2.1 Installation eines Domaincontrollers aus den Distributionspaketen
3.2.2 Installation eines Fileservers aus den Distributionspaketen
3.2.3 Installation aus den Quellen
3.2.4 Installation der SerNet-Pakete
3.2.5 Installation der Pakete von Louis van Belle
3.3 Installationen unter den verschiedenen Distributionen
3.3.1 Debian 10
3.3.2 Ubuntu 20.04
3.3.3 CentOS 7
3.3.4 Suse Leap 15.x
3.3.5 Installation der SerNet-Pakete
3.3.6 Installation der Pakete von Louis van Belle
4 Einrichten des ersten Domaincontrollers
4.1 Allgemeines zum Einrichten des Domaincontrollers
4.1.1 Neues Datenbankformat
4.1.2 Vorbereitungen für den ersten Domaincontroller
4.2 Konfiguration des ersten Domaincontrollers
4.2.1 Teil 1 mit dem internen DNS-Server (interaktiv)
4.2.2 Teil 1 mit dem internen DNS-Server (über Parameter)
4.2.3 Nach dem Provisioning mit dem internen DNS
4.3 Konfiguration des ersten Domaincontrollers (DC Teil 2)
4.3.1 Anpassung des Systemd
4.4 Testen des Domaincontrollers
4.4.1 Testen der Prozesse
4.4.2 Testen der Serverports
4.4.3 Testen des DNS-Servers
4.4.4 Testen des Verbindungsaufbaus
4.4.5 Testen des Kerberos-Servers
4.4.6 Testen des LDAP-Servers
4.5 Konfiguration des Zeitservers
4.6 Zertifikate ändern
4.6.1 Erstellen selbst signierter Zertifikate
4.6.2 Umstellung auf das eigene Zertifikat
5 Die Benutzerverwaltung
5.1 Benutzer- und Gruppenverwaltung über die Kommandozeile
5.1.1 Verwaltung von Gruppen über die Kommandozeile
5.1.2 Verwaltung von Benutzern über die Kommandozeile
5.1.2.1 Eine deaktivierten Benutzer mit samba-tool user enable aktivieren
5.1.3 Ändern und Suchen von Benutzern mit den ldb-tools
5.1.3.1 Auflisten von Benutzern mittels ldbsearch
5.1.3.2 Ändern eines Objektes mit ldbedit
5.2 Die Remote Server Administration Tools (RSAT)
5.2.1 Einrichtung RSAT bis einschließlich Version 1803
5.2.2 Einrichtung RSAT ab Version 1809
5.3 Benutzer- und Gruppenverwaltung mit dem LAM
5.3.1 Installation des LAM
5.3.2 Konfiguration des LAM
5.3.3 Arbeiten mit dem LAM
6 Gruppenrichtlinien
6.1 Gruppenrichtlinien – Grundlagen
6.2 Verwaltung der GPOs mit den RSAT
6.2.1 Erste Schritte mit dem Gruppenrichtlinieneditor
6.2.2 Erstellen einer Gruppenrichtlinie
6.2.3 Verknüpfung der Gruppenrichtlinie mit einer OU
6.2.4 Verschieben der Benutzer und Gruppen
6.3 GPOs über die Kommandozeile
6.3.1 Reparieren der ACLs von Gruppenrichtlinien
6.3.2 Sichern der GPOs
6.3.3 Prüfen der Gruppenrichtlinienreplikation
7 Verwaltung von Domaincontrollern
7.1 Installation des neuen DCs
7.1.1 Konfiguration des DNS-Servers
7.1.1.1 Einrichten des DNS-Servers über die Windows-Werkzeuge
7.1.1.2 Einrichten des DNS über die Kommandozeile
7.2 Konfiguration des zweiten DCs
7.2.1 Testen des neuen Domaincontrollers
7.2.2 Neue Zertifikate
7.3 Replikation der Freigabe sysvol
7.3.1 Testen der FSMO-Rolle
7.3.2 Einrichten von rsync auf dem PDC-Master
7.3.3 Konfiguration aller anderen DCs
7.3.4 Einrichtung eines Cron-Jobs
7.3.5 Anpassen der smb.conf auf den Client-DCs
7.4 Die FSMO-Rollen
7.4.1 Verwaltung der FSMO-Rollen mit samba-tool
7.4.2 Auflisten aller Rollen
7.4.3 Transferieren der FSMO-Rollen
7.5 Entfernen eines aktiven Domaincontrollers
7.6 Entfernen eines ausgefallenen Domaincontrollers
7.7 Standorte und Subnetze
7.8 Der read-only Domaincontroller
7.8.1 Installation des RODC
7.8.2 Verwalten der Benutzer auf einem RODC
8 Ausfallsicherer DHCP-Server
8.1 Der erste DHCP-Server
8.1.1 Vorbereitungen für den ersten DHCP-Server
8.1.2 Konfiguration des ersten DHCP-Servers
8.1.3 Konfiguration des zweiten DHCP-Servers
8.1.4 Deaktivierung der automatischen DNS-Einträge
9 Zusätzliche Server in der Domäne
9.1 Einrichten eines Linux-Fileservers
9.2 ID-Mapping
9.3 Einrichten des Fileservers
9.3.1 Grundkonfiguration des Fileservers
9.4 Konfiguration über die Registry
9.5 Die Registry-Datenbank
9.6 Das Kommando net conf
10 Verwaltung von Freigaben
10.1 Freigabenverwaltung über die Datei smb.conf
10.2 Verwaltung der Freigaben über die Registry
10.2.1 Erstellen einer Freigabe in der Registry
10.2.2 Zugriff auf eine Freigabe aus der Registry
10.2.3 Erweitern einer Freigabe in der Registry
10.2.4 Sichern der Freigabeeinstellungen aus der Registry
10.2.5 Löschen einer Freigabe aus der Registry
10.2.6 Wiederherstellen von Freigaben in der Registry
10.3 Die Freigabe der Heimatverzeichnisse
10.3.1 Einrichtung der Freigabe für servergespeicherte Profile
10.4 Allgemeine Freigaben
10.4.1 Administrative Freigaben
10.4.2 Erstellen einer Freigabe unter Windows
10.4.3 Eine Freigabe mit hide unreadable
10.4.4 Eine Freigabe mit Netzwerkpapierkorb
10.5 Zuweisung der Freigaben über Gruppenrichtlinien
10.5.1 Anlegen der Gruppenrichtlinie
10.5.1.1 Anlegen einer Struktur
10.5.1.2 Berechtigungen eintragen
10.5.2 Testen auf der Konsole
10.6 GPO für Profile und Ordnerumleitung
10.6.1 Basisordner über GPO anlegen und zuweisen
10.6.2 Servergespeicherte Profil über GPO einrichten
10.6.3 Die Ordnerumleitung über GPOs
10.6.4 Größe des Profils über eine GPO beschränken
10.7 Weitere Freigabemöglichkeiten
10.7.1 Schreibgeschützt während einer bestimmten Zeit
10.7.2 Das VFS-Modul WORM
10.8 Samba und das Distributed File System (DFS)
10.8.1 Grundlagen DFS
10.8.2 Samba4 als DFS-Proxy
10.8.3 Einrichtung einer DFS-Freigabe mit DFS-Link
11 Das Dateisystem
11.1 Dateisystemberechtigungen
11.1.1 Vererbung der Rechte
11.1.2 Aufhebung der Vererbung
11.1.3 Ändern des Besitzers
11.2 Dateisystemquotas
11.2.1 Installation und Aktivierung der Quotas
11.2.2 Quota-Einträge verwalten
12 Verwaltung von Clients in der Domäne
12.1 Hinzufügen eines Windows-Clients in die Domäne
12.2 Hinzufügen eines Linux-Clients zur Domäne
12.2.1 Installation und Konfiguration
12.2.2 Konfiguration des winbind
12.3 Zugriff von Linux-Clients auf Samba-Freigaben
12.3.1 Anmeldung mit grafischer Oberfläche
12.3.2 Caching der Anmeldeinformationen
12.4 Linux-Clients und Gruppenrichtlinie
12.4.1 Installation der ADMX-Dateien
12.4.2 Anlegen einer Linux-GPO
12.4.2.1 Eine GPO vom Type Message
12.4.2.2 Eine GPO vom Typ Sudoers
12.4.2.3 Eine GPO vom Typ smb.conf
12.4.2.4 Eine GPO vom Typ script
12.4.2.5 Zurücksetzen der GPOs
12.5 Der macOS-Client
12.5.1 Grundlegendes für macOS-clients
12.5.2 Die erste Freigabe für macOS-Clients
13 Cluster mit CTDB
13.1 Vorbereiten der Systeme
13.2 GlusterFS
13.2.1 Clients und Protokolle
13.2.2 Die verschiedenen Modi
13.2.3 Installation der Gluster-Pakete
13.2.4 Konfiguration der Knoten
13.2.5 Einrichten der Bricks
13.2.6 Einrichtung des Volumes
13.2.7 Verwenden des Volumes
13.2.8 Das Quorum
13.2.9 Einrichten des Client-Quorums
13.2.10 Austausch eines Knotens
13.2.11 Ersetzen eines ausgefallenen Bricks
13.2.12 Erweitern des Volumes
13.2.13 Gluster-Snapshots
13.2.13.1 Erstellen eines Snapshots
13.2.13.2 Wiederherstellung eines Volumes aus einem Snapshot
13.2.13.3 Löschen eines Snapshots
13.3 CTDB
13.3.1 Installation der Software
13.3.2 Installation des Kerberos-Clients
13.3.3 Einträge im DNS-Server erstellen
13.3.4 Konfiguration von CTDB
13.3.5 Erstellen der Konfiguration für Samba
13.3.6 Starten und Testen des CTDB-Cluster
13.3.7 Das Kommando onnode
13.3.7.1 Abfrage des Status auf allen Knoten
13.3.7.2 Neustarten des Clusters auf allen Knoten
13.3.7.3 Kopieren einer Datei
13.3.8 Benutzer und Freigaben
13.3.8.1 Bekanntmachen der Gruppen und Benutzer
13.3.8.2 Optimierung von Gluster
13.3.8.3 Einrichten von Freigaben
14 Schemaerweiterung
14.1 Vorbereitung der Installation
14.2 Zusätzliche Attribute erstellen
15 Sicherung der Datenbanken
15.1 Sicherung der Datenbanken
15.1.1 Möglichkeiten zur Sicherung der Datenbanken
15.1.1.1 Die online-Sicherung
15.1.1.2 Die offline-Sicherung
15.1.2 Wiederherstellung der Domäne aus dem Backup
16 Vertrauensstellungen
16.1 Vertrauensstellung zwischen zwei Forests
16.1.1 Die Einrichtung der Domänen
16.2 Einrichten eines DNS-Proxys
16.2.1 Installation und Konfiguration
16.2.2 Umstellung an den Domaincontrollern
16.3 Einrichten der Vertrauensstellungen
16.4 Der Windows-Client
16.5 Der Linux-Client
16.6 Verwaltung von Namespaces
16.7 Einrichtung von Namespaces
17 Samba 4 über die Kommandozeile verwalten
17.1 Das Kommando samba-tool
17.1.1 samba-tool computer
17.1.2 samba-tool contact
17.1.3 samba-tool dbcheck
17.1.4 samba-tool drs
17.1.5 samba-tool dsacl
17.1.6 samba-tool fsmo
17.1.7 samba-tool gpo
17.1.8 samba-tool group
17.1.9 samba-tool ldapcmp
17.1.10 samba-tool ntacl
17.1.11 samba-tool sites
17.1.12 samba-tool user
17.1.13 Zusammenfassung
17.2 Das Kommando net
17.2.1 net rpc
17.2.2 net ads
17.2.3 net status
17.2.4 Zusammenfassung
17.3 Die smb-Kommandos
17.3.1 smbclient
17.3.2 smbstatus
17.3.3 Zusammenfassung
17.4 Skripte
17.4.1 Anlegen von Benutzern
17.4.2 Ändern von Benutzern
17.4.3 Entfernen von gelöschten Objekten
17.4.3.1 Löschen mit ldbdel
17.4.3.2 Löschen mit ldbmodify
17.5 Fazit zur Kommandozeile
18 Die Migration einer bestehenden Domäne
18.1 Migration von Samba
18.1.1 Migration einer tdb-Backend-Domäne
18.1.1.1 Vorbereiten der Migration
18.1.1.2 Kopieren aller benötigten Daten
18.1.1.3 Migration der Datenbanken
18.1.1.4 Testen der Benutzer und Gruppen
18.1.2 Migration der Benutzer und Gruppen aus einem OpenLDAP
18.1.2.1 Doppelte SIDs und Benutzername == Gruppenname
18.1.2.2 Kopieren der benötigten Daten
18.1.2.3 Start der Migration
18.1.2.4 Testen der neuen Domäne
18.2 Migration eines Windows-Servers
18.2.1 DNS-Einträge erstellen und prüfen
18.2.2 Global Catalog umziehen
18.2.3 Übertragung der FSMO-Rollen
18.2.4 Prüfen der Gruppenrichtlinien
19 Samba 4 als Printserver
19.1 Vorbereitungen
19.1.1 Privilegien für die Druckerverwaltung
19.2 Vorbereitungen des CUPS-Drucksystems
19.3 Einrichten der Freigaben
19.3.1 Einrichten eines Druckers mit CUPS
19.4 Hochladen der Druckertreiber
19.5 Zuordnung des Druckertreibers
19.6 Verbinden mit dem Drucker
19.7 Gruppenrichtlinien für Drucker
19.7.1 Gruppenrichtlinien für unsignierte Druckertreiber
19.7.2 Gruppenrichtlinie für die Druckerzuweisung
20 WINS und Samba 4
20.1 Einrichten des Knotentyps
20.2 Konfiguration des WINS-Servers
20.3 Einrichten der Replikation
20.4 Backup und Recovery der WINS-Daten
20.5 Testen der WINS-Server
21 Virenscanner auf dem Fileserver
21.0.1 Einrichten von ClamAV
21.0.2 EICAR-Testsignatur
21.0.3 Einrichten des clamd
21.1 Samba und Virusfilter
22 Nutzung des Kerberos-Servers
22.1 Einrichtung des ssh-Servers
22.2 Einrichten des Clients
22.3 Einrichtung für den Apache-Webserver
23 Firewall und Sicherheit
23.1 Firewall
23.1.1 Ports auf einem Domaincontroller
23.1.2 Ports auf einem Fileserver
23.2 Sicherheit
23.2.1 Absichern des Betriebssystems
23.2.2 Absichern des Samba-Dienstes
24 Hilfe zur Fehlersuche
24.1 Installations- und Konfigurationsfehler
24.1.1 Der erste Domaincontroller
24.1.2 Der zweite Domaincontroller
24.1.3 Replikation der sysvol-Freigabe
24.1.4 Der Fileserver
24.2 Fehler im laufenden Betrieb
24.2.1 Fehler bei der Replikation
24.2.2 Berechtigungsprobleme bei den ACLs
24.2.3 Ungleiche Zeit auf den Domaincontrollern
24.3 Logfile-Analyse
24.3.1 Logfile-Analyse auf dem Domaincontroller
24.3.2 Logfile-Analyse auf dem Fileserver
25 Einrichtung mit Ansible
25.1 Vorüberlegungen
25.1.1 Die Umgebung
25.1.2 Das Inventory
25.2 Der erste Domaincontroller
25.2.1 Variablen für die Domaincontroller
25.2.2 Die Tasks
25.3 Fileserver einrichten mit Ansible
25.3.1 Nach Installation aller Server
26 Jetzt alles zusammen
26.1 Das Unternehmen
26.2 Planung des Active Directorys
26.3 Installation des ersten Domaincontrollers
26.4 Einrichtung des Zeitservers
26.5 Installation des zweiten Domaincontrollers
26.5.1 Replikation der Freigabe sysvol
26.6 Konfiguration von GlusterFS
26.7 Konfiguration von CTDB
26.8 Konfiguration von Samba
26.9 Einrichten der administrativen Freigaben
26.10 Einrichten des Druckservers
26.11 Nachwort zum Workshop
Vorwort |
Eine neue Auflage des Samba-4-Buchs ist fertig. Nachdem seit dem Beginn der Arbeiten zur vorherigen Auflage mehr als zwei Jahre vergangen sind, wurde es Zeit, die Inhalte zu überarbeiten. Sehr viel hat sich seit der damals verwendeten Samba-Version 4.8 geändert. Vieles ist komplett überarbeitet worden wie die Konfiguration von CTDB. Viel wichtiger hingegen, es sind auch eine Menge an neuen Funktionen und Möglichkeiten in der Zeit dazugekommen. Eine der aktuellsten und in meinen Augen größten Neuerungen sind die Gruppenrichtlinien für Linux-Clients. Damit ist es jetzt auch möglich, über das Active Directory Teile der Linux-Client-Konfiguration zentral über Gruppenrichtlinien zu steuern. Auch ist im Hintergrund, also in dem Teil, der keine neuen Funktionen bietet, viel getan worden. So wurde der gesamte SMB-Stack überarbeitet und zusammen mit den verbesserten Funktionen des Kernels ab 5.4 die Performance verbessert. Eine der wohl größten Änderungen ist die Umgestaltung des VFS-Systems. Das Datenbank-Backend lmdb hat Einzug gehalten, damit können jetzt die Datenbanken erheblich größer werden und somit mehr Objekte im Active Directory verwaltet werden.
Alle Dinge aufzuzählen, die sich im Hintergrund getan haben, würde die Liste zu lang werden lassen.
Auch für Sie als Administrator hat sich seit der Version 4.8 sehr viel getan. Hier im Buch verwende ich die Version 4.14, die beim Erscheinen des Buchs die gerade aktuelle Version ist. Wenn Sie jetzt erst von 4.8 umsteigen und den Wechsel auf 4.14 vollziehen, werden Sie am Anfang gleich sehen, was sich alles getan hat. Rufen Sie nur einmal das Kommando samba-tool auf und vergleichen Sie die Möglichkeiten mit älteren Versionen, da ist jetzt schon so einiges mehr möglich. Natürlich habe ich alle wichtigen Neuerungen auch ins Buch aufgenommen, sodass Sie schnell auf dem aktuellen Stand sind und die neuen Möglichkeiten kennenlernen.
Ich hoffe, dass ich Ihnen mit diesem Buch wieder eine Anleitung an die Hand gegeben habe, die Sie von vorne bis hinten der Reihe nach abarbeiten können, aber Sie können auch gezielt einzelne Kapitel nutzen.
Ich weiß, viele Leser suchen als Erstes immer, was denn bei einem Buch im Vergleich zur letzten Auflage rausgefallen und was neu dazugekommen ist. Rausgefallen ist das Compilieren von Samba. Es gibt mittlerweile so viele Möglichkeiten, aktuelle Versionen als Pakete zu bekommen, dass das Selberbauen, um aktuelle Versionen zu bekommen, nicht mehr unbedingt notwendig ist. Durch die Umstellung auf Python3 und andere technische Änderungen ist das Bauen auch etwas komplexer geworden. Das alles hat mich zu dem Entschluss gebracht, diesen Teil zugunsten anderer Themen aus dem Buch zu nehmen.
Genau so wichtig ist auch immer, was ist denn neu im Buch? Ja, Neues gibt es. Das Kapitel zum Thema Freigaben habe ich erheblich erweitert. Ich habe hier jetzt eine komplette Beschreibung zur Einrichtung von servergespeicherten Profilen und der Ordnerumleitung über Gruppenrichtlinien geschrieben. Denn das ist eines der Themen, die auch meinen Kunden immer wieder Schwierigkeiten bereiten. Natürlich das gesamte Thema Gruppenrichtlinien für Linux-Clients ist komplett neu. Bei der Client-Verwaltung habe ich mich mal an die Einbindung von macOS-Clients gewagt.
Beim Thema Cluster habe ich den Teil mit GlusterFS etwas aufgebohrt, denn dazu kamen in der letzten Zeit vermehrt Fragen und die Bitte, das Thema doch mal etwas umfangreicher zu gestalten.
Beim Kapitel zur Fehlersuche sind das Logging und das Auditing dazugekommen.
Zwei neue Kapitel gibt es dieses Mal im Buch: einmal ein eigenes Kapitel zur Einrichtung des VFS-Moduls virusfilter zusammen mit ClamAV als Scan-Engine und das Thema Ansible. Da zeige ich, wie Sie eine komplette Umgebung mit zwei Domaincontrollern und einem Fileserver automatisch mit Ansible einrichten können. Die Rollen stelle ich alle als Download bereit.
Und die anderen Kapitel? Fast alle Kapitel habe ich komplett überarbeitet und auf die aktuelle Samba-Version 4.14 angepasst. Zu vielen Kapiteln sind auch neue Funktionen hinzugekommen. Alles in allem sind gut 100 Seiten neu hinzugekommen, und ich hoffe, dass auch für alle Leser etwas Neues dabei ist.
Bei den Danksagungen möchte ich dieses Mal mit Ihnen beginnen, denn was wäre ein Buch ohne die Leser? Ganz klar, nicht da. Deshalb danke an alle Leser, an die, für die dieses die erste Auflage ist, aber besonders an die Leser, die schon mehrere Auflagen dieses Buches besitzen.
Danke auch an den Hanser Verlag, dass ich das Buch, bei dem es sich ja schon um ein Nischenprodukt handelt, wieder neu auflegen durfte.
Mein besonderer Dank gilt drei Personen, ohne die es nicht möglich gewesen wäre, die Auflage so schnell herauszubringen und dabei die gerade aktuelle Samba-Version zu nutzen. Danke, Louis van Belle, für die Bereitstellung der Pakete zu 4.14 ab dem ersten Tag des Erscheinens des rc1-Release.
Auch Björn Baumbach von der Firma SerNet hat mir wieder sehr viel geholfen -- beim Auffinden von Bugs und anderen Fragen. Manchmal hatte ich schon Angst, bei ihm auf die Blacklist seines Mailprogramms zukommen. Auch er hat dafür gesorgt, dass ich die SerNet-Pakete zu 4.14 schon mit dem rc1-Release nutzen konnte.
Danken möchte ich auch Ralph Böhme von der Firma SerNet, der mir bei der Erstellung des Abschnitts zu macOS-Clients geholfen und den Teil des Kapitels auch gegengelesen hat, um mir als Nicht-Mac-User das eine oder andere zu erklären.
Da ein Buch immer ein Projekt neben der anderen Arbeit ist, muss man als Autor immer auch Stunden der Freizeit opfern, um alles zu testen und dann schreiben zu können. Aus dem Grund möchte ich hier auch meiner Lebensgefährtin danken, dass sie mich sehr oft in aller Ruhe hat arbeiten lassen. Ohne diese Geduld wäre so ein Projekt nicht möglich.
Jetzt bleibt mir nur noch, Ihnen viel Spaß mit der neuen Auflage zu wünschen, und wie immer freue ich mich über Anregungen und Kritik. Ihr Feedback hilft stets, eine weitere Auflage zu verbessern.
1 | Einleitung |
An dieser Stelle möchte ich Ihnen erklären, was ich mir bei der Verwendung der verschiedenen Formatierungsmöglichkeiten und Administrationsarten gedacht habe. Hier finden Sie auch die Beschreibung zu den im Buch verwendeten Icons.
1.1 | Formales |
Damit Sie den größtmöglichen Nutzen aus diesem Buch ziehen können, sollen im Folgenden einige Konventionen erläutert werden.
1.1.1 | Kommandozeile vs. grafische Administration |
An vielen Stellen im Buch verwende ich die Kommandozeile, um bestimmte Dienste zu konfigurieren oder zu testen, aber auch die Maus kommt hier zum Einsatz. In diesem Buch geht es ja um Samba 4. Samba 4 soll ein möglichst genaues Abbild einer Windows-Umgebung darstellen, und das betrifft natürlich auch die Administration.
Da die Administration unter Windows im Normalfall über die grafische Oberfläche stattfindet, wird genau das hier häufig auftauchen. An manchen Stellen macht es auch keinen Sinn, obwohl es ginge, die Administration über die Kommandozeile vorzunehmen, da Sie mit der Maus viel schneller sind. An einigen Stellen haben Sie auch mehr Möglichkeiten, wenn Sie die grafische Administration verwenden.
Für alle Leser unter Ihnen, die am liebsten alles oder wenigstens möglichst viel über die Kommandozeile erledigen möchten, habe ich das Kapitel zur Arbeit auf der Kommandozeile überarbeitet und erweitert.
1.2 | Schriftarten |
Viele der Beispiele zu den Kommandos werden aber auch in Listings dargestellt. In den Listings werden Sie von der Befehlszeile bis zum Ergebnis alles nachvollziehen können, wie Sie hier im Beispiel sehen:
Listing 1.1 Ein Testlisting
Die folgenden Schriftarten werden im Buch verwendet:
Um bestimmte Begriffe hervorzuheben, wird die Schriftart Schief eingesetzt.
Für die Darstellung von Tastenkombinationen und Klicks auf bestimmte Symbole oder Karteireiter in der grafischen Oberfläche wird die Schriftart KAPITÄLCHEN verwendet.
Wenn im Text der Hinweis auf eine Datei gegeben wird, werde ich die Schriftart Sans Serif verwenden. Im fließenden Text werden Konsolenbefehle mit Schreibmaschine dargestellt.
Parameter und Werte aus Listings durch die Verwendung von Kursivschrift gekennzeichnet.
1.2.1 | Eingabe langer Befehle |
Es gibt noch eine weitere wichtige, eher technische Konvention: Einige der vorgestellten Kommandozeilenbefehle oder Ausgaben von Ergebnissen erstrecken sich über mehrere Buchzeilen. Im Buch kennzeichnet am Ende der entsprechenden Zeilen ein "\", dass der Befehl oder die Ausgabe in der nächsten Zeile weitergeht.
1.2.2 | Screenshots |
Wie heißt es doch so schön: Ein Bild sagt mehr als tausend Worte. Wann immer es sinnvoll erscheint, soll ein Screenshot zur Erhellung des Sachverhalts beitragen.
Gerade wenn Windows verstärkt für die Administration eingesetzt wird, sind Screenshots einfach unerlässlich. Auch sollen die Screenshots Ihnen helfen, bestimmte Einstellungen schneller und einfacher zu finden.
1.2.3 | Internetverweise |
An einigen Stellen werde ich auf bestimmte URLs verweisen – sei es, um Ihnen Quellen für bestimmte Downloads zu geben, oder um Ihnen den Weg zu tiefergehenden und weiterführenden Erklärungen zu geben, die den Rahmen dieses Buches sprengen würden. Verweise auf Internetadressen werden immer kursiv geschrieben, zum Beispiel so: www.samba.org.
1.2.4 | Icons |
Sie werden in den einzelnen Kapiteln am Rand oft Icons finden, die Sie auf bestimmte Zusammenhänge oder Besonderheiten hinweisen sollen. Die Icons haben die folgenden Bedeutungen:
Wichtig
Wann immer Sie das nebenstehende Symbol sehen, ist Vorsicht angeraten: Hier weise ich auf besonders kritische Einstellungen hin oder auf Fehler, die dazu führen können, dass das System nicht mehr stabil läuft. Damit sich die Warnungen mehr vom übrigen Text abheben, habe ich diese Textbereiche dann noch mit einem grauen Kasten hinterlegt.
Hinweis
Alle Textstellen, die ich mit diesem Icon versehen habe, sollten Sie unbedingt lesen! Hier handelt es sich oft um wichtige Hinweise, die Sie nicht außer Acht lassen sollten.
Tipp
Bei diesem Symbol finden Sie nützliche Tipps und Tricks zu bestimmten Aufgaben.
1.3 | Linux-Distributionen |
Welche Distribution Sie verwenden, ist immer abhängig davon, welche Samba-Funktion Sie nutzen wollen. Zurzeit unterstützen nur Ubuntu und Debian die Funktion des Active Directory-Domaincontrollers aus den eigenen Repositories. Der Grund ist der, dass bis zur Version 4.6 nur der Heimdal-Kerberos Server bei Samba zum Einsatz gekommen ist. Nur Debian und Ubuntu stellen den Heimdal-Server noch zur Verfügung, alle anderen Distributionen verwenden nur noch den MIT-Kerberos, um die aktuellen Versionen nutzen zu können. Die Nutzung des MIT-Kerberos ist immer noch experimentell und kann nur verwendet werden, wenn Sie Samba entsprechend selber bauen.
Eine weitere Möglichkeit für die Installation auf Debian-Systemen sind die Pakete von Louis van Belle https://apt.van-belle.nl/. Ich werde diese Pakete hier im Buch einsetzen, um die aktuelle Samba-Version vorstellen zu können.
Die wichtigsten Unterscheidungsmerkmale finden sich hauptsächlich in der Installation. Die Administration ist anschließend bei allen Distributionen identisch. Wenn Sie also Samba entweder aus den Quellen selber bauen oder die Pakete aus externen Quellen nutzen, können Sie mit jeder beliebigen Distribution den Aufbau Ihrer Systeme mit diesem Buch nachvollziehen. Sie sind nicht zwingend auf Debian oder Ubuntu angewiesen.
Ein Hinweis zu Firewalls, SELinux und Apparmor: Ich werde vor der Installation diese System immer deaktivieren, da es in diesem Buch nicht um das Thema Systemsicherheit geht. Wenn Sie eines dieser Systeme nutzen wollen, müssen Sie sich in zusätzlicher Literatur darüber informieren, da diese Systeme für sich schon ganze Bücher füllen.
Wenn Sie jetzt überlegen, welche Distribution Sie verwenden wollen, folgen hier ein paar Tipps:
Achten Sie auf langen Support, wählen Sie deshalb auf jeden Fall eine LTS-Version Ihrer Lieblingsdistribution.
Installieren Sie auf allen Servern die gleiche Distribution, schaffen Sie sich keinen Distributionszoo.
Testen Sie, mit welcher Distribution Sie am besten zurechtkommen.
Schauen Sie sich die verschiedenen Versionen von Samba 4 an und überlegen Sie, welche Version Sie mindestens installieren müssen, um alle benötigten Funktionen realisieren zu können.
Einige der hier im Buch beschriebenen Distributionen bringen nicht die Funktion des Domaincontrollers mit, da der Domaincontroller den Heimdal-Kerberos-Server benötigt und nicht alle Distributionen diesen unterstützen. An der entsprechenden Stelle werde ich auf diese Thematik noch genauer eingehen.
Jetzt bleibt mir nur noch, Ihnen viel Spaß mit dem Buch zu wünschen und zu hoffen, dass Ihnen mein Buch bei Ihrer täglichen Arbeit eine Hilfe sein wird.
2 | Grundlagen |
Bevor es an die Praxis geht, will ich auf ein paar Grundlagen eingehen. Hier soll nicht das gesamte OSI-Referenzmodell besprochen, sondern ein kurzer Einblick in die verwendeten Protokolle vermittelt werden. Auch werde ich an dieser Stelle darauf eingehen, welche der Protokolle und welche Versionen noch aktuell sind und welche Versionen nicht mehr benutzt werden sollten.
In diesem Kapitel werden zunächst einige Grundlagen zu den Protokollen SMB und NetBI-OS angesprochen. Auch will ich hier auf die verschiedenen Versionen des SMB-Protokolls eingehen.
Für die Datenübertragung und Adressierung im Netzwerk verwendet Windows zwei unterschiedliche Protokolle: SMB für die Datenübertragung und NetBIOS für die Adressierung über die NetBIOS-Namen.
Die beiden Protokolle haben dabei verschiedene Aufgaben. Auf das SMB-Protokoll können Sie nicht verzichten, denn es wird immer für die Datenübertragung verwendet. Das Protokoll wurde auch über die Jahre immer weiterentwickelt.
Auf das NetBIOS-Protokoll können Sie heute aber ganz verzichten, denn sämtliche Adressierung kann über DNS oder das Active Directory vorgenommen werden. Aber sehr oft kommt das Protokoll doch noch zum Einsatz, um zum Beispiel die Netzwerkumgebung im Explorer unter Windows weiterverwenden zu können.
Unter Samba ist es aber schon so, dass auf einem Domaincontroller das NetBIOS-Protokoll gar nicht mehr aktiv ist und auch nicht mehr benötigt wird.
Da das Protokoll immer mehr in den Hintergrund tritt, werde ich hier auch nicht weiter darauf eingehen. Allerspätestens mit der Einführung von IPv6 ist die Nutzung nicht mehr möglich, da IPv6 das Protokoll nicht mehr unterstützt.
2.1 | Das Protokoll SMB |
Bei SMB handelt es sich um ein Protokoll zur Kommunikation mit Datei- und Druckdiensten. SMB wird auch oft als Dateisystem betrachtet, was es aber eigentlich nicht ist. SMB kann wohl besser mit NFS verglichen werden, das besonders unter Linux verwendet wird und dort den Austausch von Dateien regelt.
SMB ist für die Übertragung der Daten zwischen dem Client und dem Server verantwortlich. SMB benötigt immer ein Transportprotokoll. Hier kam früher das Protokoll NetBIOS alleine zum Einsatz, späterwurde dann auf NetBIOS over TCP umgeschwenkt. Ab Windows 2000 ist es aber auch möglich, TCP alleine zu verwenden. Unter Samba wird das Protokoll SMB über den Daemon smbd bereitgestellt.
Mit Windows Vista erschien eine neue Version des SMB-Protokolls auf dem Markt: das SMB2-Protokoll. Dieses Protokoll wurde an einigen Stellen komplett überarbeitet. Eines der Hauptmerkmale der neuen Version ist, dass die Anzahl der Kommandos von über 100 auf 16 reduziert wurde.
Dadurch ist das Protokoll im Netzwerk nicht mehr so „gesprächig“. Auch wurden die Puffer für die Datenübertragung vergrößert, wodurch eine schnellere Übertragung von großen Dateien möglich ist.
Mit Samba 4 kam dann die Unterstützung des SMB3-Protokolls. Damit ist die Entwicklung aber nicht abgeschlossen, es wird weiter an dem Protokoll gearbeitet, und das sowohl auf Seite von Microsoft als auch auf Seite des Samba-Teams.
Das SMB-Protokoll gibt es in verschiedenen Versionen, die von den unterschiedlichen Windows-Versionen unterstützt werden:
Version 1.0
Diese Version kommt bei Windows 2000, Windows XP, Windows Server 2003 und Windows Server 2003 R2 zum Einsatz. Mittlerweile wird diese Version nur noch unterstützt, wenn Sie es explizit aktivieren. Die Version 1 hat einfach zu viele Sicherheitslücken, dass ein Einsatz heute nicht mehr empfohlen wird.
Version 2.0
Ab Windows Vista Service Pack 1 und Windows Server 2008 ist das Protokoll SMB in der Version 2.0 das Standardprotokoll für die Datenübertragung. Diese Version wurde auch bei Samba ab der Version 3.6 unterstützt.
Version 2.1
Mit Windows 7 und Windows Server 2008 R2 wurde die verbesserte Version 2.1 eingeführt. Samba unterstützte diese Version seit 3.6.
Version 3.0
Seit Windows 8 und Windows Server 2012 wird die aktuelle Version 3.0 des Protokolls implementiert. Ältere Windows-Versionen unterstützen die Version 3.0 nicht mehr. Aktuelle Samba-Versionen unterstützen die Version 3.1.1.
2.1.1 | Was hat sich bei Samba getan? |
Im letzten Buch habe ich die damals aktuelle Version 4.8 genutzt. Wie schon in der Einleitung beschrieben, verwende ich dieses Mal die Version 4.14. Da sich in den Versionen von 4.8 bis 4.14 eine Menge geändert hat, folgt hier eine kurze Übersicht über alle Änderungen zum SMB-Protokoll.
Erstmal unterstützen in dieser Version die smbtools wie smbclient SMBv2. In den vorherigen Versionen funktionierten die smbtools nicht, wenn auf einem Server oder Domaincontroller SMBv1 deaktiviert wurde. Die Kommandos lieferten dann nur eine Fehlermeldung. Auch das wichtige Werkzeug samba-tool auf den Domaincontrollern unterstützt jetzt SMBv2.
Hier wird es dann ernst, ab dieser Version wurde SMBv1 grundsätzlich deaktiviert. Wer ab der Samba-Version 4.11 noch SMBv1 benötigt, kann das nur, wenn es explizit in der smb.conf aktiviert wird. Bei den beiden Parametern client min protocol und server min protocol ist der Standardwert jetzt SMB2_02.
Das bedeutet, dass Clients, die nicht mindestens SMBv2 unterstützen, keine Verbindung mehr zu einem Samba-Server aufbauen können.
Einige Interna des SMBv3-Protokolls wurden verbessert, zusammen mit einem Kernel >= 5.1 (am besten ab Kernel 5.6.16) wurde die Performance erheblich verbessert.
Die Möglichkeit, SMBv1 zu nutzen, wurde weiter eingeschränkt. Alle Parameter, die sich lediglich auf Sicherheitsmechanismen beziehen, die lediglich von SMBv1 unterstützt werden, wurden als deprecated markiert und werden in den nächsten Versionen vollständig entfernt. Die folgenden Parameter fallen darunter:
raw NTLMv2 auth
client plaintext auth
client NTLMv2 auth
client lanman auth
client use spnego
2.2 | Das Protokoll NetBIOS |
NetBIOS ist dagegen für die Namensdienste im Netzwerk verantwortlich. Es wird unter Samba über den Daemon nmbd bereitgestellt. Im Verlauf des Buchs werden Sie sehen, dass bei Samba 4 NetBIOS auf den Domaincontrollern nicht mehr für den Computersuchdienst bereitgestellt wird. Dadurch werden die Domaincontroller nicht mehr in der Netzwerkumgebung angezeigt. Verbindungen lassen sich dort nur noch direkt über die Freigabe einrichten.
Das Protokoll NetBIOS ist eine Entwicklung der Firmen IBM und Sytek Inc. Es wurde bereits im Jahre 1983 entwickelt. Ursprünglich war es dazu gedacht, die Kommunikation in kleinen Netzen bis maximal 80 Hosts zu gewährleisten. Später wurde NetBIOS als Protokoll definiert, das direkt auf der OSI-Ebene 2 aufsetzt. Daraus wurde das Protokoll NetBEUI, ein sehr einfach aufgebautes Protokoll ohne Routing-Funktion, das aber den Anforderungen an kleine Netze genügte.
Alle Microsoft-Betriebssysteme vor der Version Windows 2000 waren zwingend auf das Protokoll NetBIOS angewiesen, da mit diesem Protokoll die gesamte Adressierung der Systeme und der Dienste im Netz durchgeführt wurde. NetBIOS ist ein Protokoll der Ebene 5 des OSI-Referenzmodells. Dadurch können die verschiedensten Netzwerkprotokollfamilien auf den Ebenen 3 und 4 verwendet werden. Am Anfang stand hier NetBEUI im Vordergrund, da das Protokoll NetBIOS mehr für kleine lokale Netze gedacht war. Heute verwendet NetBIOS die Protokolle TCP/IP zum Transport der Daten und kann somit auch in modernen Netzen zum Einsatz kommen.
Seit Windows 2000 kann aber auch ganz auf NetBIOS verzichtet und die gesamte Kommunikation komplett über TCP/IP realisiert werden. Aus Kompatibilitätsgründen ist NetBIOS aber immer noch in den Microsoft-Betriebssystemen vorhanden und auch standardmäßig immer aktiv. Der Grund, weshalb NetBIOS noch vorhanden und aktiv ist, ist der, dass die Netzwerkumgebung auf einem Windows-Client stark von NetBIOS abhängig ist. Zwar füllt NetBIOS die Netzwerkumgebung nicht direkt (dafür ist der Computersuchdienst verantwortlich), aber der Computersuchdienst ist sehr stark von NetBIOS abhängig.
Soll kein NetBIOS mehr zum Einsatz kommen, wird die Verwaltung der Dienste und Rechner in einem Windows-Netzwerk vom Active Directory übernommen, und die Netzwerkumgebung bleibt leer.
Viele Administratoren lassen deshalb NetBIOS aktiv, da sich die Anwender an die Netzwerkumgebung gewöhnt haben und sich nur schwer umstellen können oder wollen.
3 | Installation von Samba |