Inhaltsverzeichnis
Zusammenfassung
Mit Samba kann ein Unix-Computer als Datei- und Druckserver für Mac OS X-, Windows- und OS/2-Computer konfiguriert werden. Samba ist mittlerweile ein sehr umfassendes und komplexes Produkt. Konfigurieren Sie Samba mit YaST, SWAT (eine Web-Schnittstelle) oder indem Sie die Konfigurationsdatei manuell bearbeiten.
Im Folgenden werden einige Begriffe erläutert, die in der Samba-Dokumentation und im YaST-Modul verwendet werden.
Samba verwendet das SMB-Protokoll (Server Message Block), das auf den NetBIOS-Diensten basiert. Microsoft veröffentlichte das Protokoll, damit 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.
Das CIFS-Protokoll (Common Internet File System) ist ein weiteres von Samba unterstütztes Protokoll. CIFS definiert ein Standardprotokoll für den Fernzugriff auf Dateisysteme über das Netzwerk, das Benutzergruppen die netzwerkweite Zusammenarbeit und gemeinsame Dokumentbenutzung ermöglicht.
NetBIOS ist eine Softwareschnittstelle (API) für die Kommunikation zwischen Computern, die einen Name Service bereitstellen. 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, solange die Namen noch nicht Gebrauch sind. Die NetBIOS-Schnittstelle kann in unterschiedlichen Netzwerkarchitekturen implementiert werden. Eine Implementierung, die relativ eng mit der Netzwerkhardware arbeitet, ist NetBEUI (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, für eine einfachere Administration NetBIOS-Namen zu vergeben, die den jeweiligen DNS-Hostnamen entsprechen, oder DNS nativ zu verwenden. Für einen Samba-Server ist dies die Voreinstellung.
Samba-Server stellt SMB/CIFS-Dienste sowie NetBIOS over IP-Namensdienste für Clients zur Verfügung. Für Linux gibt es drei Dämonen für Samba-Server: smnd für SMB/CIFS-Dienste, nmbd für Naming Services und winbind für Authentifizierung.
Der Samba-Client ist ein System, das Samba-Dienste von einem Samba-Server über das SMB-Protokoll nutzt. 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, das die Integration von SMB-Ressourcen auf Linux-Systemebene ermöglicht. Sie brauchen für den Samba-Client keinen Dämon auszuführen.
SMB-Server stellen den Clients Ressourcen in Form von Freigaben (Shares) zur Verfügung. Freigaben sind Drucker und Verzeichnisse mit ihren Unterverzeichnissen auf dem Server. Eine Freigabe 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. Clients können mit diesem Namen auf den Drucker zugreifen.
Ein Domain Controller (DC) ist ein Server, der Konten in der Domäne verwaltet. Zur Datenreplikation stehen zusätzliche Domain Controller in einer Domäne zur Verfügung.
Zur Installation eines Samba-Servers starten Sie YaST und wählen Sie
+ aus. Wählen Sie + und schließlich aus. Bestätigen Sie die Installation der erforderlichen Pakete, um den Installationsvorgang abzuschließen.Sie können den Samba-Server automatisch (beim Booten) oder manuell starten bzw. stoppen. Start- und Stopprichtlinien sind Teil der Samba-Serverkonfiguration mit YaST, die in Abschnitt 27.4.1, „Konfigurieren eines Samba-Servers mit YaST“ beschrieben wird.
Um Samba-Dienste mit YaST zu stoppen oder zu starten, verwenden Sie rcsmb stop && rcnmb stop und starten sie mit rcnmb start && rcsmb start; bei Bedarf kümmert sich rcsmb um winbind.
+ und wählen Sie winbind, smb und nmb. In der Kommandozeile stoppen Sie für Samba erforderliche Dienste mitEs gibt zwei Möglichkeiten, Samba-Server in openSUSE® zu konfigurieren: mit YaST oder manuell. Bei der manuellen Konfiguration können Sie mehr Details einstellen, allerdings müssen Sie ohne den Komfort der Bedienoberfläche von YaST zurechtkommen.
Um einen Samba-Server zu konfigurieren, starten Sie YaST und wählen Sie
+ .Wenn Sie dieses Modul zum ersten Mal starten, wird das Dialogfeld
geöffnet und Sie werden aufgefordert, einige grundlegende Entscheidungen zur Verwaltung des Servers zu treffen. Am Ende des Konfigurationsvorgangs werden Sie aufgefordert, das Samba-Administratorpasswort ( ) einzugeben. Bei späteren Starts wird das Dialogfeld geöffnet.Der Dialog
umfasst zwei Schritte und optionale detaillierte Einstellungen:Wählen Sie unter
eine Arbeitsgruppe oder Domäne aus oder geben Sie eine neue ein und klicken Sie auf .Geben Sie im nächsten Schritt an, ob Ihr Server als CD (PDC) fungieren soll, und klicken Sie auf
.Wählen Sie, ob Samba
oder gestartet werden soll, und klicken Sie auf . Legen Sie dann im abschließenden Popup-Feld das fest.Sie können alle Einstellungen später im Dialogfeld
auf den Karteireitern , , , und ändern.Beim ersten Start des Samba-Servermoduls wird das Dialogfeld Abschnitt 27.4.1.1, „Anfängliche Samba-Konfiguration“) geöffnet. Hier passen Sie Ihre Samba-Server-Konfiguration an.
direkt nach den beiden Anfangsschritten (sieheKlicken Sie nach dem Bearbeiten Ihrer Konfiguration auf
, um Ihre Einstellungen zu speichern.Auf dem Karteireiter Abschnitt 27.3, „Starten und Stoppen von Samba“.
können Sie den Start des Samba-Servers konfigurieren. Um den Dienst bei jedem Systemboot zu starten, wählen Sie (Beim Systemstart). Um den manuellen Start zu aktivieren, wählen Sie (Manuell). Weitere Informationen zum Starten eines Samba-Servers erhalten Sie inAuf diesem Karteireiter können Sie auch Ports in Ihrer Firewall öffnen. Wählen Sie hierfür
(Firewall-Port öffnen). Wenn mehrere Netzwerkschnittstellen vorhanden sind, wählen Sie die Netzwerkschnittstelle für Samba-Dienste, indem Sie auf klicken, die Schnittstellen auswählen und dann auf klicken.Legen Sie auf dem Karteireiter
die zu aktivierenden Samba-Freigaben fest. Es gibt einige vordefinierte Freigaben wie Home-Verzeichnisse und Drucker. Mit können Sie zwischen den Statuswerten und wechseln. Klicken Sie auf , um neue Freigaben hinzuzufügen, bzw. auf , um die ausgewählte Freigabe zu entfernen.
Mit users
für eine lokale Reichweite oder DOMAIN\Users
für eine domänenweite Freigabe. Der Benutzer muss außerdem sicherstellen, dass die Berechtigungen des Dateisystems den Zugriff zulassen. Mit begrenzen Sie die Gesamtzahl der erstellbaren Freigaben. Wenn Sie den Zugriff auf Benutzerfreigaben ohne Authentifizierung zulassen möchten, aktivieren Sie .
Auf dem Karteireiter
legen Sie fest, zu welcher Domäne der Host gehört ( ) und ob ein alternativer Hostname im Netzwerk ( ) verwendet werden soll. Microsoft Windows Internet Name Service (WINS) kann auch zur Namensauflösung benutzt werden. Aktivieren Sie in diesem Fall und entscheiden Sie, ob Sie möchten. Globale Einstellungen für Experten oder eine Quelle für die Benutzerauthentifizierung können Sie festlegen, wenn Sie auf klicken.Sie ermöglichen Benutzern anderer Domänen den Zugriff auf Ihre Domäne, indem Sie die entsprechenden Einstellungen in dem Karteireiter
vornehmen. Klicken Sie zum Hinzufügen einer neuen Domäne auf . Zum Entfernen der ausgewählten Domäne klicken Sie auf .In dem Karteireiter
können Sie den LDAP-Server für die Authentifizierung festlegen. Um die Verbindung mit Ihrem LDAP-Server zu testen, klicken Sie auf . LDAP-Einstellungen für Experten oder die Verwendung von Standardwerten können Sie festlegen, wenn Sie auf klicken.Weitere Informationen zur LDAP-Konfiguration finden Sie unter Chapter LDAP—A Directory Service (↑Security Guide).
SWAT (Samba Web Administration Tool) ist ein alternativesWerkzeug für die Administrationsaufgaben von Samba. Es stellt eine einfache Webschnittstelle zur Verfügung, mit der Sie den Samba-Server konfigurieren können. Sie können SWAT verwenden, indem Sie in einem Webbrowser http://localhost:901 aufrufen und sich als root
anmelden. Wenn Sie über kein spezielles root-Konto für Samba verfügen, verwenden Sie das root
-Systemkonto.
Aktivieren von SWAT | |
---|---|
Nach der Installation von Samba-Server ist SWAT nicht aktiviert. Um SWAT zu aktivieren, öffnen Sie in YaST + , wählen Sie aus der Tabelle und klicken Sie auf . |
Wenn Sie Samba als Server verwenden möchten, installieren Sie samba
. 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 Abschnitte [share]
enthalten die einzelnen Datei- und Druckerfreigaben. Mit dieser Vorgehensweise können Details der Freigaben unterschiedlich oder im Abschnitt [global]
übergreifend festgelegt werden. Letzteres trägt zur Übersichtlichkeit der Konfigurationsdatei bei.
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 an ein anderes Gerät im Netzwerk vergeben ist. Wenn der DNS-Name nicht verfügbar ist, kann der Servername mithilfe von netbiosname=
festgelegt werden. Weitere Details zu diesem Parameter finden Sie auf der man-Seite MEINNAME
smb.conf
.
os level = 20
Anhand dieses Parameters entscheidet Ihr Samba-Server, ob er versucht, LMB (Local Master Browser) für seine Arbeitsgruppe zu werden. Bei der Samba 3-Versionsserie muss die Standardeinstellung (20
) nur selten überschrieben werden. Wählen Sie einen niedrigen Wert wie etwa 2
, damit ein vorhandenes Windows-Netz nicht durch einen falsch konfigurierten Samba-Server gestört wird. Weitere Informationen zu diesem wichtigen Thema finden Sie im Kapitel "Netzwerk-Browser" im Samba 3-HOWTO; weitere Informationen zum Smaba 3-HOWTO finden Sie unter Abschnitt 27.7, „Weiterführende Informationen“.
Wenn im Netzwerk kein anderer SMB-Server (z. B. ein Windows 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 erkennen 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.
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 eines CD-ROM-Laufwerks zu verhindern, sind alle erforderlichen Zeilen dieser Freigabe durch Kommentarzeichen (hier Semikolons) deaktiviert. Entfernen Sie die Semikolons in der ersten Spalte, um das CD-ROM-Laufwerk für Samba freizugeben.
Beispiel 27.1. Eine CD-ROM-Freigabe (deaktiviert)
;[cdrom] ; comment = Linux CD-ROM ; path = /media/cdrom ; locking = No
[cdrom]
und comment
Der Abschnittseintrag [cdrom]
stellt den Namen der Freigabe dar, 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 27.2. Freigabe [homes]
[homes] comment = Home Directories valid users = %S browseable = No read only = No create mask = 0640 directory mask = 0750
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 generiert. 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 der Wert read only = No
festgesetzt werden, 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 den 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
.
Jeder Zugriff auf eine Freigabe kann für mehr Sicherheit durch ein Passwort geschützt werden. SMB bietet die folgenden Möglichkeiten zur Überprüfung von Berechtigungen:
security = share
)Einer Freigabe wird ein Passwort fest zugeordnet. Jeder Benutzer, der dieses Passwort kennt, hat Zugriff auf die Freigabe.
security = user
)Diese Variante führt das Konzept des Benutzers in SMB ein. Jeder Benutzer muss sich beim Server mit seinem Passwort anmelden. Nach der Authentifizierung kann der Server dann abhängig vom Benutzernamen Zugriff auf die einzelnen exportierten Freigaben gewähren.
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. Für diese Einstellung ist zusätzlich der Parameter Passwortserver
erforderlich.
security = ADS
)In diesem Modus fungiert Samba als Domänenmitglied in einer Active Directory-Umgebung. Für den Betrieb in diesem Modus muss auf dem Computer, auf dem Samba ausgeführt wird, Kerberos installiert und konfiguriert sein. Der Computer, auf dem Samba verwendet wird, muss in den ADS-Bereich integriert sein. Dies kann mithilfe des YaST-Moduls
erreicht werden.security = domain
)
Dieser Modus funktioniert nur korrekt, wenn der Computer in eine Windows NT-Domäne integriert wurde. Samba versucht, den Benutzernamen und das Passwort zu validieren, indem es diese an einen Window NT-Primär-Controller oder Backup Domain Controller weiterleitet. Ein Windows NT-Server wäre ausreichend. Er erwartet, dass der Parameter für das verschlüsselte Passwort auf ja
festgelegt wurde.
Die Sicherheit auf Freigabe-, Benutzer-, Server- und Domänenebene (Share, User, Server und Domain 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 im Samba 3-HOWTO. Wenn sich mehrere Server auf einem System befinden, beachten Sie die Optionen interfaces
und bind interfaces only
.
Clients können auf den Samba-Server nur über TCP/IP zugreifen. NetBEUI oder NetBIOS über IPX können mit Samba nicht verwendet werden.
Konfigurieren Sie einen Samba-Client, um auf Ressourcen (Dateien oder Drucker) auf dem Samba-Server zuzugreifen. Geben Sie im Dialogfeld
+ die Domäne oder Arbeitsgruppe an. Wenn Sie aktivieren, erfolgt die Benutzerauthentifizierung über den Samba-Server. Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie auf , um die Konfiguration abzuschließen.
In Netzwerken, in denen sich überwiegend Windows-Clients befinden, ist es oft wünschenswert, dass sich Benutzer nur mit einem gültigen Konto und zugehörigem Passwort anmelden dürfen. In einem Windows-basierten Netzwerk wird diese Aufgabe von einem Primary Domain Controller (PDC) übernommen. Sie können einen Windows NT-Server verwenden, der als PDC konfiguriert ist; diese Aufgabe kann aber auch mithilfe eines Samba-Servers ausgeführt werden. Es müssen Einträge im Abschnitt [global]
von smb.conf
vorgenommen werden. Diese werden in Beispiel 27.3, „Abschnitt "global" in smb.conf“ beschrieben.
Beispiel 27.3. Abschnitt "global" in smb.conf
[global] workgroup = TUX-NET domain logons = Yes domain master = Yes
Wenn verschlüsselte Passwörter zur Verifizierung verwendet werden, muss der Samba-Server in der Lage sein, diese zu verwalten. Dies wird durch den Eintrag encrypt passwords = yes
im Abschnitt [global]
aktiviert (ab Samba Version 3 ist dies Standard). Außerdem müssen die Benutzerkonten bzw. die Passwörter in eine Windows-konforme Verschlüsselungsform gebracht werden. Dies erfolgt mit dem Befehl smbpasswd-a name
. Da nach dem Windows-Domänenkonzept auch die Computer selbst ein Domänenkonto benötigen, wird dieses mit den folgenden Kommandos angelegt:
useradd hostname\$ smbpasswd -a -m hostname
Mit dem Befehl useradd wird ein Dollarzeichen hinzugefügt. Der Befehl smbpasswd fügt dieses bei der Verwendung des Parameters -m
automatisch hinzu. In der kommentierten Beispielkonfiguration (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE
) sind Einstellungen enthalten, die diese Aufgabe automatisieren.
add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \ -s /bin/false %m\$
Um sicherzustellen, dass Samba dieses Skript korrekt ausführen kann, wählen Sie einen Samba-Benutzer mit den erforderlichen Administratorberechtigungen und fügen Sie ihn zur Gruppe ntadmin
hinzu. Anschließend können Sie allen Mitgliedern der Linux-Gruppe den Status Domain Admin
zuweisen, indem Sie folgendes Kommando eingeben:
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
Weitere Informationen zu diesem Thema finden Sie in Kapitel 12 in Samba 3 HOWTO (/usr/share/doc/packages/samba/Samba3-HOWTO.pdf
).
Ausführliche Informationen zu Samba finden Sie in der digitalen Dokumentation. Wenn Samba installiert ist, können Sie in der Kommandozeile apropos samba
eingeben, um einige man-Seiten 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
.
Das Samba-Team liefert in Samba 3 HOWTO einen Abschnitt zur Fehlerbehebung. In Teil V ist außerdem eine ausführliche Anleitung zum Überprüfen der Konfiguration enthalten. Nach der Installation des Pakets samba-doc
finden Sie das Samba 3 HOWTO-Dokument im Verzeichnis /usr/share/doc/packages/samba/Samba3-HOWTO.pdf
.
Lesen Sie auch die Samba-Seite im openSUSE-wiki unter http://en.openSUSE.org/Samba.