DAA IT-Umschulung
Am Schülerprojekt mitarbeiten

Du möchtest an diesem Portal mitarbeiten, eigene Ideen einbringen oder bestehende Funktionen verbessern? Dann melde dich bei Steve oder Nils.

Perfekte Vorkenntnisse sind nicht erforderlich. Wichtig sind sorgfältiges Arbeiten, Lernbereitschaft und ein verantwortungsvoller Umgang mit dem System.

Hilfreiche Kenntnisse

  • Grundlagen in HTML und CSS
  • erste Erfahrungen mit JavaScript
  • für erweiterte Arbeiten: PHP, Twig und Grav CMS
  • Grundlagen in Linux, SSH und Dateiberechtigungen
  • Verständnis für Webserver, Netzwerke und IT-Sicherheit
  • saubere Dokumentation und nachvollziehbare Tests

Das ist nicht erlaubt

  • Änderungen ohne vorherige Absprache oder ungesichert direkt am laufenden System
  • Weitergabe von Passwörtern, Zugangsdaten oder Sicherheitsschlüsseln
  • Umgehung von Benutzerrechten oder Zugriffsbeschränkungen
  • eigenständige Änderungen an Proxmox, Containern, Netzwerk oder Firewall
  • Installation zusätzlicher Dienste oder Öffnung neuer Ports ohne Freigabe
  • Löschen oder Verändern fremder Inhalte, Benutzerkonten oder Backups
  • Einbau von Trackern, Werbung oder externen Skripten ohne Prüfung
  • Hochladen personenbezogener, rechtswidriger oder urheberrechtlich nicht freigegebener Inhalte
  • Nutzung des Portals für Angriffe, Portscans oder andere unerlaubte Sicherheitstests

Alle Beiträge müssen zum Lern- und Projektzweck passen. Sicherheit, Datenschutz und Stabilität haben Vorrang.

SMB und Samba – Debian-LXC einrichten und verbinden
⌂ Startseite Adresse /anleitungen/smb-samba-komplettanleitung

SMB und Samba – Debian-LXC einrichten und sicher verbinden

Diese Anleitung führt vom leeren Debian-LXC-Container bis zu einer abgesicherten SMB-Freigabe. Sie erklärt nicht nur die Befehle, sondern auch deren Zweck, typische Alternativen und die Stellen, an denen Linux-, Samba-, Windows- und LXC-Rechte zusammenspielen.

Laborwerte: Im DAA IT-Labor besitzt der Übungsserver die Adresse 10.77.0.10. Verwendet werden die Freigabe labshare, die Gruppe smbusers und der Benutzer labuser. In anderen Umgebungen müssen diese Werte angepasst werden.

1. Was SMB und Samba voneinander unterscheidet

  • SMB ist das Netzwerkprotokoll für Datei- und Druckfreigaben.
  • Samba ist eine freie Implementierung, mit der Linux-Systeme SMB-Dienste bereitstellen oder verwenden können.
  • smbd ist der eigentliche Dateiserverdienst.
  • smbclient ist ein Kommandozeilenclient zum Prüfen von SMB-Freigaben.
  • WinSCP verwendet in dieser Anleitung SFTP über SSH. Es ist eine Alternative zur Dateiübertragung, aber kein SMB-Test.

Eine funktionierende Freigabe benötigt gleichzeitig:

Route zum Server
  + TCP-Port 445 erreichbar
  + smbd aktiv
  + gültige smb.conf
  + Linux-Benutzer und Samba-Benutzer
  + passende Dateisystemrechte
  = nutzbare SMB-Freigabe

2. Lernziel, Soll-Zustand und Voraussetzungen

Bestandteil Soll-Zustand
Container Debian-LXC, gestartet und über das vorgesehene Netz erreichbar
Samba smbd läuft und lauscht auf TCP-Port 445
Freigabe \\SERVER-IP\labshare
Zugriff nur authentifizierte Mitglieder von smbusers
Protokoll SMB3; SMB1 bleibt deaktiviert
Schutz Signierung und Transportverschlüsselung verpflichtend
Gastzugriff deaktiviert
Nachweis lokaler und entfernter Schreib-/Lese-/Löschtest

Für einen normalen Samba-Dateiserver muss ein LXC weder privilegiert sein noch nesting erhalten. Bei einem Bind-Mount vom Proxmox-Host können jedoch UID-/GID-Zuordnungen notwendig sein. Dort niemals ohne Prüfung rekursiv Besitzer auf dem Host ändern.

3. Vorher prüfen: System und Netzwerk

ip -br address
ip route
systemctl is-system-running
cat /etc/os-release

Was machen diese Befehle?

Befehl Erklärung
ip -br address zeigt Schnittstellen, Zustand und IP-Adressen in kompakter Form (-br = brief)
ip route zeigt direkt erreichbare Netze, Gateway und verwendete Schnittstelle
systemctl is-system-running meldet den allgemeinen systemd-Zustand, meist running oder degraded
cat /etc/os-release zeigt Distribution und Version, damit Anweisungen nicht auf das falsche System angewendet werden

degraded bedeutet nicht automatisch, dass Samba defekt ist. Dann gezielt prüfen:

systemctl --failed --no-pager

Im IT-Labor wird später diese Adresse erwartet:

10.77.0.10/24

4. Pakete installieren und nachweisen

sudo apt update
sudo apt install samba smbclient acl
  • sudo führt den folgenden Befehl mit administrativen Rechten aus.
  • apt update aktualisiert nur die Paketlisten; es installiert keine Aktualisierungen.
  • apt install installiert die genannten Pakete und erforderliche Abhängigkeiten.
  • samba enthält den Server.
  • smbclient ermöglicht echte SMB-Tests ohne Windows.
  • acl stellt getfacl und setfacl für den späteren Fortgeschrittenen-Teil bereit.

Danach Paket- und Dienstzustand prüfen:

dpkg-query -W samba smbclient acl
systemctl status smbd --no-pager --full

dpkg-query -W fragt die lokale Paketdatenbank ab. --no-pager verhindert eine interaktive Seitenansicht; --full verhindert gekürzte Statuszeilen.

apt install ist weitgehend wiederholbar: Bereits vorhandene Pakete werden nicht ein zweites Mal installiert. Benutzeranlage, Kennwortänderungen und das Überschreiben von Konfigurationsdateien sind dagegen zustandsverändernd und müssen bewusst ausgeführt werden.

5. Benutzer, Gruppe und Verzeichnis vorbereiten

5.1 Gruppe anlegen

sudo groupadd --force smbusers

groupadd legt eine Linux-Gruppe an. --force macht den Befehl wiederholbar: Existiert die Gruppe bereits, entsteht kein Fehler.

5.2 Linux-Benutzer prüfen oder anlegen

getent passwd labuser

Fehlt der Benutzer, wird er interaktiv angelegt:

sudo adduser labuser

adduser erzeugt Konto, Home-Verzeichnis und Kennwort. Das Linux-Kennwort ist später für SSH/SFTP relevant, aber nicht automatisch das Samba-Kennwort.

5.3 Benutzer zur Gruppe hinzufügen

sudo usermod -aG smbusers labuser
id labuser
  • -G smbusers setzt eine ergänzende Gruppe.
  • -a bedeutet append und erhält alle bisherigen ergänzenden Gruppen.

Wichtig: usermod -G smbusers labuser ohne -a kann andere Gruppenzugehörigkeiten entfernen. Nach einer Gruppenänderung muss sich der Benutzer neu anmelden; laufende Sitzungen übernehmen die neue Gruppe nicht automatisch.

5.4 Freigabeverzeichnis anlegen

sudo install -d -o root -g smbusers -m 2770 /srv/samba/labshare
Option Wirkung
-d legt ein Verzeichnis statt einer Datei an
-o root setzt root als Besitzer
-g smbusers setzt die gemeinsame Gruppe
-m 2770 setzt Rechte und SGID-Bit unmittelbar beim Anlegen

2770 bedeutet:

  • erste 2: SGID – neue Einträge erben die Verzeichnisgruppe,
  • 7: Besitzer darf lesen, schreiben und betreten,
  • 7: Gruppe darf lesen, schreiben und betreten,
  • 0: alle anderen erhalten keinen Zugriff.

Prüfen:

stat -c '%n | %U:%G | %A | %a' /srv/samba/labshare

6. Samba-Benutzer anlegen

Samba verwendet für einen Standalone-Server eine eigene Kennwortdatenbank. Der Linux-Benutzer muss deshalb zusätzlich registriert werden:

sudo smbpasswd -a labuser
sudo smbpasswd -e labuser
sudo pdbedit -L | grep '^labuser:'
  • smbpasswd -a fügt einen vorhandenen Linux-Benutzer zur Samba-Datenbank hinzu.
  • smbpasswd -e aktiviert den Eintrag.
  • pdbedit -L listet Samba-Konten.

Kennwörter nie als Argument, in Skripten oder Screenshots speichern. Ohne Kennwort im Befehl fragt smbpasswd verdeckt danach.

7. Konfiguration sichern und verstehen

Vor jeder Änderung eine datierte Sicherung erstellen:

sudo cp -a /etc/samba/smb.conf \
  "/etc/samba/smb.conf.backup-$(date +%Y%m%d-%H%M%S)"
sudo sha256sum /etc/samba/smb.conf

cp -a kopiert im Archivmodus und erhält Metadaten. Die Prüfsumme dokumentiert den Ausgangsstand; sie ist kein Ersatz für das Backup.

Konfiguration öffnen:

sudo nano /etc/samba/smb.conf

Im vorhandenen Abschnitt [global] ergänzen oder eindeutig anpassen:

[global]
   server min protocol = SMB3
   server signing = mandatory
   server smb encrypt = required
   map to guest = never
   restrict anonymous = 2
   disable netbios = yes
   smb ports = 445

Bedeutung der globalen Optionen

Option Wirkung und Abwägung
server min protocol = SMB3 lehnt ältere Dialekte ab; erhöht Schutz, kann aber sehr alte Clients ausschließen
server signing = mandatory verlangt Signierung und schützt vor Manipulation; verursacht etwas Zusatzaufwand
server smb encrypt = required verlangt SMB-Transportverschlüsselung; nur passende Clients können verbinden
map to guest = never fehlgeschlagene Anmeldung wird nicht still auf ein Gastkonto abgebildet
restrict anonymous = 2 beschränkt anonyme Abfragen
disable netbios = yes deaktiviert altes NetBIOS-Verhalten
smb ports = 445 lauscht nur auf modernem SMB-over-TCP-Port 445

SMB1 wird nicht als Kompatibilitätslösung aktiviert. Wenn ein Altgerät nur SMB1 kann, gehört es aktualisiert, ersetzt oder in ein ausdrücklich bewertetes isoliertes Netz – nicht in die normale Freigabe.

Am Dateiende die Freigabe ergänzen:

[labshare]
   path = /srv/samba/labshare
   browseable = yes
   read only = no
   guest ok = no
   valid users = @smbusers
   force group = smbusers
   create mask = 0660
   directory mask = 2770
   inherit permissions = yes
   follow symlinks = no

Bedeutung der Freigabeoptionen

Option Wirkung
[labshare] SMB-Name, den Clients hinter \\SERVER\ verwenden
path tatsächliches Linux-Verzeichnis
browseable Freigabe darf in Auflistungen erscheinen; das ist kein Zugriffsschutz
read only = no Schreiben ist grundsätzlich erlaubt, sofern Dateirechte es ebenfalls erlauben
guest ok = no Anmeldung ist erforderlich
valid users = @smbusers nur Mitglieder dieser Gruppe dürfen verbinden; @ kennzeichnet eine Gruppe
force group neue Zugriffe werden der gemeinsamen Gruppe zugeordnet
create mask Obergrenze für Rechte neuer Dateien
directory mask Obergrenze für Rechte neuer Ordner; hier einschließlich SGID
inherit permissions neue Einträge orientieren sich am Elternverzeichnis
follow symlinks = no verhindert das Folgen symbolischer Links aus der Freigabe heraus

Samba kann keine Rechte verleihen, die das Linux-Dateisystem verweigert. valid users und Unix-Rechte wirken deshalb gemeinsam.

8. Erst prüfen, dann laden

sudo testparm -s
sudo testparm -s --section-name=labshare

testparm prüft Syntax und wirksame Parameter. --section-name=labshare begrenzt die Ausgabe auf diese Freigabe.

Nur bei erfolgreicher Prüfung:

sudo systemctl reload smbd
sudo systemctl is-active smbd
sudo ss -ltnp | grep ':445'

Ein reload vermeidet eine unnötige Unterbrechung. Bereits aktive SMB-Verbindungen übernehmen neue Einstellungen nicht zwingend; für einen sauberen Test deshalb die Clientverbindung trennen und neu herstellen. Ein restart ist erst nötig, wenn ein Reload nicht genügt oder der Dienst nicht läuft.

Alternative zum systemd-Reload:

sudo smbcontrol all reload-config

Rollback

Den tatsächlich erstellten Sicherungsnamen einsetzen:

sudo cp -a /etc/samba/smb.conf.backup-YYYYMMDD-HHMMSS /etc/samba/smb.conf
sudo testparm -s
sudo systemctl restart smbd

9. Lokal mit smbclient testen

smbclient //127.0.0.1/labshare \
  -U labuser \
  -m SMB3 \
  --client-protection=encrypt
Teil Erklärung
//127.0.0.1/labshare lokale Freigabe; 127.0.0.1 ist die Loopback-Adresse
-U labuser Samba-Benutzer; Kennwort wird anschließend abgefragt
-m SMB3 verwendet SMB3
--client-protection=encrypt der Test schlägt fehl, wenn Verschlüsselung nicht ausgehandelt wird

Interaktive Befehle:

ls
mkdir testordner
put testdatei.txt
get testdatei.txt
del testdatei.txt
exit

Ein kompakter nicht-interaktiver Listentest:

smbclient //127.0.0.1/labshare \
  -U labuser -m SMB3 --client-protection=encrypt \
  -c 'ls'

10. Unter Windows verbinden

10.1 Windows-Explorer

In die Adresszeile eingeben:

\\10.77.0.10\labshare

Mit labuser und dem Samba-Kennwort anmelden. Auf gemeinsam genutzten Rechnern Zugangsdaten nicht dauerhaft speichern.

10.2 Als Netzlaufwerk über die Oberfläche

  1. Dieser PC öffnen.
  2. Netzlaufwerk verbinden auswählen.
  3. Einen freien Buchstaben, zum Beispiel S:, wählen.
  4. \\10.77.0.10\labshare eintragen.
  5. Falls erforderlich Verbindung mit anderen Anmeldeinformationen herstellen aktivieren.

10.3 Über CMD

net use S: \\10.77.0.10\labshare /user:labuser * /persistent:yes
  • S: ist der gewünschte Laufwerksbuchstabe.
  • /user:labuser bestimmt das Samba-Konto.
  • * fordert das Kennwort verdeckt an.
  • /persistent:yes stellt die Verbindung nach einer Anmeldung erneut her.

Verbindungen anzeigen und gezielt trennen:

net use
net use S: /delete

Nicht unüberlegt net use * /delete ausführen; es trennt alle Netzwerkverbindungen des Benutzers.

10.4 PowerShell-Prüfung vor der Anmeldung

Test-NetConnection -ComputerName 10.77.0.10 -Port 445

TcpTestSucceeded : True bestätigt nur TCP-Erreichbarkeit. Es beweist weder eine erfolgreiche Samba-Anmeldung noch passende Dateirechte.

11. WinSCP als SFTP-Alternative

WinSCP ist kein SMB-Client. Es kann denselben Linux-Ordner per SFTP erreichen, prüft aber weder Freigabename noch Port 445 oder Samba-Kennwort.

sudo apt install openssh-server
sudo systemctl enable --now ssh.service
sudo ss -ltnp | grep ':22'
  • enable aktiviert den Autostart.
  • --now startet den Dienst zusätzlich sofort.

WinSCP-Einstellungen:

Feld Wert
Protokoll SFTP
Host 10.77.0.10
Port 22
Benutzer labuser
Kennwort Linux-/SSH-Kennwort
Zielpfad /srv/samba/labshare

Beim ersten Zugriff den Hostschlüssel mit dem Server-Fingerabdruck vergleichen:

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

12. Direkt im DAA IT-Labor üben

System Funktion Adresse
GUI-CT 120 gemeinsamer Arbeitsplatz und Testclient 10.77.0.1
Server-CT 121 Debian-Übungsserver 10.77.0.10
  1. Im Portal Programme und Labore → IT-Labor öffnen.
  2. Zuschauer- oder Steuerkennwort über den vorgesehenen Weg verwenden.
  3. Im GUI-CT PuTTY starten.
  4. Per SSH zu 10.77.0.10, Port 22, Benutzer labuser verbinden.

Das SSH-Kennwort erhaltet ihr von Steve oder Nils. Es darf nicht in Screenshots oder Dokumentationen auftauchen.

Umgebung bestätigen:

hostname
ip -br address
ip route
sudo -v

Danach die Schritte 4 bis 9 durchführen. Eine Testdatei kann so vorbereitet werden:

printf 'SMB-Test aus dem DAA IT-Labor\n' | \
  sudo tee /srv/samba/labshare/labor-test.txt >/dev/null
sudo chown root:smbusers /srv/samba/labshare/labor-test.txt
sudo chmod 0660 /srv/samba/labshare/labor-test.txt

Vom GUI-CT im Dateimanager:

smb://10.77.0.10/labshare

Oder im Terminal:

nc -zv -w 3 10.77.0.10 445
smbclient //10.77.0.10/labshare \
  -U labuser -m SMB3 --client-protection=encrypt -c 'ls'

Der Browser ist kein SMB-Testwerkzeug. Eine Webseite auf Port 80 sagt nichts über SMB auf Port 445 aus.

Nach der Übung kann ein Portaladministrator Server zurücksetzen verwenden. Dabei werden Installationen, Benutzeränderungen und Übungsdateien im Server-CT unwiderruflich auf den sauberen Snapshot zurückgesetzt. Benötigte Nachweise vorher sichern.

13. Troubleshooting nach Ebenen

Nicht mehrere Dinge gleichzeitig ändern. Erst beobachten, dann genau eine Hypothese prüfen.

13.1 Netzwerk und Port

Server:

ip -br address
ip route
sudo ss -ltnp | grep ':445'

Windows:

Test-NetConnection 10.77.0.10 -Port 445
  • False: zuerst IP, Route und Firewall prüfen.
  • True: Transport funktioniert; bei Dienst, Anmeldung oder Rechten weitersuchen.

13.2 Dienst und Konfiguration

sudo systemctl status smbd --no-pager --full
sudo testparm -s
sudo journalctl -u smbd --since '-10 minutes' --no-pager

journalctl -u smbd zeigt nur Meldungen dieser systemd-Unit. Hohe Samba-Debuglevel nicht dauerhaft aktivieren; sie erzeugen viele Daten und können sensible Metadaten enthalten.

13.3 Konten

getent passwd labuser
getent group smbusers
id labuser
sudo pdbedit -L | grep '^labuser:'

NT_STATUS_LOGON_FAILURE weist meist auf falsches Kennwort, fehlendes oder deaktiviertes Samba-Konto hin. Kennwort neu setzen:

sudo smbpasswd labuser

13.4 Dateisystemrechte

namei -l /srv/samba/labshare
sudo -u labuser touch /srv/samba/labshare/rechte-test.txt
ls -la /srv/samba/labshare
getfacl -p /srv/samba/labshare

namei -l zeigt jedes Verzeichnis des Pfads. Ein fehlendes Ausführungsrecht an einem Elternordner kann den Zugriff verhindern, obwohl der Zielordner korrekt aussieht.

13.5 Windows-Anmeldedaten

net use
cmdkey /list

Windows erlaubt zum gleichen Server nicht beliebig mehrere parallele Verbindungen mit unterschiedlichen Konten. Nur die betroffene Verbindung und den zugehörigen gespeicherten Eintrag entfernen.

Häufige Meldungen

Meldung Führende Ursache Nächste Prüfung
Netzwerkpfad nicht gefunden Port 445, Route oder Freigabename Test-NetConnection, testparm -s
Zugriff verweigert valid users oder Unix-Rechte pdbedit, id, namei, getfacl
Kennwortschleife falsches Samba-Kennwort oder Windows-Cache smbpasswd, net use, cmdkey
Protokollfehler Client erfüllt SMB3-/Verschlüsselungsvorgabe nicht Client aktualisieren; SMB1 nicht aktivieren
WinSCP geht, Explorer nicht SFTP funktioniert, SMB nicht smbd, Port 445 und Samba-Konto prüfen
Lesen geht, Schreiben nicht read only, Gruppen- oder Dateirechte testparm, id, namei, Schreibtest

14. Fortgeschritten: Berechtigungsmodelle

14.1 Einfache Unix-Gruppen

Für ein kleines Team ist die Kombination aus smbusers, SGID und 2770 meist am übersichtlichsten. Sie ist leicht zu dokumentieren und über id, stat und namei prüfbar.

14.2 POSIX-ACLs für unterschiedliche Rollen

Wenn eine zweite Gruppe nur lesen darf:

sudo groupadd --force smbreaders
sudo setfacl -m g:smbreaders:rx /srv/samba/labshare
sudo setfacl -m d:g:smbreaders:rx /srv/samba/labshare
getfacl -p /srv/samba/labshare
  • -m verändert eine ACL.
  • g:smbreaders:rx gewährt der Gruppe Lesen und Betreten.
  • d: setzt eine Default-ACL für neu entstehende Einträge.

ACLs sind flexibler, aber schwerer zu überblicken. Die ACL-Maske kann scheinbar vorhandene Rechte begrenzen; deshalb immer getfacl auswerten und einen Test als betroffener Benutzer durchführen.

Eine passende zusätzliche Lesefreigabe könnte lauten:

[labshare-readonly]
   path = /srv/samba/labshare
   read only = yes
   guest ok = no
   valid users = @smbreaders
   server smb encrypt = required

14.3 Persönliche Home-Freigaben

Samba kann mit [homes] dynamisch persönliche Freigaben erzeugen:

[homes]
   browseable = no
   read only = no
   guest ok = no

Das eignet sich nur, wenn Linux-Home-Verzeichnisse tatsächlich als Netzlaufwerke vorgesehen und korrekt geschützt sind. Eine unbedachte Gastfreigabe in [homes] wäre besonders kritisch.

14.4 Warum force user meist keine gute Teamlösung ist

force user lässt Dateioperationen unter einem einzigen Unix-Konto laufen. Das kann Rechteprobleme scheinbar vereinfachen, zerstört aber die saubere Zuordnung, erschwert Audits und erhöht die Wirkung eines kompromittierten Kontos. Für das Labor besser Gruppen und ACLs verwenden.

15. Fortgeschritten: LXC, Bind-Mounts und Identitäten

Bei einem normalen Verzeichnis im Container gelten dessen interne UID/GID-Werte. Bei einem Proxmox-Bind-Mount liegt das Dateisystem dagegen auf dem Host. In einem unprivilegierten LXC wird Container-UID 0 üblicherweise auf eine hohe Host-UID abgebildet; genaue Werte müssen aus der tatsächlichen Konfiguration ermittelt werden.

Vor einer Änderung auf dem PVE-Host prüfen:

pct config CT-ID
grep -E '^(unprivileged|mp[0-9]+|lxc.idmap|features):' /etc/pve/lxc/CT-ID.conf

Im Container:

id labuser
getent group smbusers
stat -c '%u:%g %n' /srv/samba/labshare

Keine pauschalen rekursiven chown-Befehle auf einem Hostpfad. Ein falsches Mapping kann fremde Containerdaten unzugänglich machen oder Rechte unbeabsichtigt erweitern. Erst Mapping dokumentieren, dann gezielt entscheiden.

16. Fortgeschritten: Papierkorb und Audit

16.1 Samba-Papierkorb

Optional können Löschungen zunächst in ein internes Verzeichnis verschoben werden:

[labshare]
   vfs objects = recycle
   recycle:repository = .recycle/%U
   recycle:keeptree = yes
   recycle:versions = yes

Das ist kein Backup. Der Papierkorb liegt auf demselben Dateisystem, verbraucht Speicher und benötigt ein dokumentiertes Bereinigungs- und Aufbewahrungskonzept.

16.2 Ausgewählte Dateioperationen protokollieren

Das Modul full_audit kann gezielte Vorgänge protokollieren:

[labshare]
   vfs objects = recycle full_audit
   full_audit:prefix = %u|%I
   full_audit:success = mkdir rename unlink rmdir
   full_audit:failure = all
   full_audit:facility = LOCAL7
   full_audit:priority = NOTICE

Nicht blind full_audit:success = all verwenden: Das kann sehr große Logs erzeugen und Dateinamen sowie Benutzer- und IP-Metadaten erfassen. Datenschutz, Rotation, Zugriff und Aufbewahrungsfrist müssen vorab festgelegt werden.

Nach VFS-Änderungen:

sudo testparm -s
sudo systemctl reload smbd
sudo journalctl -u smbd --since '-5 minutes' --no-pager

17. Fortgeschritten: Aktive Sitzungen, Kapazität und Betrieb

Aktive Clients und offene Dateien anzeigen:

sudo smbstatus

Kapazität prüfen:

df -h /srv/samba/labshare
df -i /srv/samba/labshare
du -sh /srv/samba/labshare
  • df -h zeigt belegten Speicherplatz.
  • df -i zeigt Inodes; viele kleine Dateien können Inodes erschöpfen, obwohl noch Bytes frei sind.
  • du -sh summiert den belegten Platz des Freigabebaums.

Quotas sind möglich, hängen aber vom Dateisystem, Mount und gewünschten Modell ab. Sie sollten nicht ohne Prüfung der tatsächlichen Storage-Konfiguration aktiviert werden.

Eigene Performance-socket options sind meist keine sinnvolle Standardoptimierung. Moderne Kernel- und Samba-Defaults sind in der Regel geeigneter; Änderungen nur mit reproduzierbarer Messung vor und nach dem Eingriff.

18. Firewall und Namensauflösung

Bei disable netbios = yes und smb ports = 445 wird nur TCP 445 benötigt. Der Port darf ausschließlich aus dem vorgesehenen Clientnetz erreichbar sein, niemals ungefiltert aus dem Internet.

Eine IP-Adresse ist für den ersten Test eindeutig. Für dauerhaften Betrieb ist ein sauberer DNS-Name wartbarer, zum Beispiel:

\\fileserver.labor.example\labshare

DNS-Auflösung und TCP-Erreichbarkeit sind getrennt zu prüfen:

Resolve-DnsName fileserver.labor.example
Test-NetConnection fileserver.labor.example -Port 445

Firewall-Regeln hängen von Proxmox-, Container- und Netzkonfiguration ab. Keine Firewall zur Fehlersuche pauschal deaktivieren; stattdessen Zähler, Logs und den konkreten Pfad prüfen.

19. Abschlussprüfung und Bewertung

Prüfziel

Eine authentifizierte, verschlüsselte SMB3-Freigabe im Debian-LXC bereitstellen und ihre Funktion sowie Zugriffstrennung nachweisen.

Bestehen-Kriterien

  • testparm -s meldet keinen Fehler.
  • systemctl is-active smbd liefert active.
  • TCP 445 lauscht am vorgesehenen Interface.
  • smbclient meldet sich mit erzwungener Verschlüsselung an.
  • Ein Mitglied von smbusers kann erstellen, lesen und löschen.
  • Ein Benutzer außerhalb der Gruppe erhält keinen Zugriff.
  • Gastzugriff und SMB1 bleiben deaktiviert.
  • Nachweise enthalten keine Kennwörter.

Geeignete Nachweise

systemctl is-active smbd
sudo testparm -s --section-name=global
sudo testparm -s --section-name=labshare
sudo ss -ltnp | grep ':445'
getent group smbusers
namei -l /srv/samba/labshare
smbclient //127.0.0.1/labshare \
  -U labuser -m SMB3 --client-protection=encrypt -c 'ls'

Dokumentiert werden IP-Adresse, Freigabename, Gruppe, Pfad, relevante Konfigurationszeilen, Prüfausgaben und ein Client-Screenshot. Nicht dokumentiert werden Kennwörter, private Schlüssel oder andere Zugangsdaten.

20. Mini-Spickzettel

Option Häufige Bedeutung
-a je nach Programm append oder archive
-d directory
-e enable
-f file
-g / -G Gruppe / ergänzende Gruppen
-l long oder list
-m mode oder Protokollauswahl
-n numeric
-o owner
-p process oder parents
-s kompakte Ausgabe, abhängig vom Programm
-t TCP
-u / -U Unix-Benutzer / SMB-Benutzer, abhängig vom Programm
-W Paketinformation bei dpkg-query

Eine Option hat nicht in jedem Programm dieselbe Bedeutung. Deshalb bei Unsicherheit die passende Handbuchseite lesen:

man usermod
man smb.conf
man smbclient

21. Weiterführende Primärdokumentation

Die verfügbare Samba-Version im jeweiligen Debian-System kann von der aktuellen Online-Dokumentation abweichen. Für versionsabhängige Details zusätzlich die lokal installierten Handbuchseiten prüfen.