15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
08.10.2024

Wie man Samba auf Linux installiert und konfiguriert: Ein vollständiger technischer Leitfaden

Samba ist eine Open-Source-Implementierung des SMB/CIFS (Server Message Block / Common Internet File System)-Protokolls, das Linux- und Unix-basierten Servern ermöglicht, Dateien, Drucker und andere Ressourcen mit Windows-Clients — und mit anderen Linux-Maschinen — zu teilen. Es fungiert als Brücke über Betriebssystemgrenzen hinweg und ist damit der De-facto-Standard für plattformübergreifende Netzwerk-Dateifreigabe in gemischten Umgebungen.

Als prägnante Antwort auf die Kernfrage: Die Installation von Samba unter Linux erfordert die Installation des `samba`-Pakets über den Paketmanager Ihrer Distribution, die Definition von Freigabe-Blöcken in `/etc/samba/smb.conf`, die Erstellung Samba-spezifischer Benutzeranmeldedaten mit `smbpasswd` sowie das Öffnen der Ports 137–139 und 445 in Ihrer Firewall. Die folgenden Abschnitte behandeln jeden Schritt dieses Prozesses in präzisen technischen Details.

Was Samba tatsächlich im Hintergrund tut

Samba läuft als eine Reihe von Daemons. Das Verständnis, welcher Daemon was tut, verhindert eine bedeutende Kategorie von Fehlkonfigurationsfehlern:

  • `smbd` — verwaltet Datei- und Druckfreigabe, Authentifizierung und Ressourcensperrung über TCP-Ports 445 und 139.
  • `nmbd` — verwaltet die NetBIOS-Namensauflösung über UDP-Ports 137 und 138. Erforderlich für das Windows-Netzwerk-Browsing (Netzwerkumgebung / „Netzwerk” im Datei-Explorer).
  • `winbindd` — integriert Samba in Active Directory oder NT4-Domänen und ermöglicht die Domänenbenutzerauthentifizierung auf dem Linux-Host. Nicht erforderlich für eigenständige Dateifreigabe.

Wenn ein Windows-Client `servershare` öffnet, löst er zunächst den Servernamen über DNS oder NetBIOS (nmbd) auf und stellt dann eine SMB-Sitzung mit smbd über Port 445 her. Samba handelt den höchsten gegenseitig unterstützten SMB-Dialekt aus — SMB 3.1.1 auf modernen Systemen — und ordnet die Remote-Freigabe einem Laufwerksbuchstaben oder UNC-Pfad auf dem Client zu.

Voraussetzungen

Bestätigen Sie vor dem Fortfahren Folgendes:

  • Ein Linux-Server mit Ubuntu 20.04/22.04/24.04, Debian 11/12, CentOS Stream 8/9, RHEL 8/9 oder Fedora 38+.
  • Root- oder `sudo`-Zugriff.
  • Eine dem Server zugewiesene statische private IP-Adresse (entscheidend für stabiles Share-Mounting).
  • Grundlegende Kenntnisse von Terminal-Operationen und Dateiberechtigungen.
  • Firewall-Zugriff (UFW, firewalld oder iptables), um die erforderlichen Ports zu öffnen.

Wenn Sie Samba auf einem Cloud- oder virtuellen Server bereitstellen, bietet eine VPS Hosting-Umgebung den vollständigen Root-Zugriff und die Netzwerkkontrolle, die für die Verwaltung von Daemons, Firewall-Regeln und persistenten Mounts ohne die Einschränkungen von Shared-Umgebungen erforderlich sind.

Schritt 1: Samba installieren

Verwenden Sie den für Ihre Distribution geeigneten Paketmanager. Aktualisieren Sie immer zuerst den Paketindex, um die Installation veralteter Versionen zu vermeiden.

Debian / Ubuntu:

“`bash

sudo apt-get update

sudo apt-get install samba samba-common-bin

“`

CentOS Stream / RHEL:

“`bash

sudo dnf install samba samba-client samba-common

“`

Fedora:

“`bash

sudo dnf install samba samba-client samba-common

“`

Arch Linux:

“`bash

sudo pacman -S samba

“`

Überprüfen Sie nach der Installation die installierte Version:

“`bash

smbd –version

“`

Installieren Sie auf RHEL-basierten Systemen auch `samba-client`, um das Diagnoseprogramm `smbclient` zu erhalten, das Sie in späteren Schritten für Verbindungstests verwenden werden.

Schritt 2: Sichern und Bearbeiten der Hauptkonfigurationsdatei

Die gesamte Samba-Konfiguration befindet sich in `/etc/samba/smb.conf`. Diese einzelne Datei steuert das globale Serververhalten, das Sicherheitsmodell, Share-Definitionen und Protokollierung. Erstellen Sie vor der Bearbeitung ein zeitgestempeltes Backup:

“`bash

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup.$(date +%F)

“`

Öffnen Sie die Datei zur Bearbeitung:

“`bash

sudo nano /etc/samba/smb.conf

“`

Die Datei ist in Abschnitte unterteilt. Der Abschnitt `[global]` definiert serverweite Parameter. Einzelne Share-Abschnitte (z. B. `[sambashare]`) definieren spezifische freigegebene Ressourcen.

Kritische globale Parameter zum Überprüfen

Achten Sie im Abschnitt `[global]` auf diese Einstellungen:

“`ini

[global]

workgroup = WORKGROUP

server string = Samba Server %v

netbios name = MYSERVER

security = user

map to guest = bad user

dns proxy = no

log file = /var/log/samba/log.%m

max log size = 1000

logging = file

panic action = /usr/share/samba/panic-action %d

server role = standalone server

obey pam restrictions = yes

unix password sync = yes

passwd program = /usr/bin/passwd %u

passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .

pam password change = yes

min protocol = SMB2

max protocol = SMB3

“`

Wichtiger Hinweis: Die Direktive `min protocol = SMB2` deaktiviert SMB1 explizit, das seit 2014 veraltet ist und der Angriffsvektor für Exploits wie EternalBlue (MS17-010) ist. Lassen Sie SMB1 niemals auf einem Produktionsserver aktiviert. Modernes Windows 10/11 und alle aktuellen Linux CIFS-Clients unterstützen SMB2 und SMB3 nativ.

Schritt 3: Erstellen und Vorbereiten des freigegebenen Verzeichnisses

Erstellen Sie das Verzeichnis, das über das Netzwerk freigegeben wird:

“`bash

sudo mkdir -p /srv/sambashare

“`

Legen Sie Eigentümerschaft und Berechtigungen fest. Der richtige Ansatz hängt davon ab, ob Sie Gastzugriff oder nur authentifizierten Zugriff wünschen.

Für authentifizierten Benutzerzugriff (empfohlen für die Produktion):

“`bash

sudo chown root:sambashare /srv/sambashare

sudo chmod 2770 /srv/sambashare

“`

Die Berechtigung `2770` gliedert sich wie folgt auf:

  • `2` — Setgid-Bit: Neue Dateien erben die Gruppe des Verzeichnisses, was Eigentümerschaftsfragmentierung in Mehrbenutzer-Shares verhindert.
  • `7` — Eigentümer (root) hat Lesen, Schreiben, Ausführen.
  • `7` — Gruppe (sambashare) hat Lesen, Schreiben, Ausführen.
  • `0` — Andere haben keinen Zugriff.

Für Gast-/öffentlichen Zugriff (nur Heimlabor oder internes LAN):

“`bash

sudo chown nobody:nogroup /srv/sambashare

sudo chmod 0777 /srv/sambashare

“`

Verwenden Sie `0777` nicht auf internetfähigen Servern. Gast-Shares mit weltweiten Schreibberechtigungen sind nur in isolierten, vertrauenswürdigen Netzwerken angemessen.

Schritt 4: Systemgruppe und Benutzer erstellen

Erstellen Sie für authentifizierte Shares eine dedizierte Linux-Gruppe, die Ihrer Samba-Freigabe zugeordnet ist:

“`bash

sudo groupadd sambashare

“`

Fügen Sie den Linux-Benutzer hinzu, der auf die Freigabe zugreifen wird:

“`bash

sudo useradd -M -s /sbin/nologin sambauser

sudo usermod -aG sambashare sambauser

“`

Das Flag `-M` überspringt die Erstellung eines Home-Verzeichnisses (dies ist ein Dienstkonto, kein interaktiver Benutzer). Das Flag `-s /sbin/nologin` verhindert, dass das Konto für SSH- oder Konsolen-Anmeldungen verwendet wird — ein kritischer Sicherheitshärtungsschritt, den die meisten Anleitungen auslassen.

Registrieren Sie nun den Benutzer in Sambas eigener Passwortdatenbank (getrennt von `/etc/shadow`):

“`bash

sudo smbpasswd -a sambauser

sudo smbpasswd -e sambauser

“`

Das Flag `-a` fügt den Benutzer hinzu; das Flag `-e` aktiviert das Konto. Samba pflegt seinen eigenen Anmeldedatenspeicher unter `/var/lib/samba/private/passdb.tdb` (oder `smbpasswd`-Datei, abhängig von der Einstellung `passdb backend`). Ein Benutzer kann in Linux existieren, ohne in Sambas Datenbank zu sein, und umgekehrt — er muss in beiden registriert sein.

Schritt 5: Die Freigabe in smb.conf definieren

Fügen Sie den folgenden Block am Ende von `/etc/samba/smb.conf` hinzu. Zwei Konfigurationen werden gezeigt: eine für authentifizierten Zugriff, eine für Gastzugriff.

Authentifizierte Freigabe (Produktionsempfehlung)

“`ini

[sambashare]

path = /srv/sambashare

comment = Authenticated Network Share

browsable = yes

writable = yes

read only = no

guest ok = no

valid users = @sambashare

create mask = 0660

directory mask = 2770

force group = sambashare

“`

Parameter-Erklärung:

  • `valid users = @sambashare` — das Präfix `@` bedeutet „jedes Mitglied der Linux-Gruppe namens sambashare.” Dies ist skalierbarer als das Auflisten einzelner Benutzernamen.
  • `create mask = 0660` — neue Dateien werden mit rw-rw—-Berechtigungen erstellt, was weltlesbare Dateien verhindert.
  • `directory mask = 2770` — neue Unterverzeichnisse erben das Setgid-Bit und Gruppenberechtigungen.
  • `force group = sambashare` — erzwingt, dass alle Dateioperationen die Gruppe sambashare verwenden, unabhängig von der primären Gruppe des verbindenden Benutzers.

Gast-Freigabe (Heimlabor / internes LAN)

“`ini

[public]

path = /srv/sambashare

comment = Public Network Share

browsable = yes

writable = yes

read only = no

guest ok = yes

guest account = nobody

create mask = 0664

directory mask = 0775

“`

Schritt 6: Konfiguration validieren

Führen Sie vor dem Neustart eines Dienstes den integrierten Konfigurations-Parser aus:

“`bash

testparm

“`

`testparm` liest `smb.conf`, meldet Syntaxfehler und gibt die effektive Konfiguration nach Anwendung der Standardwerte aus. Achten Sie auf `WARNING`-Zeilen — sie weisen oft auf veraltete Parameter oder Sicherheitsfehlkonfigurationen hin. Eine saubere Ausgabe endet mit:

“`

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

“`

Wenn `testparm` Fehler meldet, beheben Sie diese vor dem Fortfahren. Das Neustarten von smbd mit einer fehlerhaften Konfigurationsdatei führt dazu, dass der Dienst lautlos fehlschlägt oder auf Standardwerte zurückfällt.

Schritt 7: Samba-Daemons neu starten und aktivieren

Debian / Ubuntu:

“`bash

sudo systemctl restart smbd nmbd

sudo systemctl enable smbd nmbd

“`

CentOS / RHEL / Fedora:

“`bash

sudo systemctl restart smb nmb

sudo systemctl enable smb nmb

“`

Überprüfen Sie, ob beide Daemons laufen:

“`bash

sudo systemctl status smbd nmbd # Debian/Ubuntu

sudo systemctl status smb nmb # RHEL/Fedora

“`

Überprüfen Sie, ob die Daemons auf den richtigen Ports lauschen:

“`bash

sudo ss -tlnp | grep -E '(smbd|nmbd|445|139)'

“`

Die erwartete Ausgabe sollte `smbd` gebunden an Port 445 und 139 zeigen.

Schritt 8: Firewall-Regeln konfigurieren

Samba erfordert, dass die folgenden Ports geöffnet sind:

PortProtokollDienstZweck
—————-——————
137UDPnmbdNetBIOS-Namensdienst
138UDPnmbdNetBIOS-Datagrammdienst
139TCPsmbdNetBIOS-Sitzungsdienst (SMB über NetBIOS)
445TCPsmbdDirektes SMB (SMB2/SMB3 — primärer Port)

UFW (Debian/Ubuntu):

“`bash

sudo ufw allow 'Samba'

sudo ufw status

“`

firewalld (CentOS/RHEL/Fedora):

“`bash

sudo firewall-cmd –permanent –add-service=samba

sudo firewall-cmd –reload

sudo firewall-cmd –list-services

“`

iptables (manuell):

“`bash

sudo iptables -A INPUT -p tcp –dport 445 -j ACCEPT

sudo iptables -A INPUT -p tcp –dport 139 -j ACCEPT

sudo iptables -A INPUT -p udp –dport 137:138 -j ACCEPT

“`

Sicherheitshinweis: Wenn Ihr Samba-Server über das Internet erreichbar ist (für Standard-Dateifreigabe nicht empfohlen), schränken Sie diese Regeln auf bestimmte Quell-IP-Bereiche mit `-s 192.168.1.0/24` oder äquivalenten Mitteln ein. Das Exponieren von SMB-Ports gegenüber dem öffentlichen Internet ist ein schwerwiegendes Sicherheitsrisiko.

Schritt 9: SELinux-Überlegungen (RHEL/CentOS/Fedora)

Auf SELinux-durchsetzenden Systemen benötigt Samba zusätzliche Kontextbezeichnungen auf freigegebenen Verzeichnissen. Ohne diese wird smbd vom Zugriff auf den Pfad blockiert, selbst wenn die Linux-Berechtigungen korrekt sind.

“`bash

sudo setsebool -P samba_enable_home_dirs on

sudo setsebool -P samba_export_all_rw on

sudo semanage fcontext -a -t samba_share_t "/srv/sambashare(/.*)?"

sudo restorecon -Rv /srv/sambashare

“`

Überprüfen Sie, ob der Kontext angewendet wurde:

“`bash

ls -lZ /srv/sambashare

“`

Die Ausgabe sollte `system_u:object_r:samba_share_t:s0` als SELinux-Kontext anzeigen. Das Überspringen dieses Schritts ist der häufigste Grund, warum Samba-Freigaben auf RHEL-Familiensystemen fehlschlagen — der Dienst scheint korrekt zu starten, aber Clients erhalten „Zugriff verweigert”-Fehler.

Schritt 10: Auf die Freigabe von Windows aus zugreifen

Auf einem Windows-Client:

  1. Öffnen Sie den Datei-Explorer.
  2. Geben Sie in der Adressleiste ein: `<server-ip>sambashare` und drücken Sie Enter.
  3. Geben Sie bei Aufforderung den Samba-Benutzernamen und das Passwort ein.
  4. Um die Verbindung dauerhaft zu machen, klicken Sie mit der rechten Maustaste auf die Freigabe und wählen Sie Netzlaufwerk verbinden.

Für skriptgesteuerte oder Unternehmensbereitstellungen verbinden Sie das Laufwerk über die Befehlszeile:

“`cmd

net use Z: 192.168.1.100sambashare /user:sambauser /persistent:yes

“`

Schritt 11: Auf die Freigabe von Linux aus zugreifen

Mit smbclient (interaktiv, zum Testen):

“`bash

smbclient //192.168.1.100/sambashare -U sambauser

“`

Dies öffnet eine FTP-ähnliche interaktive Shell. Verwenden Sie `ls`, `get`, `put` und `exit`, um zu navigieren und Dateien zu übertragen.

Dauerhaftes Einbinden der Freigabe mit CIFS:

Installieren Sie zunächst das CIFS-Dienstprogrammpaket:

“`bash

sudo apt-get install cifs-utils # Debian/Ubuntu

sudo dnf install cifs-utils # RHEL/Fedora

“`

Erstellen Sie einen Mount-Punkt und eine Anmeldedatendatei (legen Sie niemals Passwörter im Klartext in `/etc/fstab` ab):

“`bash

sudo mkdir -p /mnt/sambashare

sudo nano /etc/samba/credentials

“`

Inhalt der Anmeldedatendatei:

“`

username=sambauser

password=yourpassword

domain=WORKGROUP

“`

Sichern Sie die Anmeldedatendatei:

“`bash

sudo chmod 600 /etc/samba/credentials

sudo chown root:root /etc/samba/credentials

“`

Fügen Sie den Mount zu `/etc/fstab` für Persistenz über Neustarts hinzu:

“`

//192.168.1.100/sambashare /mnt/sambashare cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,iocharset=utf8,vers=3.0,_netdev 0 0

“`

Die Option `_netdev` weist das System an, auf Netzwerkverfügbarkeit zu warten, bevor der Mount versucht wird — unerlässlich auf Servern, die Netzwerk-Shares beim Booten einbinden. Die Option `vers=3.0` erzwingt SMB3 und vermeidet den Rückfall auf ältere Dialekte.

Testen Sie den fstab-Eintrag ohne Neustart:

“`bash

sudo mount -a

“`

Vergleich der SMB-Protokollversionen

Die Wahl des richtigen SMB-Dialekts beeinflusst Leistung, Sicherheit und Kompatibilität. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:

SMB-VersionJahrHauptmerkmaleSicherheitEmpfohlene Verwendung
————-——————–———-—————–
SMB11983Grundlegende DateifreigabeKritisch anfällig (EternalBlue)Niemals verwenden — explizit deaktivieren
SMB22006Pipelining, reduzierte Gesprächigkeit, SignierungVerbessertÄltere Windows Vista/7-Clients
SMB2.12010Client-Oplock-LeasingVerbessertWindows 7/2008 R2
SMB3.02012Multichannel, Verschlüsselung, FailoverStarkWindows 8/2012 und später
SMB3.1.12015Pre-Auth-Integrität, AES-128-GCMAm stärkstenWindows 10/11, modernes Linux

Setzen Sie immer `min protocol = SMB2` in `[global]` und bevorzugen Sie `SMB3`, wo alle Clients es unterstützen. SMB3.1.1 mit Verschlüsselung (`smb encrypt = required`) ist die richtige Wahl für jede Freigabe mit sensiblen Daten.

Samba vs. NFS: Das richtige Protokoll wählen

Sowohl Samba (SMB/CIFS) als auch NFS werden häufig für Linux-basierte Netzwerk-Dateifreigabe verwendet, dienen jedoch unterschiedlichen Anwendungsfällen:

KriteriumSamba (SMB/CIFS)NFS
———-—————–—–
Primärer AnwendungsfallPlattformübergreifend (Linux + Windows)Linux-zu-Linux-Freigabe
Windows-Client-UnterstützungNativ, keine Client-Software erforderlichErfordert NFS-Client-Installation
macOS-UnterstützungNativ (SMB)Unterstützt über integrierten NFS-Client
AuthentifizierungBenutzername/Passwort, AD-IntegrationHostbasiert (IP/Hostname)
Leistung (LAN)Etwas höherer OverheadGeringerer Overhead, schneller im LAN
VerschlüsselungSMB3 unterstützt AES-VerschlüsselungNFSv4.2 unterstützt krb5-Verschlüsselung
KonfigurationskomplexitätModeratGeringer für reine Linux-Umgebungen
Am besten geeignet fürGemischte Betriebssystemumgebungen, DomänenintegrationHomogene Linux-Cluster, HPC

Wenn Ihre Infrastruktur ausschließlich Linux ist — zum Beispiel ein Cluster von Dedicated Servers, auf denen containerisierte Workloads laufen — kann NFS eine geringere Latenz bieten. Für jede Umgebung mit Windows-Clients oder macOS-Benutzern ist Samba die richtige Wahl.

Häufige Fallstricke und Fehlerbehebung

Freigabe ist sichtbar, gibt aber „Zugriff verweigert” zurück

  • Auf SELinux-Systemen: Überprüfen und wenden Sie den `samba_share_t`-Kontext wie in Schritt 9 beschrieben an.
  • Linux-Berechtigungen prüfen: Der verbindende Benutzer (oder das `nobody`-Konto für Gast-Shares) muss unabhängig von Sambas eigenen ACLs Lese-/Schreibzugriff auf Dateisystemebene auf den Pfad haben.
  • smbpasswd überprüfen: Der Benutzer muss mit `smbpasswd -a` hinzugefügt und mit `smbpasswd -e` aktiviert worden sein.

Freigabe ist beim Durchsuchen des Netzwerks nicht sichtbar

  • Bestätigen Sie, dass `nmbd` läuft: `sudo systemctl status nmbd`.
  • Stellen Sie sicher, dass `browsable = yes` in der Share-Definition gesetzt ist.
  • Windows 10/11 hat den SMB1-abhängigen „Computer Browser”-Dienst deaktiviert. Verwenden Sie direkte UNC-Pfade (`ipshare`) anstatt sich auf die Netzwerkerkennung zu verlassen.

Langsame Übertragungsgeschwindigkeiten

  • Erzwingen Sie SMB3 mit `vers=3.0` oder `vers=3.1.1` in den Mount-Optionen.
  • Aktivieren Sie große MTU: Fügen Sie `socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072` zu `[global]` hinzu.
  • Prüfen Sie, ob SMB-Multichannel verfügbar ist: `smbstatus –verbose`.

Protokolle und Diagnose

“`bash

sudo tail -f /var/log/samba/log.smbd

sudo smbstatus

sudo pdbedit -L -v # List all Samba users

“`

Samba in der Produktion: Architekturüberlegungen

Für Produktionsbereitstellungen über eine einfache Dateifreigabe hinaus sollten Sie Folgendes berücksichtigen:

Active Directory-Integration: Samba 4 kann als vollständiger Active Directory Domain Controller fungieren und LDAP, Kerberos, DNS und Gruppenrichtlinien unterstützen. Dies ist ein bedeutender architektonischer Schritt über die eigenständige Dateifreigabe hinaus und erfordert `samba-ad-dc`-Provisionierung.

Home-Verzeichnis-Freigaben: Der Meta-Dienst `[homes]` in `smb.conf` erstellt automatisch eine persönliche Freigabe für jeden authentifizierten Benutzer, die seinem Linux-Home-Verzeichnis zugeordnet ist. Dies eliminiert die Notwendigkeit, individuelle Share-Blöcke pro Benutzer zu definieren.

Druckerfreigabe: Samba integriert sich mit CUPS, um Drucker über das Netzwerk freizugeben. Die Share-Definitionen `[printers]` und `[print$]` übernehmen dies, obwohl die Druckerfreigabe mit dem Aufkommen von Cloud-Druckdiensten weniger verbreitet geworden ist.

Kontingente: Samba respektiert Linux-Dateisystemkontingente. Implementieren Sie Kontingente auf Dateisystemebene mit `quota`-Tools, und Samba wird sie transparent durchsetzen.

Für Teams, die Webanwendungen neben Dateifreigaben betreiben, bietet die Kombination von Samba mit einem VPS mit cPanel ein verwaltetes Control Panel für Web-Hosting, während der vollständige SSH-Zugriff für die Samba-Administration erhalten bleibt. Für Umgebungen, die mehrere Hosting-Dienste unter einem Dach benötigen, hilft die Überprüfung verfügbarer VPS Control Panels dabei, die richtige Verwaltungsebene für Ihren Stack zu identifizieren.

Wenn Ihr Samba-Server auch Web-Inhalte oder Anwendungsdaten hostet, stellt die Absicherung mit einem SSL-Zertifikat für alle zugehörigen weborientierten Dienste sicher, dass der gesamte Stack modernen Sicherheitsstandards entspricht.

Technische Checkliste der wichtigsten Erkenntnisse

Verwenden Sie diese Checkliste, bevor Sie Ihre Samba-Bereitstellung als produktionsbereit betrachten:

  • [ ] SMB1 explizit deaktiviert über `min protocol = SMB2` in `[global]`
  • [ ] Samba-Benutzer erstellt mit `smbpasswd -a` und aktiviert mit `smbpasswd -e`
  • [ ] Dienstkonten verwenden `-s /sbin/nologin` zum Blockieren des Shell-Zugriffs
  • [ ] Share-Verzeichnisse verwenden das Setgid-Bit (`chmod 2770`) für konsistente Gruppeneigentümerschaft
  • [ ] `testparm` läuft sauber ohne Warnungen oder Fehler
  • [ ] Sowohl `smbd` als auch `nmbd` sind aktiviert und laufen
  • [ ] Firewall-Regeln beschränken SMB-Ports (445, 139, 137-138) auf vertrauenswürdige Quell-IPs
  • [ ] SELinux-Kontext (`samba_share_t`) auf RHEL/CentOS/Fedora-Systemen angewendet
  • [ ] Anmeldedatendatei für CIFS-Mounts ist `chmod 600` und gehört root
  • [ ] `/etc/fstab`-Einträge verwenden die Option `_netdev` für netzwerkabhängige Mounts
  • [ ] Samba-Protokolle nach der ersten Bereitstellung unter `/var/log/samba/` überprüft
  • [ ] `smbstatus` bestätigt aktive Sitzungen und gesperrte Dateien nach der Bereitstellung

FAQ

Welche Ports verwendet Samba und müssen alle geöffnet sein?

Samba verwendet TCP 445 (direktes SMB, erforderlich), TCP 139 (SMB über NetBIOS, für ältere Clients benötigt) und UDP 137-138 (NetBIOS-Namensauflösung, für Netzwerk-Browsing benötigt). Für moderne Umgebungen mit Windows 10/11 oder Linux-Clients, die direkte UNC-Pfade verwenden, ist nur TCP 445 zwingend erforderlich. UDP 137-138 und TCP 139 können blockiert werden, wenn keine NetBIOS-Namensauflösung benötigt wird.

Warum funktioniert meine Samba-Freigabe von Linux aus, gibt aber von Windows aus „Zugriff verweigert” zurück?

Dies ist fast immer ein Problem mit dem Anmeldedaten-Caching auf der Windows-Seite. Windows speichert SMB-Anmeldedaten pro Sitzung. Öffnen Sie den Anmeldedaten-Manager (Systemsteuerung > Anmeldedaten-Manager > Windows-Anmeldedaten), entfernen Sie alle zwischengespeicherten Einträge für die IP des Servers und verbinden Sie sich erneut. Wenn das Problem weiterhin besteht, überprüfen Sie, ob der Benutzer in Sambas Datenbank mit `sudo pdbedit -L -v` aktiviert ist.

Was ist der Unterschied zwischen `security = user` und `security = share` in smb.conf?

`security = share` (Share-Level-Sicherheit) ist veraltet und in Samba 4 entfernt. `security = user` (Benutzer-Level-Sicherheit) ist der einzige unterstützte Modus in modernem Samba — jede Verbindung wird gegen einen bestimmten Benutzernamen und ein Passwort authentifiziert. Gastzugriff wird separat über die Direktiven `guest ok` und `map to guest` gehandhabt, nicht über den Parameter `security`.

Kann Samba auf demselben Server mit NFS koexistieren?

Ja. Samba und NFS arbeiten auf völlig unterschiedlichen Ports und Protokollen und stehen auf Netzwerkebene nicht in Konflikt. Das gleichzeitige Teilen desselben Verzeichnisses über beide Protokolle kann jedoch Dateisperrkonflikte verursachen, insbesondere bei Schreiboperationen. Wenn Sie dieselben Daten über beide Protokolle teilen müssen, verwenden Sie einen Distributed Lock Manager (DLM) oder beschränken Sie ein Protokoll auf Nur-Lese-Zugriff.

Wie füge ich mehrere Benutzer zu einer einzelnen Samba-Freigabe hinzu?

Verwenden Sie eine Linux-Gruppe. Erstellen Sie die Gruppe (`groupadd teamshare`), fügen Sie Benutzer hinzu (`usermod -aG teamshare user1`), setzen Sie die Gruppeneigentümerschaft des Share-Verzeichnisses (`chown root:teamshare /srv/share`) und referenzieren Sie die Gruppe in `smb.conf` mit `valid users = @teamshare`. Dieser Ansatz skaliert sauber — das Hinzufügen eines Benutzers zur Freigabe erfordert nur einen `usermod`-Befehl und eine `smbpasswd -a`-Registrierung, ohne Änderungen an `smb.conf`.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen