Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Server-Dokumentation / Administrationshandbuch / Services / Samba
Gilt für SUSE Linux Enterprise Server 12 SP5

29 Samba

Mit Samba kann ein Unix-Computer als Datei- und Druckserver für macOS-, Windows- und OS/2-Computer konfiguriert werden. Samba ist mittlerweile ein sehr umfassendes und komplexes Produkt. Konfigurieren Sie Samba mit YaST oder indem Sie die Konfigurationsdatei manuell bearbeiten.

29.1 Terminologie

Im Folgenden werden einige Begriffe erläutert, die in der Samba-Dokumentation und im YaST-Modul verwendet werden.

SMB-Protokoll

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.

Tipp
Tipp: IBM Z: Unterstützung für NetBIOS

IBM Z unterstützt nur SMB über TCP/IP. NetBIOS-Unterstützung ist auf diesen Systemen nicht verfügbar.

CIFS-Protokoll

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

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

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: smbd für SMB/CIFS-Dienste, nmbd für Naming Services und winbind für Authentifizierung.

Samba-Client

Der Samba-Client ist ein System, das Samba-Dienste von einem Samba-Server über das SMB-Protokoll nutzt. Das Samba-Protokoll wird von gängigen Betriebssystemen wie Windows und MacOS 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.

Freigaben

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.

DC

Ein Domänencontroller (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.

29.2 Installieren eines Samba-Servers

Zur Installation eines Samba-Servers starten Sie YaST, und wählen Sie Software › Software installieren oder löschen. Wählen Sie Anzeigen › Schemata und dann Dateiserver. Bestätigen Sie die Installation der erforderlichen Pakete, um den Installationsvorgang abzuschließen.

29.3 Starten und Stoppen von Samba

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 29.4.1, „Konfigurieren eines Samba-Servers mit YaST“ beschrieben ist.

Beenden Sie die Dienste für Samba. Geben Sie hierzu in einer Befehlszeile den Befehl systemctl stop smb nmb ein und starten Sie die Dienste dann mit systemctl start nmb smb neu. winbind wird bei Bedarf durch den Dienst smb eingestellt.

Tipp
Tipp: winbind

winbind ist ein unabhängiger Dienst und wird als solcher auch als einzelnes samba-winbind-Paket angeboten.

29.4 Konfigurieren eines Samba-Servers

Es gibt zwei Möglichkeiten, Samba-Server in SUSE® Linux Enterprise Server 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.

29.4.1 Konfigurieren eines Samba-Servers mit YaST

Um einen Samba-Server zu konfigurieren, starten Sie YaST und wählen Sie Netzwerkdienste › Samba-Server.

29.4.1.1 Anfängliche Samba-Konfiguration

Wenn Sie dieses Modul zum ersten Mal starten, wird das Dialogfeld Samba-Installation 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 (Samba-Root-Passwort) einzugeben). Bei späteren Starts wird das Dialogfeld Samba-Konfiguration geöffnet.

Der Dialog Samba-Installation umfasst zwei Schritte und optionale detaillierte Einstellungen:

Arbeitsgruppe oder Domäne

Wählen Sie unter Arbeitsgruppe oder Domäne eine Arbeitsgruppe oder Domäne aus oder geben Sie eine neue ein und klicken Sie auf Weiter.

Samba-Servertyp

Geben Sie im nächsten Schritt an, ob Ihr Server als Primary Domain Controller (PDC), Backup Domain Controller (BDC) oder nicht als Domain Controller agieren soll. Fahren Sie mit Weiter fort.

Falls Sie keine detaillierte Serverkonfiguration vornehmen möchten, bestätigen Sie dies mit OK. Legen Sie dann im abschließenden Popup-Feld das root-Passwort für Samba fest.

Sie können alle Einstellungen später im Dialogfeld Samba-Konfiguration auf den Karteireitern Start, Freigaben, Identität, Verbürgte Domänen und LDAP-Einstellungen ändern.

29.4.1.2 Erweiterte Samba-Konfiguration

Beim ersten Start des Samba-Servermoduls wird das Dialogfeld Samba-Konfiguration direkt nach den beiden Anfangsschritten (siehe Abschnitt 29.4.1.1, „Anfängliche Samba-Konfiguration“) geöffnet. Hier passen Sie Ihre Samba-Server-Konfiguration an.

Klicken Sie nach dem Bearbeiten Ihrer Konfiguration auf OK, um Ihre Einstellungen zu speichern.

29.4.1.2.1 Starten des Servers

Auf dem Karteireiter Start können Sie den Start des Samba-Servers konfigurieren. Um den Dienst bei jedem Systemboot zu starten, wählen Sie During Boot (Beim Systemstart). Um den manuellen Start zu aktivieren, wählen Sie Manually (Manuell). Weitere Informationen zum Starten eines Samba-Servers erhalten Sie in Abschnitt 29.3, „Starten und Stoppen von Samba“.

Auf diesem Karteireiter können Sie auch Ports in Ihrer Firewall öffnen. Wählen Sie hierfür Open Port in Firewall (Firewall-Port öffnen). Wenn mehrere Netzwerkschnittstellen vorhanden sind, wählen Sie die Netzwerkschnittstelle für Samba-Dienste, indem Sie auf Firewall-Details klicken, die Schnittstellen auswählen und dann auf OK klicken.

29.4.1.2.2 Freigaben

Legen Sie auf dem Karteireiter Freigaben die zu aktivierenden Samba-Freigaben fest. Es gibt einige vordefinierte Freigaben wie Home-Verzeichnisse und Drucker. Mit Status wechseln können Sie zwischen den Statuswerten Aktiviert und Deaktiviert wechseln. Klicken Sie auf Hinzufügen, um neue Freigaben hinzuzufügen, bzw. auf Löschen, um die ausgewählte Freigabe zu entfernen.

Mit Benutzern die Freigabe ihrer Verzeichnisse erlauben können Mitglieder der Gruppe in Zulässige Gruppe ihre eigenen Verzeichnisse für andere Benutzer freigeben. Zum Beispiel 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 Maximale Anzahl an Freigaben begrenzen Sie die Gesamtzahl der erstellbaren Freigaben. Wenn Sie den Zugriff auf Benutzerfreigaben ohne Authentifizierung zulassen möchten, aktivieren Sie Gastzugriff erlauben.

29.4.1.2.3 Identität

Auf dem Karteireiter Identität legen Sie fest, zu welcher Domäne der Host gehört (Grundeinstellungen) und ob ein alternativer Hostname im Netzwerk (NetBIOS-Hostname) verwendet werden soll. Microsoft Windows Internet Name Service (WINS) kann auch zur Namensauflösung benutzt werden. Aktivieren Sie in diesem Fall WINS zur Hostnamenauflösung verwenden und entscheiden Sie, ob Sie WINS-Server via DHCP abrufen möchten. Zum Festlegen globaler Einstellungen für Experten oder einer Quelle zur Benutzerauthentifizierung (zum Beispiel LDAP- anstelle von TDB-Datenbank) klicken Sie auf Erweiterte Einstellungen.

29.4.1.2.4 Verbürgte Domänen

Sie ermöglichen Benutzern anderer Domänen den Zugriff auf Ihre Domäne, indem Sie die entsprechenden Einstellungen in dem Karteireiter Verbürgte Domänen vornehmen. Klicken Sie zum Hinzufügen einer neuen Domäne auf Hinzufügen. Zum Entfernen der ausgewählten Domäne klicken Sie auf Löschen.

29.4.1.2.5 LDAP-Einstellungen

In dem Karteireiter LDAP-Einstellungen können Sie den LDAP-Server für die Authentifizierung festlegen. Um die Verbindung mit Ihrem LDAP-Server zu testen, klicken Sie auf Verbindung testen. LDAP-Einstellungen für Experten oder die Verwendung von Standardwerten können Sie festlegen, wenn Sie auf Erweiterte Einstellungen klicken.

Weitere Informationen zur LDAP-Konfiguration finden Sie unter Chapter 5, LDAP—A Directory Service.

29.4.2 Manuelles Konfigurieren des Servers

Wenn Sie Samba als Server verwenden möchten, installieren Sie samba. Die Hauptkonfigurationsdatei für 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 folgenden Abschnitte enthalten die einzelnen Datei- und Druckerfreigaben:

  • [homes]

  • [Profile]

  • [Benutzer]

  • [Gruppen]

  • [Drucker]

  • [drucken$]

Auf diese Weise können unterschiedliche Optionen für die einzelnen Freigaben festgelegt werden (oder auch global im Abschnitt [global]), sodass die Konfigurationsdatei einfacher zu verstehen ist.

29.4.2.1 Der Abschnitt „global“

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

Arbeitsgruppe = ARBEITSGRUPPE

Mit dieser Zeile wird der Samba-Server einer Arbeitsgruppe zugeordnet. Ersetzen Sie ARBEITSGRUPPE 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=MEINNAME festgelegt werden. Weitere Details zu diesem Parameter finden Sie auf der man-Seite 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. 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 Thema finden Sie im Kapitel „Netzwerk-Browser“ im Samba 3-HOWTO; weitere Informationen zum Samba 3-HOWTO finden Sie unter Abschnitt 29.9, „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.

29.4.2.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 durch Kommentarzeichen (hier Semikolons) deaktiviert. Entfernen Sie die Semikolons in der ersten Spalte, um das CD-ROM-Laufwerk für Samba freizugeben.

Beispiel 29.1: Eine CD-ROM-Freigabe
[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 29.2: Freigabe [homes]
[homes]
        comment = Home Directories
        valid users = %S
        browseable = No
        read only = No
        inherit acls = Yes
[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 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.

Warnung
Warnung: Keine Freigabe von NFS-Einhängungen für Samba

Wenn Sie NFS-Einhängungen für Samba freigeben, kann dies zu Datenverlust führen. Diese Vorgehensweise wird daher nicht unterstützt. Installieren Sie Samba direkt auf dem Dateiserver oder ziehen Sie Alternativen wie iSCSI in Erwägung.

29.4.2.3 Sicherheitsstufen (Security Levels)

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:

Sicherheitsstufe „Benutzer“ (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.

Sicherheitsstufe „ADS“ (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 Windows-Domänenmitgliedschaft erreicht werden.

Sicherheitsstufe „Domäne“ (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.

29.5 Konfigurieren der Clients

Clients können auf den Samba-Server nur über TCP/IP zugreifen. NetBEUI oder NetBIOS über IPX können mit Samba nicht verwendet werden.

29.5.1 Konfigurieren eines Samba-Clients mit YaST

Konfigurieren Sie einen Samba-Client, um auf Ressourcen (Dateien oder Drucker) auf dem Samba- oder Windows-Server zuzugreifen. Geben Sie im Dialogfeld Netzwerkdienste › Windows-Domänenmitgliedschaft die NT- oder Active Directory-Domäne oder -Arbeitsgruppe an. Wenn Sie Zusätzlich SMB-Informationen für Linux-Authentifizierung verwenden aktivieren, erfolgt die Benutzerauthentifizierung über den Samba, NT- oder Kerberos-Server.

Klicken Sie für erweiterte Konfigurationsoptionen auf Einstellungen für Experten. Sie können z. B. über die Tabelle Serververzeichnisse einhängen das automatische Einhängen des Server-Basisverzeichnisses bei der Authentifizierung aktivieren. Auf diese Weise können Benutzer auf Ihre Home-Verzeichnisse zugreifen, wenn sie auf CIFS gehostet werden. Einzelheiten finden Sie auf der man-Seite zu pam_mount.

Bestätigen Sie zum Abschluss alle Einstellungen, um die Konfiguration zu beenden.

29.6 Samba als Anmeldeserver

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 29.3, „Abschnitt „global“ in smb.conf“ beschrieben.

Beispiel 29.3: Abschnitt „global“ in smb.conf
[global]
    workgroup = WORKGROUP
    domain logons = Yes
    domain master = Yes

Die Benutzerkonten und Passwörter müssen in ein Windows-konformes Verschlüsselungsformat umgewandelt werden. Verwenden Sie hierfür den 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

29.7 Samba-Server im Netzwerk mit Active Directory

Wenn Sie Linux- und Windows-Server gemeinsam ausführen, können Sie zwei unabhängige Authentifizierungssysteme und -netzwerke aufbauen oder die Server mit einem Netzwerk verbinden, das über ein zentrales Authentifizierungssystem verfügt. Da Samba mit einer Active Directory-Domäne zusammenarbeitet, können Sie SUSE Linux Enterprise Server zu Active Directory (AD) beitreten lassen.

So erfolgt der Beitritt zu einer AD-Domäne:

  1. Melden Sie sich als root an und starten Sie YaST.

  2. Starten Sie Netzwerkdienste › Windows-Domänenmitgliedschaft.

  3. Geben Sie die zu verbindende Domäne unter Domäne oder Arbeitsgruppe im Dialogfeld Windows-Domänenmitgliedschaft an.

    Festlegen der Windows-Domänenmitgliedschaft
    Abbildung 29.1: Festlegen der Windows-Domänenmitgliedschaft
  4. Aktivieren Sie Zusätzlich SMB-Informationen für Linux-Authentifikation verwenden, um die SMB-Quelle für die Linux-Authentifizierung auf dem Server zu nutzen.

  5. Klicken Sie auf OK und bestätigen Sie nach Aufforderung die Domänenverbindung.

  6. Geben Sie das Passwort für den Windows-Administrator auf dem AD-Server an und klicken Sie auf OK.

    Ihr Server ist jetzt so eingerichtet, dass alle Authentifizierungsdaten vom Active Directory-Domänencontroller abgerufen werden.

Tipp
Tipp: Identitätszuordung

In einer Umgebung mit mehreren Samba-Servern werden die UIDs und GIDs nicht einheitlich erstellt. Die UIDs, die den Benutzern zugewiesen werden, sind abhängig von der Reihenfolge, in der sich diese Benutzer erstmalig anmelden. Dies führt zu UID-Konflikten über die Server hinweg. Zur Behebung dieses Problems ist die Identitätszuordnung erforderlich. Weitere Einzelheiten finden Sie unter https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/idmapper.html.

29.8 Weitere Themen

In diesem Abschnitt lernen Sie fortgeschrittene Vefahren zur Verwaltung des Client- und des Serverteils der Samba-Suite kennen.

29.8.1 Transparente Dateikomprimierung mit Btrfs

Mit Samba können die Clients die Flags für die Datei- und Verzeichniskomprimierung für Freigaben, die sich im Btrfs-Dateisystem befinden, im Fernverfahren bearbeiten. Windows Explorer bietet im Dialogfeld Datei › Eigenschaften › Erweitert die Möglichkeit, die Dateien/Verzeichnisse zur transparenten Komprimierung zu kennzeichnen:

Dialogfeld Erweiterte Attribute in Windows Explorer
Abbildung 29.2: Dialogfeld Erweiterte Attribute in Windows Explorer

Die zur Komprimierung gekennzeichneten Dateien werden beim Zugreifen oder Ändern transparent durch das zugrunde liegende Dateisystem komprimiert bzw. dekomprimiert. Damit sparen Sie Speicherplatz, doch beim Zugreifen auf die Datei wird die CPU stärker beansprucht. Neue Dateien und Verzeichnisse übernehmen das Komprimierungs-Flag vom übergeordneten Verzeichnis, sofern sie nicht mit der Option FILE_NO_COMPRESSION erstellt werden.

Komprimierte Dateien und Verzeichnisse werden in Windows Explorer anders dargestellt als nicht komprimierte Dateien und Verzeichnisse:

Windows Explorer-Anzeige mit komprimierten Dateien
Abbildung 29.3: Windows Explorer-Anzeige mit komprimierten Dateien

Sie können die Komprimierung der Samba-Freigabe wahlweise manuell aktivieren (fügen Sie hierzu

vfs objects = btrfs

in die Freigabekonfiguration in /etc/samba/smb.conf ein) oder mit YaST. Wählen Sie hierzu Netzwerkdienste › Samba-Server › Hinzufügen, und aktivieren Sie die Option Btrfs-Funktionen verwenden.

Eine allgemeine Übersicht über die Komprimierung in Btrfs finden Sie in Section 1.2.2.1, “Mounting Compressed Btrfs File Systems”.

29.8.2 Aufnahmen

Snapshots (auch als Schattenkopien bezeichnet) sind Kopien des Zustands eines Subvolumens in einem Dateisystem zu einem bestimmten Zeitpunkt. Die Verwaltung dieser Snapshots in Linux erfolgt mit Snapper. Die Snapshots werden auf dem Btrfs-Dateisystem sowie auf LVM-Volumes mit Thin-Provisioning unterstützt. Die Samba-Suite unterstützt die Verwaltung von Remote-Snapshots über das FSRVP-Protokoll sowohl auf Server- als auch auf Clientseite.

29.8.2.1 Frühere Versionen

Die Snapshots auf einem Samba-Server können für entfernte Windows-Clients als Datei- oder Verzeichnis-Vorgängerversionen gezeigt werden.

Zum Aktivieren von Snapshots auf einem Samba-Server müssen die folgenden Voraussetzungen erfüllt sein:

  • Die SMB-Netzwerkfreigabe befindet sich auf einem Btrfs-Subvolume.

  • Für den Pfad der SMB-Netzwerkfreigabe ist eine zugehörige Snapper-Konfigurationsdatei vorhanden. Sie können die Snapper-Datei wie folgt erstellen:

    snapper -c <cfg_name> create-config /path/to/share

    Weitere Informationen zu Snapper finden Sie in Kapitel 7, Systemwiederherstellung und Snapshot-Verwaltung mit Snapper.

  • Der Snapshot-Verzeichnisbaum muss den Zugriff für relevante Benutzer ermöglichen. Weitere Informationen finden Sie auf der man-Seite zu vfs_snapper (man 8 vfs_snapper) im Abschnitt zu den Berechtigungen.

Sollen Remote-Snapshots unterstützt werden, müssen Sie die Datei /etc/samba/smb.conf bearbeiten. Verwenden Sie hierzu wahlweise YaST › Netzwerkdienste › Samba-Server, oder bearbeiten Sie den relevanten Freigabeabschnitt manuell mit

vfs objects = snapper

Damit die manuellen Änderungen an smb.conf in Kraft treten, müssen Sie den Samba-Service wie folgt neu starten:

systemctl restart nmb smb
Hinzufügen einer neuen Samba-Freigabe mit aktivierter Snapshot-Aufnahme
Abbildung 29.4: Hinzufügen einer neuen Samba-Freigabe mit aktivierter Snapshot-Aufnahme

Nach der Konfiguration können Sie auf die Snapshots, die Snapper für den Samba-Freigabepfad erstellt hat, in Windows Explorer über die Registerkarte Vorgängerversionen für eine Datei oder ein Verzeichnis zugreifen.

Die Registerkarte Vorgängerversionen in Windows Explorer
Abbildung 29.5: Die Registerkarte Vorgängerversionen in Windows Explorer

29.8.2.2 Remote-Snapshots für Freigaben

Standardmäßig können Snapshots lediglich lokal auf dem Samba-Server erstellt und gelöscht werden (mit dem Kommandozeilenprogramm Snapper oder mit der Zeitleistenfunktion in Snapper).

Sie können Samba so konfigurieren, dass Anfragen zum Erstellen und Löschen von Snapshots für Freigaben verarbeitet werden, die von entfernten Hosts über das FSRVP (File Server Remote VSS-Protokoll) gesendet werden.

Neben den Konfigurationsschritten und Voraussetzungen in Abschnitt 29.8.2.1, „Frühere Versionen“ ist die folgende globale Konfiguration in /etc/samba/smb.conf erforderlich:

[global]
rpc_daemon:fssd = fork
registry shares = yes
include = registry

FSRVP-Clients (auch rpcclient in Samba und DiskShadow.exe in Windows Server 2012) können dann Samba anweisen, einen Snapshot für eine bestimmte Freigabe zu erstellen und den Snapshot als neue Freigabe zu zeigen.

29.8.2.3 Fernverwaltung von Snapshots in Linux mit rpcclient

Das Paket samba-client umfasst einen FSRVP-Client, der im Fernverfahren eine Anfrage an einen Windows-/Samba-Server stellen kann, einen Snapshot für eine bestimmte Freigabe zu erstellen und zu zeigen. Anschließend können Sie die gezeigte Freigabe mit den vorhandenen Werkzeugen in SUSE Linux Enterprise Server einhängen und die Dateien in dieser Freigabe sichern. Die Anfragen werden über die Binärdatei rpcclient an den Server gesendet.

Beispiel 29.4: Anfordern eines Snapshots für eine Windows Server 2012-Freigabe mit rpcclient

Stellen Sie eine Verbindung zum Server win-server.example.com als Administrator in der Domäne EXAMPLE her:

# rpcclient -U 'EXAMPLE\Administrator' ncacn_np:win-server.example.com[ndr64,sign]
Enter EXAMPLE/Administrator's password:

Überprüfen Sie, ob die SMB-Freigabe für rpcclient sichtbar ist:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path:   C:\Shares\windows_server_2012_share
password:       (null)

Überprüfen Sie, ob die SMB-Freigabe das Erstellen von Snapshots unterstützt:

rpcclient $> fss_is_path_sup windows_server_2012_share \
UNC \\WIN-SERVER\windows_server_2012_share\ supports shadow copy requests

Fordern Sie die Erstellung eines Snapshots für eine Freigabe an:

rpcclient $> fss_create_expose backup ro windows_server_2012_share
13fe880e-e232-493d-87e9-402f21019fb6: shadow-copy set created
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy added to set
13fe880e-e232-493d-87e9-402f21019fb6: prepare completed in 0 secs
13fe880e-e232-493d-87e9-402f21019fb6: commit completed in 1 secs
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
share windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777} \
exposed as a snapshot of \\WIN-SERVER\windows_server_2012_share\

Überprüfen Sie, ob der Snapshot der Freigabe durch den Server gezeigt wird:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path:   C:\Shares\windows_server_2012_share
password:       (null)

netname: windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777}
remark: (null)
path:   \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{F6E6507E-F537-11E3-9404-B8AC6F927453}\Shares\windows_server_2012_share\
password:       (null)

Versuchen Sie, den Snapshot der Freigabe zu löschen:

rpcclient $> fss_delete windows_server_2012_share \
13fe880e-e232-493d-87e9-402f21019fb6 1c26544e-8251-445f-be89-d1e0a3938777
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy deleted

Überprüfen Sie, ob der Snapshot der Freigabe durch den Server entfernt wurde:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path:   C:\Shares\windows_server_2012_share
password:       (null)

29.8.2.4 Fernverwaltung von Snapshots in Windows mit DiskShadow.exe

Sie können Snapshots von SMB-Freigaben auf dem Linux Samba-Server auch über die Windows-Umgebung, die als Client auftritt, verwalten. Mit dem Dienstprogramm DiskShadow.exe in Windows Server 2012 verwalten Sie Remote-Freigaben ähnlich wie mit rpcclient (siehe Abschnitt 29.8.2.3, „Fernverwaltung von Snapshots in Linux mit rpcclient). Zunächst muss jedoch der Samba-Server ordnungsgemäß eingerichtet werden.

Im Folgenden wird erläutert, wie Sie einen Samba-Server so konfigurieren, dass der Windows Server-Client die Snapshots der Freigaben auf dem Samba-Server verwalten kann. EXAMPLE ist der Name der Active Directory-Domäne in der Testumgebung, fsrvp-server.example.com ist der Hostname des Samba-Servers und /srv/smb ist der Pfad zur SMB-Freigabe.

Vorgehen 29.1: Ausführliche Konfiguration des Samba-Servers
  1. Treten Sie der Active Directory-Domäne mithilfe von YaST bei. Weitere Informationen, Abschnitt 29.7, „Samba-Server im Netzwerk mit Active Directory“.

  2. Prüfen Sie, ob der DNS-Eintrag der Active Directory-Domäne korrekt ist:

    fsrvp-server:~ # net -U 'Administrator' ads dns register \
    fsrvp-server.example.com <IP address>
    Successfully registered hostname with DNS
  3. Erstellen Sie ein Btrfs-Subvolume unter /srv/smb:

    fsrvp-server:~ # btrfs subvolume create /srv/smb
  4. Erstellen Sie eine Snapper-Konfigurationsdatei für den Pfad /srv/smb:

    fsrvp-server:~ # snapper -c <snapper_config> create-config /srv/smb
  5. Erstellen Sie eine neue Freigabe mit dem Pfad /srv/smb und aktivieren Sie in YaST das Kontrollkästchen Snapshots zeigen. Fügen Sie in jedem Fall die folgenden Snippets in den globalen Abschnitt der Datei /etc/samba/smb.conf ein (siehe Abschnitt 29.8.2.2, „Remote-Snapshots für Freigaben“):

    [global]
     rpc_daemon:fssd = fork
     registry shares = yes
     include = registry
  6. Starten Sie Samba mit systemctl restart nmb smb neu.

  7. Konfigurieren Sie die Snapper-Berechtigungen:

    fsrvp-server:~ # snapper -c <snapper_config> set-config \
    ALLOW_USERS="EXAMPLE\\\\Administrator EXAMPLE\\\\win-client$"

    Überprüfen Sie, ob alle unter ALLOW_USERS aufgeführten Benutzer auch die Berechtigung für das Traversal des Unterverzeichnisses .snapshots besitzen.

    fsrvp-server:~ # snapper -c <snapper_config> set-config SYNC_ACL=yes
    Wichtig
    Wichtig: Escape-Zeichen bei Pfaden

    Gehen Sie mit dem Escape-Zeichen „\“ vorsichtig vor! Setzen Sie das Escape-Zeichen zweimal, damit der Wert in /etc/snapper/configs/<snapper_config> ordnungsgemäß auskommentiert wird.

    „EXAMPLE\win-client$“ bezeichnet das Windows-Clientkonto. Die anfänglichen FSRVP-Anfragen von Windows werden mit diesem Konto ausgegeben.

  8. Erteilen Sie dem Windows-Clientkonto die erforderlichen Berechtigungen:

    fsrvp-server:~ # net -U 'Administrator' rpc rights grant \
    "EXAMPLE\\win-client$" SeBackupPrivilege
    Successfully granted rights.

    Für den Benutzer „EXAMPLE\Administrator“ muss das obige Kommando nicht ausgeführt werden, da diese Konto bereits die Berechtigungen besitzt.

Vorgehen 29.2: Einrichten des Windows-Clients und Ausführen von DiskShadow.exe
  1. Booten Sie Windows Server 2012 (Beispiel-Hostname: WIN-CLIENT).

  2. Treten Sie derselben Active Directory-Domäne EXAMPLE bei wie mit dem SUSE Linux Enterprise Server.

  3. Booten Sie den Computer neu.

  4. Öffnen Sie die Powershell.

  5. Starten Sie DiskShadow.exe, und beginnen Sie den Sicherungsvorgang:

    PS C:\Users\Administrator.EXAMPLE> diskshadow.exe
    Microsoft DiskShadow version 1.0
    Copyright (C) 2012 Microsoft Corporation
    On computer:  WIN-CLIENT,  6/17/2014 3:53:54 PM
    
    DISKSHADOW> begin backup
  6. Geben Sie an, dass die Schattenkopie auch beim Beenden des Programms, beim Zurücksetzen und beim Neubooten erhalten bleiben soll:

    DISKSHADOW> set context PERSISTENT
  7. Überprüfen Sie, ob die angegebene Freigabe Snapshots unterstützt, und erstellen Sie einen Snapshot:

    DISKSHADOW> add volume \\fsrvp-server\sles_snapper
    
    DISKSHADOW> create
    Alias VSS_SHADOW_1 for shadow ID {de4ddca4-4978-4805-8776-cdf82d190a4a} set as \
     environment variable.
    Alias VSS_SHADOW_SET for shadow set ID {c58e1452-c554-400e-a266-d11d5c837cb1} \
     set as environment variable.
    
    Querying all shadow copies with the shadow copy set ID \
     {c58e1452-c554-400e-a266-d11d5c837cb1}
    
     * Shadow copy ID = {de4ddca4-4978-4805-8776-cdf82d190a4a}     %VSS_SHADOW_1%
        - Shadow copy set: {c58e1452-c554-400e-a266-d11d5c837cb1}  %VSS_SHADOW_SET%
        - Original count of shadow copies = 1
        - Original volume name: \\FSRVP-SERVER\SLES_SNAPPER\ \
          [volume not on this machine]
        - Creation time: 6/17/2014 3:54:43 PM
        - Shadow copy device name:
          \\FSRVP-SERVER\SLES_SNAPPER@{31afd84a-44a7-41be-b9b0-751898756faa}
        - Originating machine: FSRVP-SERVER
        - Service machine: win-client.example.com
        - Not exposed
        - Provider ID: {89300202-3cec-4981-9171-19f59559e0f2}
        - Attributes:  No_Auto_Release Persistent FileShare
    
    Number of shadow copies listed: 1
  8. Beenden Sie den Sicherungsvorgang:

    DISKSHADOW> end backup
  9. Versuchen Sie, den erstellten Snapshot zu löschen, und überprüfen Sie, ob er tatsächlich gelöscht wurde:

    DISKSHADOW> delete shadows volume \\FSRVP-SERVER\SLES_SNAPPER\
    Deleting shadow copy {de4ddca4-4978-4805-8776-cdf82d190a4a} on volume \
     \\FSRVP-SERVER\SLES_SNAPPER\ from provider \
    {89300202-3cec-4981-9171-19f59559e0f2} [Attributes: 0x04000009]...
    
    Number of shadow copies deleted: 1
    
    DISKSHADOW> list shadows all
    
    Querying all shadow copies on the computer ...
    No shadow copies found in system.

29.9 Weiterführende Informationen

Die Dokumentation zu Samba ist im Paket samba-doc enthalten, das standardmäßig nicht installiert wird. Installieren Sie das Paket mit zypper install samba-doc. Wenn Samba installiert ist, können Sie in die Kommandozeile apropos samba eingeben und einige man-Seiten aufrufen. 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. Auch in der Datei /usr/share/doc/packages/samba/README.SUSE finden Sie zusätzliche Informationen zu Samba.

Das Samba-Team stellt in Samba HOWTO (siehe https://wiki.samba.org) einen Abschnitt zur Fehlerbehebung zur Verfügung. In Teil V ist außerdem eine ausführliche Anleitung zum Überprüfen der Konfiguration enthalten.