Ubuntu 26.04 / Samba-Dateifreigabe mit beschränktem Zugriff einrichten
Ein eingeschränktes Samba-Share benötigt Authentifizierung, Zugriffsregeln für das Share, Linux-Verzeichnisberechtigungen und Netzwerkeinschränkungen zusammen. Diese Übung erstellt LabShare auf einem dedizierten Server und testet sowohl einen erlaubten als auch einen ausgeschlossenen Benutzer.
Planen Sie den Server, die Konten und den Verbindungspfad.
Samba teilt Dateien über SMB (Server Message Block). Verwenden Sie die echte Adresse des Servers im Windows-Datei-Explorer oder testen Sie mit smbclient unter Linux. Halten Sie SMB innerhalb eines vertrauenswürdigen LANs oder eines verwalteten VPNs, anstatt es direkt dem Internet auszusetzen.
Verwenden Sie eine neue Labor-VM, auf der die folgenden Namen und /srv/ubuntu-share-lab nicht existieren. Auf einem bestehenden Server überprüfen Sie globale Einstellungen, Konten und Shares, bevor Sie etwas ändern. Samba-Zugangsdaten sind von den Linux-Anmeldepasswörtern getrennt, und der Linux-Benutzer muss zuerst existieren.
Erstellen Sie die Gruppe und die reinen Samba-Konten
sudo apt update
sudo apt install samba smbclient
sudo addgroup ubuntu-share-lab
sudo adduser --disabled-password --gecos "" --no-create-home --shell /usr/sbin/nologin --ingroup ubuntu-share-lab sharelab
sudo adduser --disabled-password --gecos "" --no-create-home --shell /usr/sbin/nologin sharedeny
sudo smbpasswd -a sharelab
sudo smbpasswd -a sharedeny
sudo install -d -m 2770 -o root -g ubuntu-share-lab /srv/ubuntu-share-lab
id sharelab
id sharedeny
ls -ld /srv/ubuntu-share-lab
Geben Sie die separaten Laborpasswörter interaktiv an den beiden smbpasswd-Aufforderungen ein; legen Sie die Passwörter nicht in der Befehlszeile ab. Bestätigen Sie, dass sharelab zur erlaubten Gruppe gehört und sharedeny nicht. Die führende Ziffer 2 in 2770 setzt das setgid-Bit, damit neue Einträge die Gruppe erben, während 770 Zugriff für Besitzer/Gruppe erlaubt. Wenden Sie chmod 777 nicht auf vorhandene Daten an.
Fügen Sie die Freigabe hinzu und überprüfen Sie die Konfiguration
backup_dir=$(sudo mktemp -d /root/samba-lab.XXXXXX)
sudo cp -a /etc/samba/smb.conf "$backup_dir/smb.conf"
printf "%s\n" "$backup_dir"
sudoedit /etc/samba/smb.conf
Notieren Sie den Sicherungsort und fügen Sie diesen Abschnitt einmal am Ende der vorhandenen Datei hinzu. Wenn der Freigabename bereits existiert, stoppen Sie und wählen Sie einen neuen Namen. Bewahren Sie [global] und alle anderen Freigabebereiche.
[LabShare]
path = /srv/ubuntu-share-lab
browseable = yes
read only = no
guest ok = no
valid users = @ubuntu-share-lab
create mask = 0660
directory mask = 2770
sudo testparm -s
systemctl is-active smbd.service
Erst nachdem testparm erfolgreich ist und die beabsichtigten LabShare-Einstellungen anzeigt, laden Sie den laufenden smbd mit dem folgenden Befehl neu. Wenn der Dienst inaktiv ist, überprüfen Sie zuerst seine Fehlerprotokolle. Eine Create-Maske beschränkt die Berechtigungen; sie verspricht nicht, dass jede neue Datei identische Modus-Bits erhält.
sudo smbcontrol smbd reload-config
sudo ss -lntp
Die Installation von smbclient auf dem Server installiert es nicht auf dem Client. Überprüfen Sie Server .20 und den erlaubten Linux-Client .10 im host-only Netzwerk aus der VM-Erstellungslektion, und führen Sie dann die folgende Installation auf Client .10 aus. Windows kann den UNC-Pfad im Datei-Explorer anstelle von smbclient verwenden.
sudo apt update && sudo apt install smbclient
Test erlaubten und verweigerten Zugriff vom echten Client
Direktes SMB verwendet TCP 445. Verwenden Sie die folgende Erlaubnis nur, wenn der tatsächliche Lab-Client 192.168.56.10 ist und UFW verwaltet wird. SSH-Zugriff erhalten und der zuvor überprüften Aktivierungs-/Standardrichtlinienprozedur folgen. Das Hinzufügen einer engen Regel schränkt eine bestehende breitere Erlaubnis nicht ein.
sudo ufw allow from 192.168.56.10 to any port 445 proto tcp
sudo ufw status numbered
Ersetzen Sie die untenstehende Adresse durch die tatsächliche Adresse des Servers im Client-Terminal. Authentifizieren Sie sich im Windows-Dateiexplorer unter einem UNC-Pfad wie \\server-address\LabShare. Das Testen von localhost auf dem Server überprüft nicht den Zugriff von einem anderen Gerät oder die Durchsetzung der Firewall.
smbclient //192.168.56.20/LabShare -U sharelab -c "ls"
smbclient //192.168.56.20/LabShare -U sharedeny -c "ls"
sharelab sollte das Share auflisten, während sharedeny trotz gültiger Samba-Anmeldedaten der Zugriff auf das Share verweigert werden sollte. Ein Fehler wegen falschem Passwort allein überprüft keine Gruppenbeschränkungen. Laden Sie eine kleine neue Datei mit dem erlaubten Konto hoch, laden Sie sie herunter und vergleichen Sie sie, und prüfen Sie getrennt die Verbindungsverweigerung von einem ausgeschlossenen Netzwerk.
Testen Sie das Schreiben und kehren Sie die Änderung um
lab_dir=$(mktemp -d)
printf "samba-lab\n" > "$lab_dir/check.txt"
cd "$lab_dir"
smbclient //192.168.56.20/LabShare -U sharelab -c "put check.txt check.txt; get check.txt downloaded.txt"
cmp check.txt downloaded.txt
Führen Sie dies nur aus, wenn das Lab-Share leer ist und check.txt nicht existiert. Ein erfolgreicher stiller cmp bestätigt identische übertragene Inhalte. Verwenden Sie bei Bedarf einen eindeutigen Namen. Trennen Sie Authentifizierung, Share-Autorisierung, Verzeichnisberechtigungen, Mount-Status und AppArmor-Protokolle, wenn Sie einen Fehler untersuchen.
Um das Labor außer Betrieb zu nehmen, entfernen Sie nur diesen Freigabebereich und die Firewallregel, prüfen Sie dann die Konfiguration und laden Sie sie neu. Überprüfen Sie andere Verwendungen und Eigentumsdateien, bevor Sie die neuen Konten/Gruppen löschen. Sichern Sie die Daten, bevor Sie das Verzeichnis bereinigen. Stellen Sie das gesamte Konfigurations-Backup erst nach Überprüfung auf intervenierende Änderungen wieder her.




