Kapitel 48. Samba

Inhaltsverzeichnis

48.1. Konfigurieren des Servers
48.2. Samba als Anmeldeserver
48.3. Konfigurieren eines Samba-Servers mit YaST
48.4. Konfigurieren der Clients
48.5. Optimierung

Zusammenfassung

Mit Samba kann ein Unix-Computer als Datei- und Druckserver für DOS-, Windows- und OS/2-Computer konfiguriert werden. Samba ist mittlerweile ein sehr umfassendes und komplexes Produkt. Aus diesem Grund enthält dieses Kapitel einen Einblick in seine Funktionalität sowie eine Beschreibung der Grundlagen der Samba-Konfiguration und der YaST-Module, mit denen Sie Samba in Ihrem Netzwerk konfigurieren können.

Ausführliche Informationen zu Samba finden Sie in der digitalen Dokumentation. Wenn Samba installiert ist, können Sie in der Befehlszeile apropos samba eingeben, um einige Manualpages aufzurufen. Alternativ dazu finden Sie im Verzeichnis /usr/share/doc/packages/samba weitere Online-Dokumentationen und Beispiele. Eine kommentierte Beispielkonfiguration (smb.conf.SuSE) finden Sie im Unterverzeichnis examples.

Beginnend mit Version 3 des Pakets samba stehen folgende neue Funktionen zur Verfügung:

[Tip]Migration auf Samba3

Bei der Migration von Samba 2.x nach Samba 3 sind einige Besonderheiten zu beachten. Diesem Thema wurde in der Samba-HOWTO-Collection ein eigenes Kapitel gewidmet. Nach der Installation des Pakets samba-doc finden Sie die HOWTO-Informationen im Verzeichnis /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

Samba verwendet das SMB-Protokoll (Server Message Block), das auf den NetBIOS-Diensten basiert. Auf Drängen von IBM gab Microsoft das Protokoll frei, sodass auch andere Softwarehersteller Anbindungen an ein Microsoft-Domänennetzwerk einrichten konnten. Samba setzt das SMB- auf das TCP/IP-Protokoll auf. Entsprechend muss auf allen Clients das TCP/IP-Protokoll installiert sein.

NetBIOS ist eine Softwareschnittstelle (API), die die Kommunikation zwischen Computern ermöglicht. Dabei wird ein Namensdienst bereitgestellt. Mit diesem Dienst können die an das Netzwerk angeschlossenen Computer Namen für sich reservieren. Nach dieser Reservierung können die Computer anhand ihrer Namen adressiert werden. Für die Überprüfung der Namen gibt es keine zentrale Instanz. Jeder Computer im Netzwerk kann beliebig viele Namen reservieren, sofern diese nicht bereits verwendet werden. Die NetBIOS-Schnittstelle kann in unterschiedlichen Netzwerkarchitekturen implementiert werden. Eine Implementierung, die relativ nah an der Netzwerkhardware arbeitet, nennt sich NetBEUI, wird aber häufig auch als NetBIOS bezeichnet. Mit NetBIOS implementierte Netzwerkprotokolle sind IPX (NetBIOS über TCP/IP) von Novell und TCP/IP.

Die per TCP/IP übermittelten NetBIOS-Namen haben nichts mit den in der Datei/etc/hosts oder per DNS vergebenen Namen zu tun. NetBIOS ist ein eigener, vollständig unabhängiger Namensraum. Es empfiehlt sich jedoch zwecks vereinfachter Administration, NetBIOS-Namen zu vergeben, die den jeweiligen DNS-Hostnamen entsprechen. Für einen Samba-Server ist dies die Voreinstellung.

Das Samba-Protokoll wird von allen gängigen Betriebssystemen wie Mac OS X, Windows und OS/2 unterstützt. Auf den Computern muss das TCP/IP-Protokoll installiert sein. Für die verschiedenen UNIX-Versionen stellt Samba einen Client zur Verfügung. Für Linux gibt es zudem ein Dateisystem-Kernel-Modul für SMB, dass die Integration von SMB-Ressourcen auf Linux-Systemebene ermöglicht.

SMB-Server stellen den Clients Plattenplatz in Form von Freigaben (Shares) zur Verfügung. Dabei umfasst eine Freigabe ein Verzeichnis mit dessen Unterverzeichnissen auf dem Server. Sie wird unter einem eigenen Namen exportiert und kann von Clients unter diesem Namen angesprochen werden. Der Freigabename kann frei vergeben werden. Er muss nicht dem Namen des exportierten Verzeichnisses entsprechen. Ebenso wird einem Drucker ein Name zugeordnet. Unter diesem Namen können die Clients auf den Drucker zugreifen.

48.1. Konfigurieren des Servers

Wenn Sie Samba als Server einsetzen möchten, installieren Sie samba. Manuell werden die für Samba erforderlichen Dienste mit rcnmb start && rcsmb start gestartet und mit rcsmb stop && rcnmb stop gestoppt.

Die Hauptkonfigurationsdatei von Samba ist /etc/samba/smb.conf. Diese Datei kann in zwei logische Bereiche aufgeteilt werden. Der Abschnitt [global] enthält die zentralen und globalen Einstellungen. Die [share]-Abschnitte enthalten die einzelnen Datei- und Druckerfreigaben. Mit dieser Vorgehensweise können Details der Freigaben unterschiedlich oder im Abschnitt [global] übergreifend gesetzt werden. Letzteres trägt zur Übersichtlichkeit der Konfigurationsdatei bei.

48.1.1. Der Abschnitt "global"

Die folgenden Parameter im Abschnitt [global] sind den Gegebenheiten Ihres Netzwerkes anzupassen, damit Ihr Samba-Server in einer Windows-Umgebung von anderen Computern über SMB erreichbar ist.

workgroup = TUX-NET

Mit dieser Zeile wird der Samba-Server einer Arbeitsgruppe zugeordnet. Ersetzen Sie TUX-NET durch eine entsprechende Arbeitsgruppe Ihrer Netzwerkumgebung. Der Samba-Server erscheint mit seinem DNS-Namen, sofern der Name noch nicht vergeben ist. Sollte der Name bereits vergeben sein, kann der Servername mit netbiosname=MEINNAME gesetzt werden. Weitere Informationen zu diesem Parameter finden Sie auf der Manualpage mansmb.conf.

os level = 2

Anhand dieses Parameters entscheidet Ihr Samba-Server, ob er versucht, LMB (Local Master Browser) für seine Arbeitsgruppe zu werden. Wählen Sie bewusst einen niedrigen Wert, damit ein vorhandenes Windows-Netz nicht durch einen falsch konfigurierten Samba-Server gestört wird. Weitere Informationen zu diesem wichtigen Thema finden Sie in den Dateien BROWSING.txt und BROWSING-Config.txt im Unterverzeichnis textdocs der Paketdokumentation.

Wenn im Netzwerk kein anderer SMB-Server (z. B. ein Windows NT- oder 2000-Server) vorhanden ist und der Samba-Server eine Liste aller in der lokalen Umgebung vorhandenen Systeme verwalten soll, setzen Sie den Parameter os level auf einen höheren Wert (z. B. 65). Der Samba-Server wird dann als LMB für das lokale Netzwerk ausgewählt.

Beim Ändern dieses Werts sollten Sie besonders vorsichtig sein, da dies den Betrieb einer vorhandenen Windows-Netzwerkumgebung stören könnte. Testen Sie Änderungen zuerst in einem isolierten Netzwerk oder zu unkritischen Zeiten.

wins support und wins server

Wenn Sie den Samba-Server in ein vorhandenes Windows-Netzwerk integrieren möchten, in dem bereits ein WINS-Server betrieben wird, aktivieren Sie den Parameter wins server und setzen Sie seinen Wert auf die IP-Adresse des WINS-Servers.

Sie müssen einen WINS-Server einrichten, wenn Ihre Windows-Systeme in getrennten Subnetzen betrieben werden und sich gegenseitig sehen sollen. Um einen Samba-Server als WINS-Server festzulegen, setzen Sie die Option wins support = Yes. Stellen Sie sicher, dass diese Einstellung nur auf einem einzigen Samba-Server im Netzwerk aktiviert wird. Die Optionen wins server und wins support dürfen in der Datei smb.conf niemals gleichzeitig aktiviert sein.

48.1.2. Freigaben

In den folgenden Beispielen werden einerseits das CD-ROM-Laufwerk und andererseits die Verzeichnisse der Nutzer (homes) für SMB-Clients freigegeben.

[cdrom]

Um die versehentliche Freigabe eines CD-ROM-Laufwerks zu verhindern, sind alle erforderlichen Zeilen dieser Freigabe mittels Kommentarzeichen – hier Semikolons – deaktiviert. Entfernen Sie die Semikolons in der ersten Spalte, um das CD-ROM-Laufwerk für Samba freizugeben.

Beispiel 48.1. Eine CD-ROM-Freigabe

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom] und comment

Der Eintrag [cdrom] ist der Name der Freigabe, die von allen SMB-Clients im Netzwerk gesehen werden kann. Zur Beschreibung dieser Freigabe kann ein zusätzlicher comment hinzugefügt werden.

path = /media/cdrom

path exportiert das Verzeichnis /media/cdrom.

Diese Art der Freigabe ist aufgrund einer bewusst restriktiv gewählten Voreinstellung lediglich für die auf dem System vorhandenen Benutzer verfügbar. Soll die Freigabe für alle Benutzer bereitgestellt werden, fügen Sie der Konfiguration die Zeile guest ok = yes hinzu. Durch diese Einstellung erhalten alle Benutzer im Netzwerk Leseberechtigungen. Es wird empfohlen, diesen Parameter sehr vorsichtig zu verwenden. Dies gilt umso mehr für die Verwendung dieses Parameters im Abschnitt [global].

[homes]

Eine besondere Stellung nimmt die Freigabe [homes] ein. Hat der Benutzer auf dem Linux-Dateiserver ein gültiges Konto und ein eigenes Home-Verzeichnis, so kann er eine Verbindung zu diesem herstellen.

Beispiel 48.2. homes-Freigabe

[homes] 
	comment = Home Directories 
	valid users = %S 
	browseable = No 
	read only = No 
	create mask = 0640 
	directory mask = 0750
[homes]

Insoweit keine ausdrückliche Freigabe mit dem Freigabenamen des Benutzers existiert, der die Verbindung zum SMB-Server herstellt, wird aufgrund der [homes]-Freigabe dynamisch eine Freigabe erzeugt. Dabei ist der Freigabename identisch mit dem Benutzernamen.

valid users = %S

%S wird nach erfolgreichem Verbindungsaufbau durch den konkreten Freigabenamen ersetzt. Bei einer [homes]-Freigabe ist dies immer der Benutzername. Aus diesem Grund werden die Zugriffsberechtigungen auf die Freigabe eines Benutzers immer exklusiv auf den Eigentümer des Benutzerverzeichnisses beschränkt.

browseable = No

Durch diese Einstellung wird die Freigabe in der Netzwerkumgebung unsichtbar gemacht.

read only = No

Samba untersagt Schreibzugriff auf exportierte Freigaben standardmäßig mit dem Parameter read only = Yes. Soll also ein Verzeichnis als schreibbar freigegeben werden, muss man den Wert read only = No setzen, was dem Wert writeable = Yes entspricht.

create mask = 0640

Nicht auf MS Windows NT basierende Systeme kennen das Konzept der Unix-Zugriffsberechtigungen nicht, sodass sie beim Erstellen einer Datei keine Berechtigungen zuweisen können. Der Parameter create mask legt fest, welche Zugriffsberechtigungen neu erstellten Dateien zugewiesen werden. Dies gilt jedoch nur für Freigaben mit Schreibberechtigung. Konkret wird hier dem Eigentümer das Lesen und Schreiben und Mitgliedern der primären Gruppe des Eigentümers das Lesen erlaubt. valid users = %S verhindert den Lesezugriff auch dann, wenn die Gruppe über Leseberechtigungen verfügt. Um der Gruppe Lese- oder Schreibzugriff zu gewähren, deaktivieren Sie die Zeile valid users = %S.

48.1.3. Sicherheitsstufen (Security Levels)

Das SMB-Protokoll kommt aus der DOS-/Windows-Welt und berücksichtigt die Sicherheitsproblematik direkt. Jeder Zugriff auf eine Freigabe kann mit einem Passwort geschützt werden. SMB kennt drei verschiedene Möglichkeiten der Berechtigungsprüfung:

Share Level Security (security = share):

Einer Freigabe wird ein Passwort fest zugeordnet. Jeder Benutzer, der dieses Passwort kennt, hat Zugriff auf die Freigabe.

User Level Security (security = user):

Diese Variante führt das Konzept des Benutzers in SMB ein. Jeder Benutzer muss sich bei einem Server mit einem Passwort anmelden. Nach der Authentifizierung kann der Server dann abhängig vom Benutzernamen Zugriff auf die einzelnen, exportierten Freigaben gewähren.

Server Level Security (security = server):

Seinen Clients gibt Samba vor, im User Level Mode zu arbeiten. Allerdings übergibt es alle Passwortanfragen an einen anderen User Level Mode Server, der die Authentifizierung übernimmt. Diese Einstellung erwartet einen weiteren Parameter (password server =).

Die Unterscheidung zwischen Sicherheit auf Freigabe-, Benutzer- und Serverebene (Share, User und Server Level Security) gilt für den gesamten Server. Es ist nicht möglich, einzelne Freigaben einer Serverkonfiguration mit Share Level Security und andere mit User Level Security zu exportieren. Sie können jedoch auf einem System für jede konfigurierte IP-Adresse einen eigenen Samba-Server ausführen.

Weitere Informationen zu diesem Thema finden Sie in der Samba-HOWTO-Collection. Wenn sich mehrere Server auf einem System befinden, beachten Sie die Optionen interfaces und bind interfaces only.

[Tip]Tipp

Für einfache Administrationsaufgaben mit dem Samba-Server gibt es noch das Programm "swat". Es stellt eine einfache Webschnittstelle zur Verfügung, mit der Sie den Samba-Server bequem konfigurieren können. Rufen Sie in einem Webbrowser http://localhost:901 auf und melden Sie sich als root an. Bitte beachten Sie, dass swat auch in den Dateien /etc/xinetd.d/samba und /etc/services aktiviert sein muss. Hierzu müssen Sie in /etc/xinetd.d/samba die Zeile disable in disable = no ändern. Weitere Informationen zu swat finden Sie auf der entsprechenden Manualpage.