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 Freigabelabshare, die Gruppesmbusersund der Benutzerlabuser. 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.
smbdist der eigentliche Dateiserverdienst.smbclientist 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
sudoführt den folgenden Befehl mit administrativen Rechten aus.apt updateaktualisiert nur die Paketlisten; es installiert keine Aktualisierungen.apt installinstalliert die genannten Pakete und erforderliche Abhängigkeiten.sambaenthält den Server.smbclientermöglicht echte SMB-Tests ohne Windows.aclstelltgetfaclundsetfaclfü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 installist 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 smbuserssetzt eine ergänzende Gruppe.-abedeutet append und erhält alle bisherigen ergänzenden Gruppen.
Wichtig:
usermod -G smbusers labuserohne-akann 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 -afügt einen vorhandenen Linux-Benutzer zur Samba-Datenbank hinzu.smbpasswd -eaktiviert den Eintrag.pdbedit -Llistet 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
- Dieser PC öffnen.
- Netzlaufwerk verbinden auswählen.
- Einen freien Buchstaben, zum Beispiel
S:, wählen. \\10.77.0.10\labshareeintragen.- 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:labuserbestimmt das Samba-Konto.*fordert das Kennwort verdeckt an./persistent:yesstellt 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'
enableaktiviert den Autostart.--nowstartet 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 |
- Im Portal Programme und Labore → IT-Labor öffnen.
- Zuschauer- oder Steuerkennwort über den vorgesehenen Weg verwenden.
- Im GUI-CT PuTTY starten.
- Per SSH zu
10.77.0.10, Port22, Benutzerlabuserverbinden.
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
-mverändert eine ACL.g:smbreaders:rxgewä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 -hzeigt belegten Speicherplatz.df -izeigt Inodes; viele kleine Dateien können Inodes erschöpfen, obwohl noch Bytes frei sind.du -shsummiert 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 -smeldet keinen Fehler.systemctl is-active smbdliefertactive.- TCP 445 lauscht am vorgesehenen Interface.
smbclientmeldet sich mit erzwungener Verschlüsselung an.- Ein Mitglied von
smbuserskann 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
- Samba-Handbuch zu smb.conf
- Samba-Handbuch zu smbclient
- Samba-Papierkorb vfs_recycle
- Samba-Auditmodul vfs_full_audit
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.