Inhaltsverzeichnis
Zusammenfassung
Mit Samba kann ein Unix-Rechner zu einem Datei- und Druckserver für DOS-, Windows- und OS/2-Rechner ausgebaut werden. Dieses Kapitel führt Sie in die Grundlagen der Sambakonfiguration ein und beschreibt die YaST-Module, mit deren Hilfe Sie Samba in Ihrem Netzwerk konfigurieren können.
Samba ist inzwischen ein sehr umfassendes
Produkt. Dieses Kapitel vermittelt einen Einblick in seine
grundlegende Funktionalität. Details finden Sie allerdings in der
mitgelieferten digitalen Dokumentation. Diese besteht einerseits aus
Handbuchseiten —
zwecks Umfang rufen Sie bitte apropos
samba auf der Kommandozeile auf — und andererseits
aus Dokumenten und Beispielen, die Sie bei installiertem
Samba auf Ihrem System unter
/usr/share/doc/packages/samba finden. Dort finden Sie
im Unterverzeichnis examples auch die kommentierte
Beispielkonfiguration smb.conf.SuSE.
Das Paket samba steht Ihnen in der
Version 3 zur Verfügung. Einige wichtige Neuerungen dieses Paketes sind:
Active Directory Support.
Unicode Support wurde stark verbessert.
Die internen Authentifizierungsmechanismen wurden komplett überarbeitet.
Verbesserte Unterstützung für das Windows 200x/XP-Drucksystem.
Konfiguration als Mitgliedsserver in Active-Directory-Domänen.
NT4-Domänenübernahme zur Migration einer NT4-Domäne zu einer Samba-Domäne.
![]() | Migration nach Samba3 |
|---|---|
Wenn Sie von Samba 2.x nach Samba 3 migrieren möchten, sind einige
Besonderheiten zu beachten. Diesem Thema wurde in der
Samba-HOWTO-Kollektion ein eigenes Kapitel gewidmet. Nach der
Installation des Paketes | |
Samba benutzt das SMB-Protokoll (Server Message Block), das auf den NetBIOS Diensten aufgesetzt ist. Auf Drängen der Firma IBM gab die Firma Microsoft das Protokoll frei, sodass auch andere Software-Hersteller Anbindungen an ein Microsoft-Domain-Netz finden konnten. Samba setzt das SMB- auf das TCP/IP-Protokoll auf. Entsprechend muss auf allen Clients das Protokoll TCP/IP installiert sein. Wir empfehlen die ausschließliche Verwendung von TCP/IP auf den Clients.
NetBIOS ist eine Softwareschnittstelle (API), die zur Rechnerkommunikation entworfen wurde. Dabei wird ein Namensdienst (engl. name service) bereitgestellt, der zur gegenseitigen Identifikation der Rechner dient. Für die Namensvergabe gibt es keine zentrale Instanz, die Rechte vergeben oder überprüfen könnte. Jeder Rechner am Netz kann beliebig Namen für sich reservieren, sofern diese noch nicht vergeben sind. Die NetBIOS-Schnittstelle kann auf unterschiedlichen Netzarchitekturen implementiert werden. Eine Implementation erfolgt relativ „dicht“ an der Netzwerkhardware und nennt sich NetBEUI. NetBEUI wird häufig als NetBIOS bezeichnet. Netzwerkprotokolle, mit denen NetBIOS implementiert wurde, sind IPX (NetBIOS über TCP/IP) von Novell und TCP/IP.
Die NetBIOS-Namen, die auch bei der Implementation von NetBIOS mittels
TCP/IP vergeben werden, haben nichts mit den in der Datei
/etc/hosts oder per DNS vergebenen Namen zu tun.
NetBIOS ist ein vollständig eigener Namensraum. Es empfiehlt sich jedoch
zwecks vereinfachter Administration, zumindest für die Server NetBIOS-Namen
zu vergeben, die ihrem DNS-Hostnamen entsprechen. Für einen Samba-Server
ist das die Voreinstellung.
Alle gängigen Betriebssysteme wie Mac OS X, Windows und OS/2 unterstützen das SMB-Protokoll. Auf den Rechnern 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 das Einbinden von SMB-Ressourcen auf Linux-Systemebene gestattet.
SMB-Server stellen den Clients Plattenplatz in Form von Freigaben, so genannten „Shares“ zur Verfügung. Dabei umfasst ein Share ein Verzeichnis mit allen Unterverzeichnissen auf dem Server. Es wird unter einem eigenen Namen exportiert und kann von Clients unter diesem Namen angesprochen werden. Dabei kann der Sharename frei vergeben werden. Er muss nicht dem Namen des exportierten Verzeichnisses entsprechen. Ebenso wird einem exportierten Drucker ein Name zugeordnet, unter dem Clients darauf zugreifen können.
Wenn Sie Samba als Server einsetzen möchten,
installieren Sie das Paket samba.
Manuell werden die für Samba erforderlichen
Dienste mit rcnmb start & & rcsmb start gestartet
und mit rcsmb stop & & rcnmb stop beendet.
Die zentrale Konfigurationsdatei von Samba ist
/etc/samba/smb.conf. Die Datei kann man logisch in zwei
Bereiche trennen. In der [global]-Section
werden zentrale und übergreifende Einstellungen vorgenommen. Im zweiten
Teilbereich, den [share]-Sections, werden die einzelnen
Datei- und Drucker-Freigaben definiert. Mittels dieses Vorgehens können
Details der Freigaben unterschiedlich oder in der
[global]-Sektion übergreifend gesetzt werden. Letzteres
trägt zur Übersichtlichkeit der Konfigurationsdatei bei.
Die folgenden Parameter der global-Section sind den
Gegebenheiten Ihres Netzwerkes anzupassen, damit Ihr
Samba-Server im Windows-Netz von anderen
Systemen per SMB erreichbar ist.
Der Samba-Server wird mittels dieser Zeile
einer Arbeitsgruppe zugeordnet. Zum Betrieb passen Sie
TUX-NET an die bei Ihnen vorhandene Arbeitsgruppe an
oder konfigurieren Ihren Clients auf den hier gewählten Wert. Ihr
Samba-Server erscheint bei dieser
Konfiguration mit seinem DNS-Namen in der gewählten Arbeitsgruppe,
insoweit der Name noch nicht vergeben ist.
Sollte der Name bereits vergeben sein, kann er mit netbios name
= MEINNAME abweichend vom DNS-Namen gesetzt werden. Details
zu diesem Parameter sind per man
smb.conf verfügbar.
Anhand dieses Parameters entscheidet Ihr
Samba-Server, ob er versucht, LMB
(engl. Local Master Browser) für seine Arbeitsgruppe zu werden.
Der im Beispiel genutzte Wert ist bewusst niedrig gewählt, damit
ein vorhandenes Windows-Netz nicht durch einen falsch
konfigurierten Samba-Server gestört
wird. Details zu diesem wichtigen Thema finden Sie in den
Dateien BROWSING.txt und
BROWSING-Config.txt im Unterverzeichnis
textdocs der Paketdokumentation.
Wird nicht bereits ein SMB-Server — zum Beispiel Windows
NT, 2000 Server — betrieben und soll der Samba-Server im
lokalen Netz die Namen der verfügbaren Systeme vorhalten, so
erhöhen Sie den os level auf einen höheren
Wert (zum Beispiel 65), um die Wahl zum LMB zu gewinnen.
Bei der Änderung dieses Wertes sollten Sie besonders vorsichtig sein, da Sie den Betrieb eines vorhandenen Windows-Netzes stören können. Testen Sie Änderungen zuerst in einem isolierten Netz oder zu unkritischen Zeiten.
Wenn Sie den Samba-Server in ein vorhandenes
Windows-Netz integrieren möchten, in dem bereits ein WINS-Server
betrieben wird, benötigen Sie den Parameter wins
server. Dieser Parameter muss auf die IP-Adresse Ihres
WINS-Servers gesetzt werden.
Wenn Ihre Windows-Systeme in getrennten Sub-Netzen betrieben werden, und
sich gegenseitig sehen sollen, benötigen Sie einen WINS-Server. Um den
Samba-Server zum WINS-Server zu machen,
benötigen Sie die Option wins support = Yes.
Achten Sie unbedingt darauf, dass Sie diesen Parameter ausschließlich
bei einem Samba-Server aktivieren.
In Ihrer smb.conf dürfen nie beide Optionen,
wins server und wins support,
zusammen aktiviert werden.
In den folgenden Beispielen werden einerseits das CD-ROM-Laufwerk und
andererseits die Verzeichnisse der Nutzer, homes für
SMB-Clients freigegeben.
Um die versehentliche Freigabe einer CD-ROM zu verhindern, sind alle erforderlichen Zeilen dieser Freigabe mittels Kommentarzeichen – hier Semikolons – deaktiviert. Wollen Sie das CD-ROM-Laufwerk per Samba freigeben, entfernen Sie bitte die Semikolons in der ersten Spalte.
Beispiel 32.1. CD-ROM-Freigabe
;[cdrom]
; comment = Linux CD-ROM
; path = /media/cdrom
; locking = No
[cdrom] und comment
Der Eintrag [cdrom] ist der den SMB-Clients
sichtbare Freigabename. Mittels comment kann den
Clients eine aussagekräftigere Bezeichnung der Freigabe mitgeteilt
werden.
path = /media/cdrom
Mit path wird das Verzeichnis
media/cdrom exportiert.
Diese Art der Freigabe ist aufgrund einer bewusst restriktiv gewählten
Voreinstellung lediglich für die auf dem System vorhandenen Nutzer
verfügbar. Soll die Freigabe für jedermann bereitgestellt werden,
ermöglicht man dies mit der zusätzlichen Zeile guest ok =
Yes.
Aufgrund der sich daraus ergebenden Lesemöglichkeit für
jedermann, sollte man mit dieser Einstellung sehr vorsichtig umgehen und
sie allein auf ausgesuchte Freigaben anwenden. Für die Verwendung in der
[global]-Section gilt besondere Vorsicht.
Eine besondere Stellung nimmt die so genannte
[homes]-Freigabe ein. Hat der Benutzer auf dem
Linux-File-Server einen gültigen Account und ein eigenes
Home-Verzeichnis, so kann sich sein Client bei gültiger Nutzerkennung
und Passwort mit diesem verbinden.
Beispiel 32.2. Freigabe homes
[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 sich
verbindenden Nutzers existiert, wird aufgrund der
[homes]-Freigabe dynamisch eine Freigabe erzeugt.
Dabei ist der Freigabename identisch mit dem Nutzernamen.
valid users = %S
Das %S wird nach erfolgreichem Verbindungsaufbau
durch den konkreten Freigabenamen ersetzt. Da dies bei der
[homes]-Freigabe immer mit dem Nutzernamen
identisch ist, werden die zulässigen Nutzer auf den Eigentümer des
Nutzerverzeichnisses beschränkt. Dies ist eine Möglichkeit, um den
Zugriff allein dem Eigentümer zu gestatten.
browseable = No
Durch diese Einstellung ist die [homes]-Freigabe
nicht in der Liste der Freigaben sichtbar.
read only = No
Samba verbietet in der Voreinstellung den
Schreibzugriff auf exportierte Freigaben, read only =
Yes. Soll also ein Verzeichnis als schreibbar freigegeben
werden, muss man den Wert read only = No setzten.
Dies ist gleichbedeutend mit writeable = Yes.
create mask = 0640
Nicht auf MS Windows NT basierende Systeme kennen das Konzept der
Unix-Zugriffsrechte nicht. Daher können sie bei der Erstellung von
Dateien auch nicht angeben, mit welchen Zugriffsrechten dies zu
geschehen hat. Der Parameter create mask legt
fest, mit welchen Zugriffsrechten Dateien angelegt werden. Dieses
gilt nur für schreibbare Shares. Konkret wird hier dem Eigentümer das
Lesen und Schreiben und Mitgliedern der primären Gruppe des
Eigentümers das Lesen erlaubt. Bitte beachten Sie, dass
valid users = %S selbst dann den lesenden Zugriff
verhindert, wenn die Gruppe leseberechtigt ist. Entsprechend muss bei
gewünschtem Lese- oder Schreibzugriff für die Gruppe die Zeile
valid users = %S deaktiviert werden.
Das SMB-Protokoll kommt aus der DOS-/Windows-Welt und berücksichtigt die Sicherheitsproblematik direkt. Jeder Zugang zu einem Share kann mit einem Passwort geschützt werden. SMB kennt drei verschiedene Möglichkeiten der Berechtigungsprüfung.
Bei der Share Level Security wird einem Share ein Passwort fest zugeordnet. Jeder, der dieses Passwort kennt, hat Zugriff auf das Share.
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, Zugang zu den einzelnen, exportierten Shares gewähren.
Samba behauptet gegenüber den Clients, 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 Share, User und Server Level Security gilt für den gesamten Server. Es ist nicht möglich, einzelne Shares einer Server-Konfiguration per Share Level Security und andere per User Level Security zu exportieren. Jedoch können Sie auf einem System pro konfigurierter IP-Adresse einen eigenen Samba-Server betreiben.
Weitere Infos zu diesem Thema finden Sie in der Samba-HOWTO-Collection. Für
mehrere Server auf einem System beachten Sie bitte die Parameter
interfaces und bind interfaces only.
![]() | Tipp |
|---|---|
Für die einfache Administration des Samba-Servers gibt es noch das
Programm swat. Es stellt ein einfaches
Webinterface zur Verfügung, mit dem Sie bequem den Samba-Server
konfigurieren können. Rufen Sie in einem Webbrowser http://localhost:901 auf und loggen Sie sich als Benutzer root
ein. Bitte beachten Sie, dass swat auch in den
Dateien | |