Erweiterte Samba-Konfiguration

Eine einfache Datei- oder Verzeichnis-Freigabe ist mit Samba mit nur wenig Konfigurationsaufwand eingerichtet. Viele Konfigurations-Optionen sind standardmäßig optimal eingestellt.

Die folgenden Ausführungen gehen auch auf die standardmäßige Konfiguration einiger Optionen ein. Also Konfigurations-Optionen, die man eigentlich nicht mehr angeben muss. Es gibt aber Gründe, warum man den einen oder anderen Parameter vielleicht trotzdem setzen sollte. Beim Update oder Wechsel auf eine neue Samba-Version kommt es gelegentlich vor, dass standardmäßig gesetzte Optionen einen anderen Wert bekommen, weshalb die Samba-Freigaben manchmal nicht mehr wie gewohnt funktionieren.

  • Benutzer-Authentifizierung
  • Benutzerverwaltung
  • Benutzer für Samba anlegen
  • Passwort-Änderung durch den Benutzer
  • Konfiguration für Windows-10-Clients
  • WINS-Server einrichten
  • NetBIOS-Namen festlegen
  • NetBIOS-Kommunikation

Die folgenden Samba-Konfigurationen sind nicht als Schritt-für-Schritt-Anleitung zu verstehen, sondern sind optionale Konfigurationsmöglichkeiten.
Vorausgesetzt wird, dass die folgenden Konfigurationen als Benutzer "root" erfolgen oder als normaler Nutzer mit dem Kommandozeilenzusatz "sudo".
Vorausgesetzt wird auch, dass der Anwender weiß, wie Samba funktioniert, wie es konfiguriert und was dabei beachtet werden muss. Die Konfiguration findet üblicherweise in der zentralen Konfigurationsdatei "/etc/samba/smb.conf" statt.

Benutzer-Authentifizierung

Die Standardeinstellung (mit Benutzer-Authentifizeriung) bei Samba ist:

security = user

Außerdem ist es sinnvoll verschlüsselte Passwörter zu verwenden (Standardeinstellung):

encrypted passwords = yes

Benutzerverwaltung

Die folgenden Ausführungen zur Benutzerverwaltung beziehen sich auf Samba 3 und Samba 4 im Classic-Modus (ohne Domain-Controller).

Die Verwaltung des Samba-Kontos erfolgt entweder durch "smbpasswd" in einer Datei, durch "tdbsam" in einer lokalen Datenbank oder zentral über einen LDAP-Server. Wenn man nur einen Arbeitsgruppen-Server oder nur einen Primary Domain Controller (PDC) in einem kleinen Netzwerk einrichten will, dann ist die Verwaltung über "smbpasswd" oder "tdbsam" vollkommen in Ordnung.
Sobald man Samba in einer komplexeren Umgebung als PDC und Backup Domain Controller (BDC) nutzen möchte, dann ist LDAP als zentrale Benutzerverwaltung ein Muss.

Beim Betrieb eines einzelnen Datei-Servers wird für die lokale Benutzerverwaltung "tdbsam" empfohlen. Es handelt sich hierbei um eine einfache Datenbank mit dem Namen Trivial Database. Diese Datenbank erlaubt, im Gegensatz zur Datei-basierten Verwaltung mit "smbpasswd", dass mehrere Benutzer gleichzeitig schreibend auf die Datenbank zugreifen können. Das ist dann wichtig wenn mehrere Benutzer gleichzeitig ihr Passwort ändern wollen. Die Empfehlung lautet, für die Benutzerverwaltung "tdbsam" bis maximal 250 Benutzern zu verwenden und danach auf LDAP umzustellen.
Wenn man mehrere Samba-Server als PDC und BDC einsetzen will, dann sollte man auf alle Fälle LDAP als Benutzerverwaltung einsetzen. Das heißt aber auch, man braucht einen separaten LDAP-Server.

Prinzipiell kann man die folgende Konfiguration der Benutzerverwaltung weglassen, weil sie standardmäßig gesetzt werden.

Standardmäßig bei Samba bis Version 3.3.10:

passwd backend = smbpasswd

Standardmäßig bei Samba ab Version 3.4:

passdb backend = tdbsam

Es gibt aber einen Grund, warum man den Parameter vielleicht doch setzen sollte. Wenn man von einer alten Samba-Version (z. B. bis 3.3.10) auf eine neue Samba-Version (z. B. ab 3.4) wechselt, und der Parameter "passwd backend" nicht gesetzt ist, dann funktioniert die Benutzerverwaltung nicht mehr, wenn standardmäßig eine andere Benutzerverwaltung zur Anwendung kommt. Ist der Parameter gesetzt, dann wird die alte Benutzerverwaltung verwendet. Die ist dann zwar veraltet, aber sie funktioniert nach der Umstellung noch.

Wenn man nach der Umstellung von Samba 3 auf 4 auch die Benutzerverwaltung von "smbpasswd" auf "tdbsam" umstellen möchte, kann man das mit folgendem Kommando tun:

pdbedit -i smbpasswd -e tdbsam

Anschließend sollte man die Konfiguration von "passdb backend" anpassen und Samba neustarten.

Benutzerverwaltung für Samba (Benutzer anlegen und entfernen)

Auch dann, wenn ein Benutzer nur auf die Samba-Freigaben zugreifen können soll, aber kein klassisches Linux-Konto braucht, muss trotzdem ein Linux-Konto angelegt werden.

Passwort-Änderung durch den Benutzer

Mit dem Programm "smbpasswd" kann jeder Benutzer sein Passwort selbst ändern.

unix password sync = yes

Diese standardmäßige Einstellung in der Sektion "[global]" sieht vor, dass wenn der Benutzer sein Samba-Passwort ändert, damit auch gleich das normale Linux-Passwort geändert wird.

Konfiguration für Windows-10-Clients

Bei Windows 10 ist das Protokoll SMB mit der Version 1 als nicht sicher eingestuft und deshalb deaktiviert. Deshalb muss man bei Bedarf folgende Zeilen im Abschnitt [GLOBAL] ergänzen.

[GLOBAL]
...
client min protocol = SMB2
client max protocol = SMB3

WINS-Server einrichten

Wenn ein Samba-Server auch als WINS-Server arbeiten soll, dann fügt man folgende Zeile in die Sektion "[global]" ein:

winssupport = yes

Diese Zeile sorgt dafür, dass der Samba-Server als WINS-Server im Netz arbeitet. Ist im LAN außerdem ein DHCP-Server vorhanden, so machen Sie diesen mit dem WINS-Server bekannt.

NetBIOS-Name festlegen

Der NetBIOS-Name dient als Adresse in der Windows-Netzwerkumgebung und muss im Netzwerk eindeutig sein. Dieser Parameter wird standardmäßig über den Hostnamen des Systems gesetzt. Er kann in der Samba-Konfiguration aber beeinflusst werden.

Den NetBIOS-Namen des Rechners in der Sektion "[global]" festlegen:

netbios name = {HOSTNAME}

Der NetBIOS-Name darf aus maximal 15 Zeichen bestehen, wobei außer Minus "-" und dem Unterstrich "_" keine Sonderzeichen erlaubt ist.

Sicherung der Samba-Konfiguration

Eine Samba-Konfiguration kann durchaus umfangreich sein, weshalb eine Sicherung empfohlen wird. Die Dateien, die gesichert werden sollten, sind die "smb.conf" und die tdb-Dateien, in denen die Benutzerdaten und weitere Informationen abgelegt sind.

Sie sichert man mit dem Kommando:

tdbbackup /var/lib/samba/*.tdb

NetBIOS-Kommunikation

Nach der Namensauflösung wird eine TCP-Verbindung zum Server aufgebaut. Dabei unterscheidet man zwischen zwei Ports. Bei der klassischen Variante, bei der die SMB-Verbindung über NetBIOS stattfindet, wird der Port 139 verwendet.
Bei der anderen Variante wird nicht NetBIOS verwendet, sondern die Verbindung direkt mit SMB über TCP aufgebaut und dabei Port 445 verwendet.
Welches Protokoll bzw. welcher Port verwendet wird, kann man mit folgendem Kommando auf dem Samba-Server prüfen.

netstat -l

Die Verwendung des Ports kann man steuern. Hierzu gibt es in der Samba-Konfiguration einen Parameter.

smb ports = xxx

Ob eine lokale Verbindung zu einem oder beiden Ports möglich ist, kann man mit Telnet testen.

telnet 139
telnet 445

Nach dem Aufruf der Kommandos zeigt "netstat" eine Verbindung auf dem entsprechenden Port an.

netstat -pn

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!