Wie man Samba auf Ubuntu installiert und konfiguriert: Ein vollständiger Schritt-für-Schritt-Leitfaden
Samba ist eine leistungsstarke Open-Source-Softwaresuite, die nahtlose Datei- und Druckerfreigabe zwischen Computern mit Windows und Unix-ähnlichen Betriebssystemen wie Ubuntu ermöglicht. Durch die Installation und ordnungsgemäße Konfiguration von Samba können Sie die Lücke zwischen Linux- und Windows-Umgebungen schließen und Benutzern auf beiden Plattformen ermöglichen, Dateien, Verzeichnisse und sogar Drucker über ein lokales oder Wide-Area-Netzwerk freizugeben.
Egal ob Sie ein Home Lab, ein kleines Geschäftsnetzwerk oder eine Produktionsserverumgebung verwalten – dieser umfassende Leitfaden führt Sie durch jeden Schritt der Installation, Konfiguration und Sicherung von Samba auf Ubuntu – einschließlich fortgeschrittener Optionen, die die meisten Tutorials überspringen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie folgende Voraussetzungen erfüllen:
- Ein Server oder Computer mit Ubuntu 20.04, 22.04 oder 24.04
- Sudo- oder Root-Zugriff auf das System
- Grundlegende Kenntnisse der Linux-Befehlszeile
- Netzwerkverbindung zwischen den Computern, die Sie verbinden möchten
Wenn Sie Samba auf einem Remote-Server ausführen, ist eine zuverlässige und leistungsstarke Hosting-Umgebung unerlässlich. VPS Hosting von AlexHost bietet Ihnen vollständigen Root-Zugriff, dedizierte Ressourcen und die Flexibilität, Ihren Server genau nach Ihren Anforderungen zu konfigurieren.
Schritt 1: Systempakete aktualisieren
Bevor Sie neue Software installieren, ist es wichtig, den Paketindex Ihres Systems zu aktualisieren und vorhandene Pakete auf ihre neuesten Versionen zu aktualisieren. Dies gewährleistet Kompatibilität und schützt vor bekannten Sicherheitslücken.
sudo apt update && sudo apt upgrade -yWarten Sie, bis der Prozess abgeschlossen ist, bevor Sie fortfahren.
Schritt 2: Samba installieren
Installieren Sie das Samba-Paket mit dem APT-Paketmanager:
sudo apt install samba -yNach Abschluss der Installation überprüfen Sie, ob die Installation erfolgreich war, indem Sie die Samba-Version überprüfen:
smbd --versionSie sollten eine Ausgabe ähnlich der folgenden sehen:
Version 4.15.13-UbuntuSie können auch überprüfen, ob der Samba-Dienst ausgeführt wird:
sudo systemctl status smbdDie Ausgabe sollte den Dienst als active (running) anzeigen.
Schritt 3: Sicherung der Standard-Samba-Konfigurationsdatei
Sichern Sie immer die ursprüngliche Konfigurationsdatei, bevor Sie Änderungen vornehmen. Dies ermöglicht es Ihnen, die Standardeinstellungen wiederherzustellen, falls etwas schief geht:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bakDies ist eine Best Practice, die viele Leitfäden übersehen, aber erfahrene Systemadministratoren immer befolgen.
Schritt 4: Erstellen und Konfigurieren eines freigegebenen Verzeichnisses
4.1 Verzeichnis erstellen
Entscheiden Sie, welches Verzeichnis Sie über das Netzwerk freigeben möchten. Für diesen Leitfaden erstellen wir einen dedizierten Ordner namens shared im Home-Verzeichnis:
mkdir ~/shared4.2 Verzeichnisberechtigungen festlegen
Legen Sie die entsprechenden Berechtigungen für das Verzeichnis fest. Für eine gemeinsame Umgebung, in der mehrere Benutzer Lese- und Schreibzugriff benötigen:
chmod 777 ~/shared> Sicherheitshinweis: Die Einstellung chmod 777 gewährt allen Benutzern vollständige Lese-, Schreib- und Ausführungsberechtigungen. Obwohl dies praktisch zum Testen ist, wird dies für Produktionsumgebungen nicht empfohlen. Verwenden Sie in einer Produktionsumgebung restriktivere Berechtigungen wie chmod 770 und verwalten Sie den Zugriff über Gruppenmitgliedschaften.
Schritt 5: Samba konfigurieren – smb.conf bearbeiten
Öffnen Sie die Hauptkonfigurationsdatei von Samba mit einem Texteditor:
sudo nano /etc/samba/smb.confScrollen Sie zum Ende der Datei und fügen Sie den folgenden Konfigurationsblock hinzu:
[SharedFolder]
path = /home/username/shared
available = yes
valid users = username
read only = no
browsable = yes
public = yes
writable = yesErsetzen Sie username durch Ihren tatsächlichen Ubuntu-Systembenutzernamen.
Verständnis jeder Direktive
| Direktive | Beschreibung |
|---|---|
path | Der absolute Pfad zum freigegebenen Verzeichnis |
available | Ob die Freigabe für Benutzer verfügbar ist |
valid users | Beschränkt den Zugriff auf die aufgelisteten Benutzer |
read only | Auf no setzen, um Schreibzugriff zu ermöglichen |
browsable | Ob die Freigabe beim Durchsuchen des Netzwerks angezeigt wird |
public | Ermöglicht den Zugriff ohne Authentifizierung (mit Vorsicht verwenden) |
writable | Ermöglicht Benutzern, Dateien in die Freigabe zu schreiben |
Nachdem Sie Ihre Änderungen vorgenommen haben, speichern Sie die Datei durch Drücken von CTRL + O, dann Enter und beenden Sie mit CTRL + X.
Konfiguration validieren
Bevor Sie Samba neu starten, testen Sie Ihre Konfigurationsdatei auf Syntaxfehler:
testparmDieser Befehl analysiert die Datei smb.conf und meldet alle Probleme. Beheben Sie alle Fehler, bevor Sie fortfahren.
Schritt 6: Samba-Benutzerkonto erstellen
Samba verwaltet seine eigene Passwortdatenbank, die von den Standard-Linux-Systemkennwörtern getrennt ist. Sie müssen ein Samba-spezifisches Passwort für jeden Benutzer hinzufügen, der auf die Freigabe zugreifen muss.
sudo smbpasswd -a usernameSie werden aufgefordert, ein Passwort einzugeben und zu bestätigen. Dieses Passwort ist erforderlich, wenn Sie sich von einem Remote-Windows- oder Linux-Computer aus mit dem freigegebenen Ordner verbinden.
> Tipp: Verwenden Sie für jeden Samba-Benutzer ein starkes, eindeutiges Passwort. Vermeiden Sie die Wiederverwendung von Systemkennwörtern.
So aktivieren Sie das Benutzerkonto in Samba (falls es zuvor deaktiviert wurde):
sudo smbpasswd -e usernameSchritt 7: Firewall konfigurieren
Wenn Sie UFW (Uncomplicated Firewall) auf Ihrem Ubuntu-Server aktiviert haben, müssen Sie Samba-Datenverkehr durch die Firewall zulassen:
sudo ufw allow sambaÜberprüfen Sie, ob die Regel hinzugefügt wurde:
sudo ufw statusSamba verwendet die folgenden Ports:
- TCP 445 — SMB über TCP (primär)
- TCP 139 — NetBIOS-Sitzungsdienst
- UDP 137 & 138 — NetBIOS-Name- und Datagrammdienste
Schritt 8: Samba-Dienste neu starten und aktivieren
Wenden Sie Ihre Konfigurationsänderungen an, indem Sie die Samba-Dienste neu starten:
sudo systemctl restart smbd
sudo systemctl restart nmbdAktivieren Sie beide Dienste, um beim Systemstart automatisch zu starten:
sudo systemctl enable smbd
sudo systemctl enable nmbdDer Dienst nmbd verwaltet die NetBIOS-Namensauflösung, was wichtig ist, damit Windows-Clients Ihren Samba-Server nach Name im lokalen Netzwerk erkennen können.
Schritt 9: Zugriff auf den freigegebenen Ordner von einem Windows-System
Von jedem Windows-Computer im gleichen Netzwerk können Sie jetzt auf Ihre Ubuntu-Samba-Freigabe zugreifen:
- Öffnen Sie Datei-Explorer
- Geben Sie in der Adressleiste den Netzwerkpfad zu Ihrem Ubuntu-Computer ein:
ubuntu_ip_addressSharedFolderErsetzen Sie ubuntu_ip_address durch die tatsächliche IP-Adresse Ihres Ubuntu-Servers (z. B. 192.168.1.100SharedFolder)
- Geben Sie bei Aufforderung den Samba-Benutzernamen und das Passwort ein, die Sie in Schritt 6 konfiguriert haben
- Der freigegebene Ordner wird jetzt im Datei-Explorer angezeigt, und Sie können Dateien lesen, schreiben, kopieren und löschen, genau wie bei jedem lokalen Ordner
Freigabe als Netzwerklaufwerk zuordnen (optional)
Für persistenten Zugriff können Sie die Samba-Freigabe als Netzwerklaufwerk in Windows zuordnen:
- Klicken Sie mit der rechten Maustaste auf Dieser PC im Datei-Explorer
- Wählen Sie Netzwerklaufwerk verbinden
- Wählen Sie einen Laufwerksbuchstaben und geben Sie den Netzwerkpfad ein
- Aktivieren Sie Bei Anmeldung erneut verbinden für automatisches Einbinden
Schritt 10: Zugriff auf die Samba-Freigabe von einem anderen Linux-System
Auf einem anderen Linux-Computer können Sie sich mit dem Befehl smbclient mit der Samba-Freigabe verbinden.
Installieren Sie zunächst smbclient, falls es noch nicht vorhanden ist:
sudo apt install smbclient -yVerbinden Sie sich dann mit der Freigabe:
smbclient //ubuntu_ip_address/SharedFolder -U usernameGeben Sie das Samba-Passwort bei Aufforderung ein. Sie werden in eine interaktive FTP-ähnliche Shell versetzt, in der Sie Befehle wie ls, get, put und cd verwenden können, um Dateien zu navigieren und zu übertragen.
Samba-Freigabe auf Linux einbinden
Für ein nahtloseres Erlebnis können Sie die Samba-Freigabe mit cifs-utils als lokales Dateisystem einbinden:
sudo apt install cifs-utils -y
sudo mkdir /mnt/samba_share
sudo mount -t cifs //ubuntu_ip_address/SharedFolder /mnt/samba_share -o username=username,password=yourpasswordUm das Einbinden über Neustarts hinweg persistent zu machen, fügen Sie einen Eintrag zu /etc/fstab hinzu:
//ubuntu_ip_address/SharedFolder /mnt/samba_share cifs username=username,password=yourpassword,_netdev 0 0> Sicherheitstipp: Speichern Sie Anmeldedaten nicht in /etc/fstab, sondern verwenden Sie stattdessen eine Anmeldedatei mit eingeschränkten Berechtigungen.
Schritt 11: Erweiterte Samba-Konfigurationsoptionen
Die Datei smb.conf von Samba unterstützt eine breite Palette von Direktiven, die Ihnen eine granulare Kontrolle über Ihre Dateifreigabeumgebung geben. Hier sind die nützlichsten erweiterten Optionen:
Schreibgeschützter Zugriff
Um zu verhindern, dass Benutzer Dateien in einer Freigabe ändern, legen Sie fest:
read only = yesGastzugriff (anonyme Freigaben)
Um Benutzern die Verbindung ohne Passwort zu ermöglichen:
guest ok = yes
public = yes> Verwenden Sie Gastzugriff nur in vertrauenswürdigen, isolierten Netzwerken. Aktivieren Sie ihn niemals auf einem öffentlich zugänglichen Server.
Zugriff nach IP-Adresse einschränken
Um zu begrenzen, welche Computer sich mit einer Freigabe verbinden können:
hosts allow = 192.168.1.0/24
hosts deny = ALLDies beschränkt den Zugriff auf Computer im Subnetz 192.168.1.x nur.
Mehrere freigegebene Ordner
Sie können beliebig viele Freigaben definieren, indem Sie zusätzliche Blöcke zu smb.conf hinzufügen:
[Documents]
path = /home/username/documents
valid users = username
read only = no
writable = yes
[Backups]
path = /srv/backups
valid users = admin
read only = yes
browsable = noMaximale Verbindungen festlegen
Um die Anzahl der gleichzeitigen Verbindungen zu einer Freigabe zu begrenzen:
max connections = 10Bestimmten Benutzer oder Gruppe erzwingen
Um sicherzustellen, dass alle Dateien mit einem bestimmten Benutzer- oder Gruppeneigentum erstellt werden:
force user = samba_user
force group = samba_groupSchritt 12: Sicherung Ihrer Samba-Installation
Sicherheit ist von größter Bedeutung, besonders wenn Ihr Samba-Server über Ihr lokales Netzwerk hinaus zugänglich ist. Befolgen Sie diese Best Practices zur Härtung:
1. Gastzugriff deaktivieren
Deaktivieren Sie immer den anonymen Zugriff, sofern nicht ausdrücklich erforderlich:
map to guest = Never2. Starke Passwörter verwenden
Erzwingen Sie starke, eindeutige Passwörter für alle Samba-Benutzer. Vermeiden Sie Wörterbuchworte und verwenden Sie eine Kombination aus Groß- und Kleinbuchstaben, Zahlen und Symbolen.
3. Freigabesichtbarkeit einschränken
Legen Sie browsable = no auf sensiblen Freigaben fest, damit sie beim Durchsuchen des Netzwerks nicht angezeigt werden. Benutzer, die den genauen Pfad kennen, können sich trotzdem verbinden.
4. Berechtigungen für freigegebene Verzeichnisse einschränken
Wenden Sie das Prinzip der geringsten Berechtigung an – gewähren Sie nur die Berechtigungen, die Benutzer tatsächlich benötigen. Vermeiden Sie chmod 777 in der Produktion.
5. Samba an eine bestimmte Schnittstelle binden
Wenn Ihr Server mehrere Netzwerkschnittstellen hat, binden Sie Samba nur an die interne Schnittstelle:
[global]
interfaces = eth0 lo
bind interfaces only = yes6. Protokollierung aktivieren
Aktivieren Sie die Samba-Protokollierung,
