SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor

Storage VPS als Dateiserver fürs Büro einrichten

Samba auf dem Storage VPS, erreichbar nur über WireGuard: Freigaben pro Team, Benutzerrechte, Quotas, Windows- und macOS-Zugriff, dazu die DSGVO-Punkte für Ihren Betrieb.

Was Sie bauen: der Dateiserver auf dem Storage VPS

Ein Dateiserver fürs Büro auf einem Storage VPS ist eine Samba-Freigabe, die ausschließlich durch einen WireGuard-Tunnel erreichbar ist. Die Daten liegen auf dem großen Volume des Storage VPS, der Tunnel transportiert sie, und Port 445 antwortet zu keinem Zeitpunkt auf eine Anfrage aus dem offenen Internet. Im Windows-Explorer und im macOS-Finder sieht das Ergebnis aus wie ein Laufwerk aus dem Serverschrank.

Das ist die kurze Antwort. Der Rest dieser Anleitung erklärt, warum diese Reihenfolge zwingend ist, wie Sie Benutzer und Gruppen so anlegen, dass die Rechte in zwei Jahren noch stimmen, und was Ihr Betrieb gegenüber Kunden und Aufsichtsbehörde belegen können muss.

Der Aufbau passt für einen Betrieb bis etwa 25 Personen. Samba läuft dabei als standalone server mit eigener Benutzerdatenbank, ohne Active Directory und ohne Domänencontroller. Wer eine bestehende Windows-Domäne anbinden will, braucht einen anderen Weg: Samba als Domänenmitglied ist ein eigenes Projekt mit Kerberos, DNS und Zeitsynchronisation.

Ein Storage VPS ist für diese Aufgabe die passende Maschinenklasse, weil Sie viel Platz zu wenig CPU kaufen und ein Dateiserver genau das braucht. Falls Sie noch schwanken, klärt der Unterschied zwischen einem Storage VPS und einem normalen VPS die Frage, und wie viel Speicher ein Betrieb wirklich braucht entscheidet sich meist an den Altbeständen und nicht am laufenden Geschäft.

Warum Port 445 niemals ins Internet gehört

Sagen wir es unmissverständlich: SMB (Server Message Block, das Protokoll hinter jedem Windows-Netzlaufwerk) wird nicht direkt ins Internet gestellt. Nicht mit langem Passwort, nicht mit erzwungener Verschlüsselung, nicht kurz zum Testen. Ein offener Port 445 ist einer der Standardwege, auf denen Verschlüsselungstrojaner in kleine Betriebe kommen.

Der Grund ist die Angriffsfläche. Ein offener SMB-Port beantwortet Anmeldeversuche von jedem Rechner der Welt, und automatisierte Scanner probieren rund um die Uhr Kontonamen wie admin, scan oder backup durch. Setzen Sie log level = 1 auth_audit:3 in der smb.conf, dann steht jeder Versuch mit dem Status NT_STATUS_LOGON_FAILURE in /var/log/samba/log.smbd, und Sie sehen binnen Stunden, wie viel Verkehr das ist. Dazu kommt der Dienst selbst: Samba hatte 2017 mit CVE-2017-7494 eine Lücke, bei der eine beschreibbare Freigabe genügte, um fremden Code auf dem Server auszuführen. Eine Freigabe hinter WireGuard nimmt beiden Angriffsarten die Grundlage, weil ein Paket ohne gültigen Schlüssel schon vom Tunnel verworfen wird und den SMB-Dienst nie erreicht.

Die Prüfung dafür ist eine Zeile. Führen Sie sie von einem Rechner außerhalb des Tunnels aus, zum Beispiel über das Mobilfunknetz:

nc -zv -w 5 203.0.113.10 445

Richtig ist eine Zeitüberschreitung: Connection timed out. Meldet der Befehl succeeded!, ist Ihre Freigabe öffentlich erreichbar, und dann hat dieser Server keine andere Aufgabe, bis die Firewall stimmt.

Was Sie vorher brauchen

  • Einen Storage VPS mit Ubuntu 24.04 LTS, auf dem das große Volume unter /srv eingehängt ist.
  • Einen laufenden WireGuard-Server auf genau diesem VPS. Fehlt der noch, richten Sie zuerst WireGuard auf dem eigenen VPS ein und kommen dann hierher zurück.
  • Ein Tunnelnetz, das im Büro nirgends schon vergeben ist. Diese Anleitung benutzt 10.8.0.0/24 mit dem Server auf 10.8.0.1.
  • Zwei parallele SSH-Sitzungen, weil Sie gleich Firewallregeln setzen und sich sonst aussperren.

Testen Sie den Tunnel, bevor Sie Samba anfassen. Von einem Bürorechner mit aktivem WireGuard muss ping 10.8.0.1 antworten. Tut es das nicht, suchen Sie einen Tunnelfehler und keinen Dateiserverfehler. Diese Unterscheidung spart Ihnen einen halben Tag.

Für die Arbeitsplätze im Büro gibt es zwei Wege. Entweder bekommt jeder PC eine eigene WireGuard-Konfiguration, was für Notebooks ohnehin nötig ist. Oder der Router im Büro baut den Tunnel für alle auf, dann sieht jeder Arbeitsplatz den Server ohne zusätzliche Software. Eine FRITZ!Box mit FRITZ!OS 7.50 oder neuer bringt WireGuard von Haus aus mit. In diesem Fall enthält AllowedIPs für diesen Peer neben der Tunneladresse auch das Büronetz, sonst weiß der Server nicht, wohin er antworten soll.

Das Layout: eine Freigabe pro Team

Legen Sie für jedes Team eine eigene Freigabe an, statt einer großen Freigabe mit fein abgestuften Rechten in Unterordnern. Der Grund ist nicht Technik, sondern Wartbarkeit: Rechte, die erst drei Ordner tief vom Standard abweichen, kann nach einem Jahr niemand mehr erklären, und der erste falsch gesetzte Haken im Explorer bricht sie lautlos.

sudo install -d -m 0755 /srv/share
sudo groupadd buchhaltung
sudo groupadd vertrieb
sudo groupadd austausch
sudo install -d -m 2770 -o root -g buchhaltung /srv/share/buchhaltung
sudo install -d -m 2770 -o root -g vertrieb    /srv/share/vertrieb
sudo install -d -m 2770 -o root -g austausch   /srv/share/austausch

Die Zahl 2770 ist der wichtige Teil. Die 770 gibt Besitzer und Gruppe volle Rechte und allen anderen gar keine. Die führende 2 ist das setgid-Bit: neue Dateien und Ordner erben dadurch die Gruppe des übergeordneten Verzeichnisses. Ohne dieses Bit bekommt jede neue Datei die persönliche Hauptgruppe der Person, die sie angelegt hat. Die Kollegin sieht die Datei dann zwar, darf sie aber nicht ändern, und niemand versteht, warum. Besitzer bleibt root, damit kein einzelner Benutzer die Rechte am Wurzelverzeichnis der Freigabe verstellen kann.

austausch ist der Ordner, in dem Mitglieder aller Teams schreiben dürfen. Nehmen Sie ihn ernst: ohne einen solchen Ort schicken die Leute Dateien weiter per Mail, und dann war die Freigabe umsonst gebaut.

Benutzer und Passwörter: zwei getrennte Datenbanken

Jede Person braucht ein Unix-Konto auf dem Server und zusätzlich ein Samba-Passwort. Das sind zwei getrennte Datenbanken, und diese Trennung ist die häufigste Verwirrung beim ersten Aufbau. Das Unix-Passwort aus /etc/shadow benutzt Samba nicht. Samba führt seine eigene Datenbank in /var/lib/samba/private/passdb.tdb, und nur die zählt beim Verbinden.

sudo useradd -M -s /usr/sbin/nologin -G buchhaltung,austausch anna
sudo smbpasswd -a anna
sudo pdbedit -L

useradd -M legt kein Home-Verzeichnis an, -s /usr/sbin/nologin verhindert eine Shell, und weil kein Unix-Passwort gesetzt wird, kann sich das Konto weder per SSH noch lokal anmelden. Es existiert nur, damit die Datei auf der Platte einen Besitzer und eine Gruppe hat. smbpasswd -a fragt zweimal nach dem Passwort für die Freigabe und legt das Konto in Sambas Datenbank an. pdbedit -L listet danach alle Samba-Konten. Wer dort nicht steht, kann sich nicht verbinden.

Vergeben Sie lange, zufällige Passwörter. Die Anwender tippen das Passwort genau einmal in den Verbindungsdialog, danach liegt es im Anmeldeinformationsspeicher von Windows oder im Schlüsselbund von macOS. Ein Passwort, das sich niemand merken muss, darf 24 Zeichen haben.

Beim Ausscheiden einer Person genügt es nicht, das Windows-Passwort zu ändern. Nehmen Sie das Samba-Konto aus dem Verkehr, sonst bleibt die Freigabe für dieses Gerät offen:

sudo smbpasswd -d anna
sudo smbstatus
sudo smbcontrol smbd close-share buchhaltung

smbpasswd -d deaktiviert das Konto sofort für neue Anmeldungen, smbpasswd -x anna löscht es ganz. Eine bereits bestehende Verbindung läuft dagegen weiter, bis sie von selbst abbricht. Deshalb der dritte Befehl: close-share trennt alle offenen Sitzungen zu dieser Freigabe. smbstatus zeigt vorher, wer gerade verbunden ist.

Samba installieren und nur an wg0 binden

sudo apt update
sudo apt install -y samba
sudo systemctl disable --now nmbd

Ubuntu 24.04 liefert Samba 4.19 (Stand September 2026). nmbd ist der NetBIOS-Dienst für die alte Netzwerkumgebung. Er gehört auf diesem Server abgeschaltet, weil er per Broadcast arbeitet und Broadcasts einen WireGuard-Tunnel nicht durchqueren. Er würde also nichts bewirken außer einem weiteren offenen UDP-Port. Die Folge für die Anwender: der Server taucht in der Netzwerkumgebung des Explorers nicht auf, und alle verbinden sich über die IP-Adresse.

Dann der globale Teil von /etc/samba/smb.conf:

[global]
   workgroup = WORKGROUP
   server string = Dateiserver
   server role = standalone server
   disable netbios = yes
   dns proxy = no

   interfaces = wg0 127.0.0.1
   bind interfaces only = yes
   hosts allow = 10.8.0.0/24 127.0.0.1
   hosts deny = ALL

   server min protocol = SMB3
   smb encrypt = required
   map to guest = never
   restrict anonymous = 2

   logging = file
   log level = 1 auth_audit:3
   log file = /var/log/samba/log.%m
   max log size = 5000

Der mittlere Block ist der Kern dieser Anleitung. interfaces zusammen mit bind interfaces only = yes sorgt dafür, dass smbd den Socket nur auf der Tunneladresse und auf localhost öffnet. Ohne die zweite Zeile ist die erste wirkungslos, weil Samba dann weiter auf allen Adressen lauscht. hosts allow und hosts deny sind die zweite Schicht, diesmal im Protokoll statt im Socket. Die Reihenfolge dabei: hosts allow wird zuerst geprüft, wer dort passt, kommt trotz hosts deny = ALL durch.

smb encrypt = required verschlüsselt zusätzlich innerhalb des Tunnels. Das ist bewusst redundant: falls eine Firewallregel eines Tages verrutscht, spricht der Dienst wenigstens nicht im Klartext. Auf kleinen Plänen mit wenigen vCPU kostet das Durchsatz. Wer die Leitung wirklich ausreizen muss, misst den Unterschied erst und entscheidet dann.

server min protocol = SMB3 schließt SMB1 und SMB2 aus. SMB1 ist seit Jahren tot und in Windows 11 nicht mehr installiert. Rechner mit Windows 7 kommen mit dieser Einstellung nicht mehr auf die Freigabe, was in einem Betrieb ohnehin ein eigenes, größeres Problem wäre.

Prüfen Sie die Datei, bevor Sie den Dienst neu starten. testparm liest die Konfiguration mit demselben Parser wie Samba selbst:

sudo testparm -s
sudo systemctl restart smbd
sudo ss -tlnp | grep :445

testparm endet bei einer sauberen Datei mit Loaded services file OK. und meldet Tippfehler als Unknown parameter encountered. Achten Sie darauf: Samba selbst ignoriert unbekannte Parameter kommentarlos, deshalb ist testparm die einzige Stelle, an der ein verschriebener Parametername auffällt. Die letzte Zeile muss 10.8.0.1:445 zeigen und sonst nichts. Steht dort 0.0.0.0:445, fehlt bind interfaces only = yes. Steht dort gar nichts, gab es wg0 beim Start von smbd noch nicht.

Warum smbd nach dem Tunnel starten muss

Der letzte Fall tritt bei jedem Neustart des Servers auf, wenn Sie ihn nicht verhindern. smbd liest die Liste aus interfaces beim Start. Existiert wg0 in diesem Moment noch nicht, bindet sich der Dienst nur an 127.0.0.1 und meldet trotzdem active (running). Für die Anwender sieht das aus wie ein defekter Server, und im Log steht nichts Auffälliges.

sudo install -d /etc/systemd/system/smbd.service.d
printf '[Unit]\nRequires=wg-quick@wg0.service\nAfter=wg-quick@wg0.service\n' \
  | sudo tee /etc/systemd/system/smbd.service.d/nach-wireguard.conf
sudo systemctl daemon-reload
sudo systemctl restart smbd

Kontrollieren Sie das einmal wirklich, mit sudo reboot und danach erneut sudo ss -tlnp | grep :445. Ein Dateiserver, der nach jedem Neustart einen Handgriff braucht, fällt genau dann aus, wenn Sie im Urlaub sind.

Die Firewall: 445 nur aus dem Tunnel

bind interfaces only steht in einer Textdatei, und Textdateien ändern sich. Die Firewall ist die Schicht, die auch dann noch hält, wenn jemand später an der smb.conf bastelt. Mit nftables sieht die vollständige Regelbasis so aus:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
  chain input {
    type filter hook input priority filter; policy drop;
    ct state established,related accept
    iif lo accept
    tcp dport 22 accept
    udp dport 51820 accept
    iifname "wg0" tcp dport 445 accept
    iifname "wg0" ip protocol icmp accept
  }
  chain forward {
    type filter hook forward priority filter; policy drop;
  }
}

Diese Datei gehört nach /etc/nftables.conf und wird mit sudo systemctl enable --now nftables aktiv. flush ruleset löscht vorher alle bestehenden Regeln, also lassen Sie die Zeile weg, wenn auf dem Server schon ufw oder Docker die Regeln verwaltet. Halten Sie dabei die zweite SSH-Sitzung offen: policy drop plus ein Tippfehler in der SSH-Regel sperrt Sie aus Ihrem eigenen Server aus.

Auf einem Server, der bereits ufw benutzt, sind es zwei Zeilen:

sudo ufw allow in on wg0 to any port 445 proto tcp
sudo ufw status verbose

Danach prüfen Sie noch einmal von außen mit nc -zv -w 5 203.0.113.10 445, dass die Zeitüberschreitung kommt. Diese Prüfung wiederholen Sie nach jeder Änderung an der Firewall, nicht nur beim ersten Aufbau.

Die Freigaben in der smb.conf

Für jedes Team kommt ein eigener Abschnitt ans Ende der /etc/samba/smb.conf:

[buchhaltung]
   path = /srv/share/buchhaltung
   valid users = @buchhaltung
   read only = no
   create mask = 0660
   force create mode = 0660
   directory mask = 2770
   force directory mode = 2770
   force group = buchhaltung
   vfs objects = recycle
   recycle:repository = .papierkorb/%U
   recycle:keeptree = yes
   recycle:versions = yes

Die übrigen Freigaben entstehen daraus, indem Sie den Namen an vier Stellen ersetzen. valid users = @buchhaltung erlaubt die Gruppe statt einzelner Namen. Das ist wichtig, weil Sie sonst bei jeder Neueinstellung zwei Stellen pflegen und eine davon vergessen. Die vier Masken erzwingen die Rechte, die das setgid-Bit allein nicht garantiert: force create mode = 0660 setzt bei jeder neuen Datei die Schreibrechte für die Gruppe, auch wenn der Windows-Client etwas anderes vorschlägt.

Der recycle-Block ist kein Luxus. Löscht jemand eine Datei auf einem Netzlaufwerk, landet sie nicht im Papierkorb von Windows, sondern ist sofort weg, weil der Papierkorb eine Funktion des lokalen Dateisystems ist. Das überrascht jeden Anwender genau einmal, und danach ist es Ihr Problem. Mit vfs objects = recycle verschiebt Samba die Datei stattdessen nach .papierkorb/<benutzername> innerhalb derselben Freigabe und behält die Ordnerstruktur bei. Der Ordner beginnt mit einem Punkt und ist im Explorer deshalb ausgeblendet, über die direkte Eingabe des Namens aber erreichbar. Das ist keine Sicherung, sondern eine Rückholmöglichkeit für den Fehlgriff von vor zehn Minuten. Räumen Sie ihn regelmäßig auf, sonst wächst er still weiter:

sudo find /srv/share/*/.papierkorb -type f -mtime +30 -delete

Nach jeder Änderung an einer Freigabe genügt sudo systemctl reload smbd, was bestehende Verbindungen nicht trennt. Änderungen an interfaces oder bind interfaces only greifen dagegen erst nach sudo systemctl restart smbd, weil Samba den Socket nur beim Start öffnet.

Quotas: damit ein Team nicht die Platte für alle füllt

Samba kennt keine Größenbeschränkung pro Freigabe. Diese Aufgabe erledigt das Dateisystem. Ohne Quota sieht jeder Arbeitsplatz den gesamten freien Platz des Volumes, und die erste Person, die ein Videoarchiv hochlädt, bringt alle anderen zum Stillstand.

Für ext4 hängen Sie das Volume mit Quota-Optionen ein. Die Zeile für /srv in /etc/fstab bekommt zusätzlich die Optionen usrquota,grpquota, danach:

sudo apt install -y quota
sudo mount -o remount /srv
sudo quotacheck -cugm /srv
sudo quotaon -v /srv
sudo setquota -g buchhaltung 524288000 576716800 0 0 /srv
sudo repquota -gs /srv

Die beiden großen Zahlen sind Blöcke zu einem Kibibyte: 524288000 sind 500 GiB als weiches Limit, 576716800 sind 550 GiB als hartes Limit. Zwischen beiden darf die Gruppe eine Karenzzeit lang weiterschreiben, danach verweigert das Dateisystem neue Blöcke. Am Arbeitsplatz erscheint dann die gewohnte Windows-Meldung über zu wenig Speicherplatz, obwohl die Platte im Rechenzentrum halb leer ist. repquota -gs /srv zeigt den Stand in lesbaren Einheiten und ist die Zahl für Ihre monatliche Kontrolle.

Damit die Gruppenquota überhaupt greift, müssen die Dateien wirklich der Team-Gruppe gehören. Genau das leisten das setgid-Bit auf dem Verzeichnis und force group in der Freigabe. Wie sich ein großer Ordner im Explorer anfühlt, hängt außerdem an der Platte darunter, und was ein Storage VPS bei der Plattengeschwindigkeit leistet setzt hier die Obergrenze, gegen die keine Samba-Einstellung ankommt.

Windows: Netzlaufwerk verbinden

Am Arbeitsplatz muss zuerst der Tunnel stehen. Der offizielle WireGuard-Client für Windows importiert die Konfigurationsdatei, die Sie für diesen PC erzeugt haben. Danach muss ping 10.8.0.1 in der Eingabeaufforderung antworten, bevor Sie weitermachen.

Im Explorer: „Dieser PC", dann im Menü „Netzlaufwerk verbinden". Als Laufwerk Z: wählen, als Ordner \\10.8.0.1\buchhaltung eintragen und den Haken bei „Verbindung mit anderen Anmeldeinformationen herstellen" setzen. Als Benutzername anna eingeben, ohne Rechnernamen davor. Besteht Windows auf einer Domäne, tippen Sie WORKGROUP\anna.

Dasselbe als Befehl, was sich für ein Anmeldeskript eignet:

net use Z: \\10.8.0.1\buchhaltung /user:anna /persistent:yes
net use

Der zweite Befehl listet die verbundenen Laufwerke mit dem Status OK. Steht dort Nicht verfügbar, ist entweder der Tunnel unten oder der Dienst hört nicht auf der Tunneladresse.

Ein Punkt kostet in fast jedem Aufbau einmal Zeit: Windows erlaubt pro Server nur einen Satz Anmeldeinformationen. Verbindet sich jemand erst als anna und dann als zweiter Benutzer mit demselben Server, kommt Systemfehler 1219, dessen Text mehrere Verbindungen zu demselben Server unter verschiedenen Benutzernamen nennt. Räumen Sie mit net use * /delete auf und prüfen Sie mit cmdkey /list, welche gespeicherten Anmeldedaten Windows für 10.8.0.1 noch hält.

macOS: Freigabe im Finder verbinden

Macs im Netz brauchen eine Ergänzung auf dem Server. Sonst legt macOS für Metadaten und Ressourcen-Forks überall Dateien mit dem Präfix ._ ab, und die Windows-Anwender sehen diese Dateien im Ordner liegen. Das fruit-Modul speichert die Metadaten stattdessen in erweiterten Dateiattributen:

   vfs objects = catia fruit streams_xattr recycle
   fruit:metadata = stream
   fruit:posix_rename = yes
   fruit:veto_appledouble = no
   fruit:delete_empty_adfiles = yes
   fruit:wipe_intentionally_left_blank_rfork = yes

Die Reihenfolge ist vorgeschrieben: catia vor fruit, und fruit vor streams_xattr. Entscheiden Sie sich einmal und bleiben Sie dabei. Ändern Sie fruit:metadata später auf einer Freigabe, in der schon Dateien liegen, findet macOS die alten Metadaten nicht mehr wieder. Die Samba-Dokumentation warnt an dieser Stelle ausdrücklich vor Datenverlust.

Am Mac öffnen die Anwender den Finder und drücken Befehlstaste und K. In das Feld kommt smb://10.8.0.1/buchhaltung, danach Benutzername und Passwort, mit dem Haken für den Schlüsselbund. Damit das Laufwerk nach jeder Anmeldung wieder da ist, kommt das gemountete Volume in den Systemeinstellungen unter den Anmeldeobjekten in die Liste.

Was am Mac nicht funktioniert: der Server erscheint nicht von selbst in der Seitenleiste unter „Netzwerk". Diese Suche läuft über mDNS per Multicast, und ein WireGuard-Tunnel transportiert keine Multicast-Pakete, weil er eine Punkt-zu-Punkt-Verbindung ist. Die Adresse muss also getippt werden. Wer stattdessen einen Namen wie fileserver.firma.intern möchte, braucht einen Resolver im Tunnel, und dafür ist es der nächste Schritt, die Namensauflösung über WireGuard geradezuziehen.

Laptops, die das Büro verlassen

Für ein Notebook im Homeoffice oder beim Kunden ändert sich zweierlei. Erstens braucht das Gerät seine eigene WireGuard-Konfiguration, weil der Bürorouter nicht mehr in Reichweite ist. Setzen Sie in dieser Konfiguration PersistentKeepalive = 25, sonst schließt der Router im Hotel oder Café die UDP-Zuordnung nach kurzer Ruhe, und der Server erreicht den Client nicht mehr.

Zweitens ändert sich das Gefühl beim Arbeiten, und darauf müssen Sie die Leute vorbereiten. SMB ist ein gesprächiges Protokoll: das Öffnen eines Ordners mit vielen Dateien besteht aus vielen kleinen Anfragen nacheinander. Im Büro über eine kurze Leitung merkt das niemand. Über Mobilfunk mit spürbarer Latenz wird jeder Klick zäh, und das liegt an der Laufzeit und nicht an der Bandbreite. Große Dateien wandern deshalb weiterhin ordentlich schnell, während sich Verzeichnisse mit vielen kleinen Dateien langsam anfühlen.

Kommt ein Verbindungsabbruch mitten im Speichern dazu, meldet Word oder Excel, dass das Dokument nicht gespeichert werden konnte, und lässt eine Sperrdatei mit dem Präfix ~$ im Ordner zurück. Diese Datei blockiert danach für die Kollegen die Bearbeitung, bis jemand sie löscht. Deshalb die klare Ansage für mobile Arbeitsplätze: Datei herunterladen, lokal bearbeiten, zurückspielen. Wer laufend unterwegs arbeitet, braucht den anderen Weg aus dem nächsten Abschnitt.

Wenn große Übertragungen im Tunnel dauerhaft stocken oder ohne Fehlermeldung hängen bleiben, ist meistens die MTU (maximum transmission unit, die größte Paketgröße auf dem Weg) zu hoch gesetzt. Probieren Sie nicht runde Zahlen der Reihe nach durch, sondern arbeiten Sie die MTU im Tunnel systematisch aus und klemmen Sie die TCP-MSS.

DSGVO und GoBD: was Ihr Betrieb belegen muss

Sobald auf der Freigabe personenbezogene Daten liegen, und das tun sie spätestens mit der ersten Bewerbung im Ordner der Personalabteilung, verarbeitet Ihr VPS-Anbieter diese Daten in Ihrem Auftrag. Nach Artikel 28 DSGVO brauchen Sie dafür einen Auftragsverarbeitungsvertrag, kurz AVV. Seriöse Anbieter stellen ihn im Kundenkonto zum Abschluss bereit oder schicken ihn auf Anfrage. Holen Sie ihn vor dem ersten Upload, nicht nach der ersten Prüfung. Der Dateiserver gehört außerdem als eigener Eintrag in Ihr Verzeichnis von Verarbeitungstätigkeiten nach Artikel 30.

Dazu kommen vier Punkte, nach denen ein Betrieb erfahrungsgemäß gefragt wird. Der erste ist der Serverstandort. Gemeint ist der Ort des Rechenzentrums, nicht die Adresse im Impressum des Anbieters, und Sie sollten ihn schriftlich haben. Ob ein Standort in der EU allein genügt, hängt zusätzlich am Mutterkonzern des Anbieters, und diese Bewertung gehört zu Ihrem Datenschutzbeauftragten. Was ein Standort in der EU kostet und wie er sich belegen lässt wird zur reinen Rechenaufgabe, sobald die Anforderung feststeht.

Der zweite Punkt ist die Verschlüsselung im Ruhezustand. Eine vom Anbieter verwaltete Verschlüsselung schützt gegen eine gestohlene Platte, nicht gegen einen Zugriff durch den Anbieter selbst, weil dort der Schlüssel liegt. Wenn Ihr Schutzbedarf das zweite verlangt, verschlüsseln Sie selbst. Rechnen Sie dabei ehrlich: ein LUKS-Volume, das Sie nach jedem Neustart von Hand aufschließen, bedeutet Handarbeit zur Unzeit, und ein Schlüssel, der auf demselben Server liegt, schwächt genau die Aussage, die Sie treffen wollten. Die Verschlüsselung der Daten auf dem Storage VPS stellt die Varianten mit ihren jeweiligen Nachteilen gegenüber.

Der dritte Punkt ist die Protokollierung. Wer wann welche Datei gelöscht hat, beantwortet Samba mit dem Modul full_audit, das die Aktionen ins Syslog schreibt:

   vfs objects = catia fruit streams_xattr recycle full_audit
   full_audit:success = mkdir rename unlink rmdir pwrite
   full_audit:failure = none
   full_audit:facility = local5
   full_audit:priority = notice

Ein Hinweis, der außerhalb Deutschlands selten steht: eine Protokollierung, die das Verhalten einzelner Beschäftigter sichtbar macht, ist nach dem Betriebsverfassungsgesetz mitbestimmungspflichtig. Wenn es einen Betriebsrat gibt, sprechen Sie vorher mit ihm, und legen Sie schriftlich fest, wie lange Sie die Protokolle aufbewahren.

Der vierte Punkt ist das Löschkonzept. Ein Löschverlangen nach Artikel 17 DSGVO betrifft auch die Sicherungen, und ein Backup, das Sie unbegrenzt aufheben, hält gelöschte Daten am Leben. Legen Sie fest, wie lange Sicherungen liegen bleiben. Davon getrennt steht die Frage, ob überhaupt eine zweite Kopie existiert: die Freigabe auf dem Storage VPS ist zunächst nur ein Ort, und ob ein Storage VPS schon ein Backup ist beantwortet sich daran, was passiert, wenn jemand einen Ordner falsch verschiebt.

Und die unbequeme Nachricht zum Schluss: eine SMB-Freigabe erfüllt die GoBD nicht. Buchungsbelege müssen unveränderbar und nachvollziehbar abgelegt sein, und in einem Ordner, in dem jeder Berechtigte eine Datei ersetzen kann, ohne dass es auffällt, ist beides nicht gegeben. Rechnungen gehören in ein Dokumentenmanagementsystem oder in das System Ihrer Steuerkanzlei. Die Aufbewahrungsfrist für Buchungsbelege liegt seit dem Vierten Bürokratieentlastungsgesetz bei acht Jahren, die für Jahresabschlüsse weiterhin bei zehn (Stand September 2026). Das hier ist eine technische Anleitung und kein Rechtsrat, die Fristen prüft Ihre Steuerberatung.

Wann Nextcloud die bessere Wahl ist

Eine SMB-Freigabe ist stark, wenn die Arbeitsplätze am selben Ort stehen, direkt am Ablageort gearbeitet wird und niemand eine zweite Kopie auf dem Gerät haben soll. Sie ist schwach, sobald Geräte ohne Tunnel dazukommen, Kunden einen Link auf eine Datei bekommen sollen oder jemand ohne Verbindung weiterarbeiten muss. Für diese Fälle ist Nextcloud gebaut: Synchronisation auf das Gerät, Freigabelinks mit Ablaufdatum, Versionen und Papierkorb in der Weboberfläche, dazu Apps für Telefone.

Der Preis dafür ist Betriebsaufwand. Nextcloud ist eine PHP-Anwendung mit Datenbank, Webserver, Hintergrundjobs und einem Aktualisierungspfad, den Sie einhalten müssen. Auf einem Storage VPS mit wenig CPU und viel Platte kommen Eigenheiten dazu, die die Grenzen von Nextcloud auf einem VPS im Einzelnen beschreiben. Samba dagegen ist ein Dienst, eine Konfigurationsdatei und Sicherheitsupdates aus der Distribution.

Beides parallel zu betreiben ist technisch möglich und selten eine gute Idee, weil dann niemand mehr sicher sagen kann, wo die aktuelle Fassung einer Datei liegt. Entscheiden Sie sich pro Datenbestand, nicht pro Person.

Wenn im Büro bereits ein NAS steht, das gut läuft, kann die schnelle Freigabe im lokalen Netz genau richtig bleiben, und der Storage VPS wird zum Ziel für die Auslagerung. Ein NAS auf einen Storage VPS zu sichern löst dann das eigentliche Problem, nämlich die Kopie außer Haus, ohne die Arbeitsweise im Betrieb umzustellen.

Fehlerbilder und die Meldungen, die Sie sehen

Testen Sie immer zuerst vom Server aus, dann von einem Client. Auf dem Server:

sudo smbclient -L //10.8.0.1 -U anna

NT_STATUS_LOGON_FAILURE. Das Samba-Passwort stimmt nicht, oder das Konto ist deaktiviert. Das Unix-Passwort spielt keine Rolle, weil Samba es nicht liest. sudo pdbedit -L zeigt, ob das Konto in Sambas Datenbank überhaupt existiert, sudo smbpasswd -e anna schaltet ein deaktiviertes Konto wieder frei.

NT_STATUS_ACCESS_DENIED beim Betreten einer Freigabe. Das Konto existiert, gehört aber nicht zu der Gruppe aus valid users. id anna zeigt die Gruppen. Wichtig: eine frisch hinzugefügte Gruppe wirkt erst in einer neuen Sitzung, weil Samba die Gruppenzugehörigkeit beim Anmelden ausliest und danach nicht mehr nachschlägt. Am Windows-Rechner also net use * /delete und neu verbinden, sonst suchen Sie eine Stunde lang einen Fehler in einer Konfiguration, die längst stimmt.

Zeitüberschreitung, in Windows „Der Netzwerkpfad wurde nicht gefunden" mit Fehler 0x80070035. Zuerst ping 10.8.0.1 vom Client. Antwortet der Server nicht, ist der Tunnel unten. Antwortet er, prüfen Sie auf dem Server sudo ss -tlnp | grep :445. Zeigt das nichts, ist smbd vor wg0 gestartet und hat sich nur an 127.0.0.1 gebunden.

Der Explorer fragt nach Anmeldedaten, obwohl alles stimmt. Meist liegen alte Anmeldeinformationen im Speicher. cmdkey /list zeigt sie, cmdkey /delete:10.8.0.1 entfernt den Eintrag, danach fragt Windows sauber neu.

Eine Datei ist verschwunden. Über SMB gelöschte Dateien gehen nicht in den Windows-Papierkorb. Mit dem recycle-Modul liegt die Datei unter .papierkorb/<benutzername> in derselben Freigabe, ohne das Modul ist sie weg und nur aus einer Sicherung zu holen.

Der Dienst startet nach einer Änderung nicht mehr. sudo testparm -s nennt die fehlerhafte Zeile, journalctl -u smbd -n 50 zeigt den Rest. Prüfen Sie beides, bevor Sie irgendetwas anderes ändern.

FAQ

Kann ich die Freigabe nicht doch direkt aus dem Internet erreichbar machen?

Technisch ja, praktisch nein. Ein öffentlich erreichbarer Port 445 wird permanent gescannt und ist ein bekannter Einstiegsweg für Verschlüsselungstrojaner. SMB kennt außerdem keinen sinnvollen Reverse Proxy und keine zweite Stufe bei der Anmeldung, ein geratenes Passwort reicht also. Setzen Sie stattdessen WireGuard davor, oder nehmen Sie für den Zugriff von außen ein Werkzeug, das für das offene Internet gebaut ist und über HTTPS spricht, zum Beispiel Nextcloud.

Warum sieht Windows den Dateiserver nicht in der Netzwerkumgebung?

Die Netzwerkumgebung findet Server über Broadcast und Multicast, und beides überträgt ein WireGuard-Tunnel nicht, weil er eine Punkt-zu-Punkt-Verbindung zwischen zwei Adressen ist. Zusätzlich ist der NetBIOS-Dienst nmbd in diesem Aufbau bewusst abgeschaltet. Verbinden Sie sich über die Tunneladresse, also \\10.8.0.1\buchhaltung. Wer lieber einen Namen tippt, trägt ihn in C:\Windows\System32\drivers\etc\hosts ein oder betreibt einen DNS-Resolver im Tunnel.

Wohin gehen Dateien, die jemand im Netzlaufwerk löscht?

Standardmäßig nirgendwohin, sie sind sofort gelöscht. Der Papierkorb von Windows und macOS ist eine Funktion des lokalen Dateisystems und greift bei einer Netzwerkfreigabe nicht. Mit vfs objects = recycle in der Freigabe verschiebt Samba gelöschte Dateien nach .papierkorb/<benutzername> innerhalb derselben Freigabe, mit erhaltener Ordnerstruktur. Das ersetzt keine Sicherung, weil es auf derselben Platte im selben Verzeichnisbaum liegt, rettet aber den häufigsten Fall, nämlich das versehentliche Löschen von vor zehn Minuten.

Brauche ich einen Auftragsverarbeitungsvertrag mit dem VPS-Anbieter?

Sobald personenbezogene Daten auf der Freigabe liegen, ja. Der Anbieter verarbeitet diese Daten in Ihrem Auftrag, und Artikel 28 DSGVO verlangt dafür einen Vertrag mit festgelegtem Inhalt. Verschlüsselung ersetzt ihn nicht, sie ist eine technische Maßnahme und keine Ausnahme von der Vertragspflicht. Schließen Sie den AVV vor dem ersten Upload ab, notieren Sie den Standort des Rechenzentrums und nehmen Sie den Dateiserver in Ihr Verzeichnis von Verarbeitungstätigkeiten auf. Diese Anleitung ist technisch und kein Rechtsrat.

Warum ist das Öffnen einer Excel-Datei aus dem Homeoffice so langsam?

SMB stellt viele kleine Anfragen nacheinander, und jede kostet eine volle Laufzeit hin und zurück. Über eine Leitung mit hoher Latenz summiert sich das, während die reine Bandbreite kaum eine Rolle spielt. Deshalb kopiert sich eine große Datei erträglich, ein Ordner mit tausenden kleinen Dateien fühlt sich aber zäh an. Für mobiles Arbeiten ist die Datei lokal zu kopieren, zu bearbeiten und zurückzuspielen. Bleiben Übertragungen ganz stehen statt nur langsam zu sein, ist meist die MTU im Tunnel zu hoch.

#storage-vps#samba#wireguard#file-sharing#dsgvo