29.10. Datei- und Druckserver für Microsoft® Windows®-Clients (Samba)

Samba ist ein beliebtes Open Source Softwarepaket, das Datei- und Druckdienste über das SMB/CIFS-Protokoll zur Verfügung stellt. Dieses Protokoll ist in Microsoft® Windows®-Systemen enthalten und kann über die Installation der Samba-Client-Bibliotheken in andere Betriebssysteme integriert werden. Das Protokoll ermöglicht es Clients auf freigegebene Daten und Drucker zuzugreifen, so als ob es sich um lokale Drucker und Festplatten handeln würde.

Unter FreeBSD können die Samba-Client-Bibliotheken über den Port oder das Paket net/samba-smbclient installiert werden. Der Client ermöglicht es einem FreeBSD-System auf SMB/CIFS-Freigaben in einem Microsoft® Windows®-Netzwerk zuzugreifen.

Ein FreeBSD-System kann auch als Samba-Server agieren. Der Administrator kann SMB/CIFS-Freigaben auf dem FreeBSD-System einrichten, auf welche dann Clients mit Microsoft® Windows® oder den Samba-Client-Bibliotheken zugreifen können. Damit ein Samba-Server konfiguriert werden kann, muss zunächst der Port oder das Paket net/samba36 installiert werden. Der Rest dieses Kapitels beschreibt, wie ein Samba-Server unter FreeBSD konfiguriert wird.

29.10.1. Konfiguration

Die Standardkonfigurationsdatei von Samba heißt /usr/local/share/examples/samba36/smb.conf.default. Diese Datei muss nach /usr/local/etc/smb.conf kopiert und angepasst werden, bevor Samba verwendet werden kann.

Die Datei smb.conf enthält Laufzeitinformationen für Samba, beispielsweise Druckerdefinitionen oder file system shares, also Bereiche des Dateisystems, die mit Windows®-Clients geteilt werden sollen. Die Konfiguration der Datei smb.conf erfolgt webbasiert über das im Samba-Paket enthaltene Programm swat.

29.10.1.1. Das Samba Web Administration Tool (SWAT) verwenden

Das Samba Web Administration Tool (SWAT) wird als Daemon von inetd aktiviert. Daher muss inetd, wie in Abschnitt 29.2, „Der inetd Super-Server beschrieben, aktiviert werden. Um swat zu aktivieren, entfernen Sie das Kommentarzeichen aus folgender Zeile in /etc/inetd.conf:

swat   stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

Wie bereits in Beispiel 29.1, „Die Konfigurationsdatei von inetd neu einlesen“ beschrieben, müssen Sie die inetd-Konfiguration neu einlesen, nachdem Sie diese Änderung durchgeführt haben.

Nachdem swat aktiviert wurde, rufen Sie im Browser die Adresse http://localhost:901 auf. Bei der ersten Anmeldung muss das root-Benutzerkonto verwendet werden.

Nach der Anmeldung an der Konfigurationseite von Samba steht die Systemdokumentation zur Verfügung. Beginnen Sie die Konfiguration mit einem Klick auf die Globals-Karteikarte. Die Einstellungen entsprechen denen des Abschnitts [global] aus /usr/local/etc/smb.conf.

29.10.1.2. Globale Einstellungen

Unabhängig davon, ob swat verwendet, oder /usr/local/etc/smb.conf direkt editiert wird, sollten zuerst folgende Richtlinien angepasst werden:

workgroup

Der Domänenname oder der Arbeitsgruppenname der Rechner, die auf den Server Zugriff haben sollen.

netbios name

Der NetBIOS-Namen fest, unter dem der Samba-Server bekannt ist. In der Regel handelt es sich dabei um den ersten Teil des DNS-Namens des Servers.

server string

Legt die Beschreibung fest, die angezeigt wird, wenn mit net view oder anderen Netzwerkprogrammen Informationen über den Server angefordert werden.

29.10.1.3. Samba absichern

Zwei der wichtigsten Einstellungen in /usr/local/etc/smb.conf betreffen das zu verwendende Sicherheitsmodell sowie das Backend-Passwortformat für die Benutzer der Samba-Clients. Die folgenden Direktiven steuern diese Optionen:

security

Die häufigsten Optionen sind security = share und security = user. Wenn die Clients Benutzernamen verwenden, die den Benutzernamen auf dem FreeBSD-Rechner entsprechen, dann sollte die Einstellung user level verwendet werden. Dies ist die Standardeinstellung. Allerdings ist es dazu erforderlich, dass sich die Clients auf dem Rechner anmelden, bevor sie auf gemeinsame Ressourcen zugreifen können.

In der Einstellung share level müssen sich Clients nicht unter Verwendung eines gültigen Logins auf dem Rechner anmelden, bevor sie auf gemeinsame Ressourcen zugreifen können. In früheren Samba-Versionen war dies die Standardeinstellung.

passdb backend

Samba erlaubt verschiedene Backend-Authentifizierungsmodelle. Clients können sich durch LDAP, NIS+, eine SQL-Datenbank oder eine Passwortdatei authentifizieren. In der Voreinstellung wird smbpasswd verwendet. Diese Methode wird im folgenden Abschnitt näher beschrieben.

Wenn smbpasswd benutzt wird, muss die Datei /usr/local/etc/samba/smbpasswd erzeugt werden, damit Samba in der Lage ist, Clients zu authentifizieren. Um den Zugriff auf UNIX®-Benutzerkonten von einem Windows®-Client aus zu ermöglichen, verwenden Sie den folgenden Befehl für die entsprechenden Benutzer:

# smbpasswd -a username

Anmerkung:

Als Backend wird inzwischen tdbsam empfohlen. Wenn Sie sich für dieses Backend entscheiden, können Sie mit dem folgenden Befehl neue Benutzerkonten anlegen:

# pdbedit -a -u username

Ausführliche Informationen zur Konfiguration von Samba finden Sie im Official Samba HOWTO.

29.10.2. Samba starten

Damit Samba beim Systemstart automatisch aktiviert wird, fügen Sie die folgende Zeile in /etc/rc.conf ein:

samba_enable="YES"

Alternativ können die beiden Dienste auch separat gestartet werden:

nmbd_enable="YES"
smbd_enable="YES"

Jetzt kann Samba direkt gestartet werden:

# service samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.

Samba verwendet drei Daemonen. Sowohl nmbd als auch smbd werden durch samba_enable gestartet. Wurde winbind name resolution services in smb.conf aktiviert, wird zusätzlich der winbindd-Daemon gestartet.

Samba kann jederzeit durch folgenden Befehl beendet werden:

# service samba stop

Samba ist ein komplexes Softwarepaket mit umfassenden Funktionen, die eine weitreichende Integration von Microsoft® Windows®-Netzwerken ermöglichen. Für eine Beschreibung dieser Zusatzfunktionen sollten Sie sich auf http://www.samba.org umsehen.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.