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.
- 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.
- Einrichten des Samba4 Active Directory Domain Controllers – Teil 1 bis 14
- Mounten/Unmounten von lokalen und Netzwerk-Dateisystemen (Samba & NFS) unter Linux
- Verwendung von ACLs (Access Control Lists) und Mounten von Samba/NFS-Freigaben
- 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.







