Website-Suche

So installieren Sie Samba auf Ubuntu für die Dateifreigabe unter Windows


Samba ist eine kostenlose/quelloffene und häufig verwendete Software zum Austausch von Dateien und Druckdiensten zwischen Unix-ähnlichen Systemen, einschließlich Linux- und Windows-Hosts, im selben Netzwerk.

In dieser Anleitung zeigen wir, wie Sie Samba4 für die grundlegende Dateifreigabe zwischen einem Ubuntu-System und Windows-Rechnern einrichten. Wir werden zwei mögliche Szenarien behandeln: anonyme (unsichere) sowie sichere Dateifreigabe.

Empfohlene Lektüre: So installieren Sie Samba4 unter CentOS/RHEL 7 für die Dateifreigabe unter Windows

Beachten Sie, dass Samba ab Version 4.0 als Active Directory (AD) Domain Controller (DC) verwendet werden kann. Wir haben eine spezielle Serie für die Einrichtung des Samba4 Active Directory Domain Controllers organisiert, die wichtige Themen unter Ubuntu, CentOS und Windows umfasst.

  1. Einrichten des Samba4 Active Directory-Domänencontrollers

Installieren und Konfigurieren von Samba in Ubuntu

Der Samba-Server kann aus den standardmäßigen Ubuntu-Repositories mit dem apt-Paketmanager-Tool installiert werden, wie gezeigt.

$ sudo apt install samba samba-common python-dnspython

Nach der Installation des Samba-Servers ist es nun an der Zeit, den Samba-Server wie folgt zu konfigurieren: unsichere anonyme und sichere Dateifreigabe.

Dazu müssen wir die Samba-Hauptkonfigurationsdatei /etc/samba/smb.conf bearbeiten (in der verschiedene Konfigurationsanweisungen erläutert werden).

Sichern Sie zunächst die ursprüngliche Samba-Konfigurationsdatei wie folgt.

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Anschließend fahren wir mit der Konfiguration von Samba für anonyme und sichere Filesharing-Dienste fort, wie unten beschrieben.

Wichtig: Bevor Sie fortfahren, stellen Sie sicher, dass sich der Windows-Rechner in der gleichen Arbeitsgruppe befindet, die auf dem Ubuntu-Server konfiguriert wird.

Überprüfen der Arbeitsgruppeneinstellungen von Windows-Computern

Melden Sie sich bei Ihrem Windows-Computer an, klicken Sie mit der rechten Maustaste auf "Dieser PC" oder "Arbeitsplatz" → Eigenschaften → Erweiterte Systemeinstellungen → Computername, um die Arbeitsgruppe zu bestätigen.

Alternativ können Sie die Eingabeaufforderung öffnen und anzeigen, indem Sie den folgenden Befehl ausführen und nach "workstation domain" suchen.

>net config workstation

Sobald Sie Ihre Windows-Arbeitsgruppe kennen, ist es an der Zeit, den Samba-Server für die Dateifreigabe zu konfigurieren.

Anonyme Samba-Dateifreigabe

Beginnen Sie zunächst damit, ein gemeinsames Samba-Verzeichnis zu erstellen, in dem die Dateien gespeichert werden.

$ sudo mkdir -p /srv/samba/anonymous_shares

Legen Sie dann die entsprechenden Berechtigungen für das Verzeichnis fest.

$ sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Öffnen Sie nun die Konfigurationsdatei.

$ sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Bearbeiten oder ändern Sie anschließend die Direktiveneinstellungen wie unten beschrieben.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Überprüfen Sie nun die aktuellen Samba-Einstellungen, indem Sie den folgenden Befehl ausführen.

$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Starten Sie dann die Samba-Dienste neu, um die oben genannten Änderungen vorzunehmen.

$ sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Testen der anonymen Samba-Dateifreigabe

Gehen Sie zum Windows-Computer und öffnen Sie "Netzwerk" in einem Windows Explorer-Fenster. Klicken Sie auf den Ubuntu-Host (in unserem Fall TECMINT) oder versuchen Sie, über die IP-Adresse auf den Samba-Server zuzugreifen.

\2.168.43.168

Hinweis: Verwenden Sie den Befehl ifconfig, um die IP-Adresse Ihres Ubuntu-Servers abzurufen.

Öffnen Sie dann das anonyme Verzeichnis und versuchen Sie, dort Dateien hinzuzufügen, um sie mit anderen Benutzern zu teilen.

Sichere Samba-Dateifreigabe

Um eine Samba-Freigabe mit einem Passwort zu schützen, müssen Sie eine Gruppe "smbgrp" erstellen und für jeden Benutzer ein Passwort festlegen. In diesem Beispiel verwende ich aaronkilik als Benutzer und das Passwort als "tecmint".

$ sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Hinweis: Der Samba-Sicherheitsmodus: security=user erfordert, dass Clients einen Benutzernamen und ein Passwort eingeben, um eine Verbindung zu Freigaben herzustellen.

Samba-Benutzerkonten sind von Systemkonten getrennt, Sie können jedoch optional das Paket libpam-winbind installieren, das zum Synchronisieren von Systembenutzern und Passwörtern mit der Samba-Benutzerdatenbank verwendet wird.

$ sudo apt install libpam-winbind

Erstellen Sie dann das sichere Verzeichnis, in dem die freigegebenen Dateien aufbewahrt werden.

$ sudo mkdir -p /srv/samba/secure_shares

Legen Sie als Nächstes die entsprechenden Berechtigungen für das Verzeichnis fest.

$ sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Öffnen Sie nun die Konfigurationsdatei.

$ sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Bearbeiten oder ändern Sie anschließend die Direktiveneinstellungen wie unten beschrieben.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Führen Sie wie zuvor diesen Befehl aus, um Ihre aktuellen Samba-Einstellungen anzuzeigen.

$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Wenn Sie mit den oben genannten Konfigurationen fertig sind, starten Sie die Samba-Dienste neu, um die Änderungen zu übernehmen.

$ sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Testen der sicheren Samba-Dateifreigabe

Öffnen Sie wie zuvor auf dem Windows-Computer "Netzwerk" in einem Windows Explorer-Fenster. Klicken Sie auf den Ubuntu-Host (in unserem Fall TECMINT). Möglicherweise erhalten Sie die folgende Fehlermeldung, wenn nicht, fahren Sie mit dem nächsten Schritt fort.

Versuchen Sie, über die IP-Adresse auf den Server zuzugreifen, z.B. \\192.168.43.168 wie folgt. Geben Sie dann die Zugangsdaten (Benutzername und Passwort) für den Benutzer aaronkilik ein und klicken Sie auf OK.

Sie sehen nun alle freigegebenen Verzeichnisse, klicken Sie auf Sicher, um es zu öffnen.

Sie können einige Dateien sicher für andere berechtigte Benutzer im Netzwerk freigeben, indem Sie sie in diesem Verzeichnis ablegen.

Aktivieren Sie Samba in der UFW-Firewall in Ubuntu

Wenn Sie die UFW-Firewall auf Ihrem System aktiviert/aktiv haben, müssen Sie die Regeln hinzufügen, die es Samba ermöglichen, Ihre Firewall zu passieren.

Um dies zu testen, haben wir das Netzwerkschema 192.168.43.0 verwendet. Führen Sie die folgenden Befehle aus und geben Sie Ihre Netzwerkadresse an.

$ sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

Sie können sich auch diese nützlichen Artikel über die gemeinsame Nutzung von Samba-Dateien in einem Netzwerk ansehen.

  1. Einrichten des Samba4 Active Directory Domain Controllers – Teil 1 bis 14
  2. Mounten/Unmounten von lokalen und Netzwerk-Dateisystemen (Samba & NFS) unter Linux
  3. Verwendung von ACLs (Access Control Lists) und Mounten von Samba/NFS-Freigaben
  4. So beheben Sie die SambaCry-Schwachstelle (CVE-2017-7494) in Linux-Systemen

Das ist alles! In dieser Anleitung haben wir Ihnen gezeigt, wie Sie Samba4 für die anonyme und sichere Dateifreigabe zwischen Ubuntu- und Windows-Rechnern einrichten. Verwenden Sie das untenstehende Feedback-Formular, um uns Ihre Gedanken mitzuteilen.

Verwandte Artikel: