15%

15% auf alle Hosting-Dienste sparen

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

Benutze den Code:

Skills
Anfangen
31.10.2024

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 -y

Warten 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 -y

Nach Abschluss der Installation überprüfen Sie, ob die Installation erfolgreich war, indem Sie die Samba-Version überprüfen:

smbd --version

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Version 4.15.13-Ubuntu

Sie können auch überprüfen, ob der Samba-Dienst ausgeführt wird:

sudo systemctl status smbd

Die 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.bak

Dies 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 ~/shared

4.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.conf

Scrollen 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 = yes

Ersetzen Sie username durch Ihren tatsächlichen Ubuntu-Systembenutzernamen.

Verständnis jeder Direktive

DirektiveBeschreibung
pathDer absolute Pfad zum freigegebenen Verzeichnis
availableOb die Freigabe für Benutzer verfügbar ist
valid usersBeschränkt den Zugriff auf die aufgelisteten Benutzer
read onlyAuf no setzen, um Schreibzugriff zu ermöglichen
browsableOb die Freigabe beim Durchsuchen des Netzwerks angezeigt wird
publicErmöglicht den Zugriff ohne Authentifizierung (mit Vorsicht verwenden)
writableErmö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:

testparm

Dieser 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 username

Sie 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 username

Schritt 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 status

Samba 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 nmbd

Aktivieren Sie beide Dienste, um beim Systemstart automatisch zu starten:

sudo systemctl enable smbd
sudo systemctl enable nmbd

Der 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:

  1. Öffnen Sie Datei-Explorer
  2. Geben Sie in der Adressleiste den Netzwerkpfad zu Ihrem Ubuntu-Computer ein:
   ubuntu_ip_addressSharedFolder

Ersetzen Sie ubuntu_ip_address durch die tatsächliche IP-Adresse Ihres Ubuntu-Servers (z. B. 192.168.1.100SharedFolder)

  1. Geben Sie bei Aufforderung den Samba-Benutzernamen und das Passwort ein, die Sie in Schritt 6 konfiguriert haben
  2. 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:

  1. Klicken Sie mit der rechten Maustaste auf Dieser PC im Datei-Explorer
  2. Wählen Sie Netzwerklaufwerk verbinden
  3. Wählen Sie einen Laufwerksbuchstaben und geben Sie den Netzwerkpfad ein
  4. 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 -y

Verbinden Sie sich dann mit der Freigabe:

smbclient //ubuntu_ip_address/SharedFolder -U username

Geben 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=yourpassword

Um 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 = yes

Gastzugriff (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 = ALL

Dies 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 = no

Maximale Verbindungen festlegen

Um die Anzahl der gleichzeitigen Verbindungen zu einer Freigabe zu begrenzen:

max connections = 10

Bestimmten Benutzer oder Gruppe erzwingen

Um sicherzustellen, dass alle Dateien mit einem bestimmten Benutzer- oder Gruppeneigentum erstellt werden:

force user = samba_user
force group = samba_group

Schritt 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 = Never

2. 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 = yes

6. Protokollierung aktivieren

Aktivieren Sie die Samba-Protokollierung,

15%

15% auf alle Hosting-Dienste sparen

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

Benutze den Code:

Skills
Anfangen