Website-Suche

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


Samba ist eine kostenlose/Open-Source-Software für die gemeinsame Nutzung von Dateien und Druckdiensten zwischen Unix-ähnlichen Systemen, einschließlich Linux- und Windows-Hosts im selben Netzwerk.

In dieser Anleitung zeigen wir, wie man Samba4 für die grundlegende Dateifreigabe zwischen Ubuntu-Systemen und Windows-Rechnern einrichtet. Wir werden zwei mögliche Szenarien behandeln: anonym (unsicher) sowie sichere Dateifreigabe.

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

Beachten Sie, dass Samba ab Version 4.0 als Active Directory (AD)-Domänencontroller (DC) verwendet werden kann. Wir haben eine spezielle Reihe zum Einrichten des Samba4 Active Directory Domain Controllers organisiert, die Schlüsselthemen unter Ubuntu, CentOS und Windows umfasst.

  1. Einrichten des Samba4 Active Directory-Domänencontrollers

Installieren und konfigurieren Sie Samba in Ubuntu

Der Samba-Server kann wie gezeigt mit dem apt-Paketmanager-Tool aus den Standard-Ubuntu-Repositorys installiert werden.

sudo apt install samba samba-common python-dnspython

Sobald der Samba-Server installiert ist, ist es nun an der Zeit, den Samba-Server als unsichere anonyme und sichere Dateifreigabe zu konfigurieren.

Dazu müssen wir die Hauptkonfigurationsdatei von Samba /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 konfigurieren wir Samba für anonyme und sichere Dateifreigabe-Dienste, wie unten erläutert.

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

Überprüfen Sie die Windows-Maschinenarbeitsgruppeneinstellungen

Melden Sie sich bei Ihrem Windows-Computer an, klicken Sie mit der rechten Maustaste auf „Dieser PC“ oder „Mein Computer Eigenschaften Erweiterte Systemeinstellungen Computername, um die Arbeitsgruppe zu überprüfen.

Alternativ können Sie die Eingabeaufforderung öffnen und sie anzeigen, indem Sie den folgenden Befehl ausführen und nach „Workstation-Domäne“ 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

Erstellen Sie zunächst ein gemeinsames Samba-Verzeichnis, 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 Richtlinieneinstellungen 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 zu übernehmen.

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 (TECMINT in unserem Fall) oder versuchen Sie andernfalls, über seine 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 Verzeichnis Anonym 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 gespeichert 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 Richtlinieneinstellungen 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

Sobald 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 (TECMINT für unseren Fall). Möglicherweise wird die folgende Fehlermeldung angezeigt. Wenn nicht, fahren Sie mit dem nächsten Schritt fort.

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

Sie sehen nun alle freigegebenen Verzeichnisse. Klicken Sie zum Öffnen auf Sicher.

Sie können einige Dateien sicher mit anderen zugelassenen Benutzern im Netzwerk teilen, indem Sie sie in diesem Verzeichnis ablegen.

Aktivieren Sie Samba in der UFW-Firewall in Ubuntu

Wenn auf Ihrem System die UFW-Firewall aktiviert/aktiv ist, müssen Sie die Regeln hinzufügen, damit Samba Ihre Firewall passieren kann.

Um dies zu testen, haben wir das Netzwerkschema 192.168.43.0 verwendet. Führen Sie die folgenden Befehle aus und geben Sie dabei 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 auch diese nützlichen Artikel zum Thema Samba-Dateifreigabe in einem Netzwerk lesen.

  1. Einrichten des Samba4 Active Directory-Domänencontrollers – Teil 1 bis 14
  2. So mounten/unmounten Sie lokale und Netzwerkdateisysteme (Samba und NFS) unter Linux
  3. Verwenden von ACLs (Zugriffskontrolllisten) und Mounten von Samba-/NFS-Freigaben
  4. So beheben Sie die SambaCry-Sicherheitslücke (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. Nutzen Sie das Feedback-Formular unten, um uns Ihre Gedanken mitzuteilen.