Cover

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.

Print-ISBN:        978-3-446-46977-8
E-Book-ISBN:   978-3-446-46978-5
E-Pub-ISBN:     978-3-446-46979-2

Inhalt

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.

Danksagung

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

stefan@samba4~\$ ps PID TTY TIME CMD 4008 pts/2 00:00:00 bash 4025 pts/2 00:00:00 ps

Die folgenden Schriftarten werden im Buch verwendet:

Image       Um bestimmte Begriffe hervorzuheben, wird die Schriftart Schief eingesetzt.

Image       Für die Darstellung von Tastenkombinationen und Klicks auf bestimmte Symbole oder Karteireiter in der grafischen Oberfläche wird die Schriftart KAPITÄLCHEN verwendet.

Image       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.

Image       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:

Image

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.

Image

Image

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.

Image

Image

Tipp

Bei diesem Symbol finden Sie nützliche Tipps und Tricks zu bestimmten Aufgaben.

Image

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:

Image       Achten Sie auf langen Support, wählen Sie deshalb auf jeden Fall eine LTS-Version Ihrer Lieblingsdistribution.

Image       Installieren Sie auf allen Servern die gleiche Distribution, schaffen Sie sich keinen Distributionszoo.

Image       Testen Sie, mit welcher Distribution Sie am besten zurechtkommen.

Image       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:

Image       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.

Image       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.

Image       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.

Image       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.

Version 4.10

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.

Version 4.11

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.

Version 4.12

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.

Version 4.13

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:

Image       raw NTLMv2 auth

Image       client plaintext auth

Image       client NTLMv2 auth

Image       client lanman auth

Image       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