Benutzer-Werkzeuge

Webseiten-Werkzeuge


systeme:samba:entwurf-v1

Der gläserne Tresor · Samba-Entwurf V1

Stand: 2026-11-05 · Geltung: OMNISRV-Samba · Status: Entwurf im HPMS-Wiki. Datenschutz · Berechtigungen · Backup und Wiederherstellung

Vorwort

Der Tresor stellt gemeinsame und persönliche Dateien für berechtigte Windows-Benutzer bereit. Er verschlüsselt die gespeicherten Dateien und sichert die lesbare Arbeitsansicht. Die Verschlüsselung ersetzt keine Benutzerrechte: Während des Betriebs müssen autorisierte Prozesse die Dateien lesen können.


Teil 1 · Die Aktenablage einfach erklärt

Ein Mitarbeiter öffnet eine Freigabe im Windows-Explorer. Samba prüft seine Anmeldung und die Rechte am gewünschten Objekt. Die entschlüsselte Arbeitsansicht entsteht innerhalb des Samba-Containers und liefert dort die Dateien an den Dienst. Außerhalb des Containers bleibt der dauerhafte Dateibestand verschlüsselt.

flowchart LR A([Windows]) --> B([Samba-Freigabe]) --> C([Rechteprüfung]) --> D([Arbeitsansicht]) classDef quiet fill:#f2f2f2,stroke:#929292,color:#222,stroke-width:1px; class A,B,C,D quiet; linkStyle default stroke:#929292,stroke-width:1px;

Warum gocryptfs? Die dateibasierte Verschlüsselung wächst mit dem Datenbestand im gemeinsamen Btrfs-Speicher. Ein festes Image mit vorgegebener Größe entfällt. Btrfs kann die verschlüsselte Seite als Momentaufnahme festhalten; für die Sicherung wird sie vorübergehend lesend entschlüsselt. Die Wahl ist ein Architekturentscheid für diesen Tresor, kein allgemeines Urteil über LUKS. Wo Klartext sichtbar wird und welche Grenzen bleiben.

Kein dauerhafter Klartext außerhalb des Containers

Im normalen Samba-Betrieb ist die entschlüsselte Arbeitsansicht ausschließlich im Container eingehängt. Der OMNISRV-Host hält keinen dauerhaften Klartext-Mount für Samba vor. Beim Stoppen des Containers endet auch dessen interne Mount-Ansicht. Nur während eines Borg-Backups wird auf dem Host eine separate, schreibgeschützte Momentaufnahme vorübergehend entschlüsselt und anschließend wieder ausgehängt.


Teil 2 · Benutzer, Gruppen und Berechtigungen

Samba verlangt eine Anmeldung. Abteilungsfreigaben und persönliche Home-Freigaben folgen getrennten Rollen. Gruppen, Setgid und POSIX-ACLs bestimmen die Rechte im Dateisystem. Die Freigabenliste blendet unberechtigte Abteilungen aus; innerhalb der Arbeitszeit-Freigabe werden nicht lesbare Ordner ausgeblendet. Ein bekannter Pfad gewährt dadurch keinen Zugriff. Berechtigungsmatrix und Excel-Speichern.

flowchart LR A([Anmeldung]) --> B([Freigabe erlaubt?]) --> C([Dateirechte und ACL]) --> D([Lesen oder Schreiben]) B --> E([Sonst: Zugriff verweigert]) C --> E classDef quiet fill:#f2f2f2,stroke:#929292,color:#222,stroke-width:1px; class A,B,C,D,E quiet; linkStyle default stroke:#929292,stroke-width:1px;

Für Arbeitszeit gibt es persönliche Unterordner. Jeder Mitarbeiter kann im eigenen Ordner auch neue Dateien und Anlagen anlegen; HR verwaltet alle. Ein echter Excel-Speichervorgang wurde für ein Mitarbeiterkonto bestätigt. Weitere echte Windows-Clienttests bleiben offen.


Teil 3 · Verschlüsselung und Datenschutz

Im Btrfs-Speicher liegen verschlüsselte Inhalte und Namen. Nach dem Containerstart öffnet gocryptfs die Arbeitsansicht innerhalb des Containers; erst dann stellt Samba die Freigaben bereit. Beim Containerstopp endet diese Mount-Ansicht. Ein privilegierter Hostadministrator mit Zugang zum Schlüssel und zu Docker kann die Daten dennoch entschlüsseln. Für die Sicherung wird eine schreibgeschützte Momentaufnahme nur während des Backups zusätzlich auf dem Host entschlüsselt. Sichtbarkeitsmatrix und Schlüsselgrenzen.

flowchart TB A([Server-Platte:
verschlüsselte Dateien]) subgraph RUN [Im Samba-Container] direction LR B([Container startet]) --> C([gocryptfs entschlüsselt Nutzdaten]) C --> D([Samba stellt klarschrift Freigaben bereit]) D --> E([Container stoppt oder wird neu gestartet]) end F([Interner Klartext-Mount endet]) A --> RUN RUN --> F classDef quiet fill:#f2f2f2,stroke:#929292,color:#222,stroke-width:1px; class A,B,C,D,E,F quiet; style RUN fill:#fafafa,stroke:#b0b0b0,stroke-width:1px; linkStyle default stroke:#929292,stroke-width:1px;


Teil 4 · BorgBackup und Wiederherstellung

Stündlich wird die verschlüsselte Btrfs-Seite schreibgeschützt fotografiert. Ein vom Samba-Container unabhängiger gocryptfs-Mount zeigt sie dem Backup-Prozess kurz auf dem Host im Klartext. Borg liest diese Ansicht, dedupliziert und verschlüsselt das Archiv für das entfernte Repository. Der Transport erfolgt nach dem aktuellen Betriebsbefund über SSH. Anschließend werden der temporäre Mount und die Momentaufnahme entfernt. Nachweise, Fehlerbehandlung und Restore.

flowchart LR A([Btrfs-Snapshot]) --> B([Temporäre Entschlüsselung]) --> C([Borg: Deduplikation und Verschlüsselung]) --> D([Repository]) classDef quiet fill:#f2f2f2,stroke:#929292,color:#222,stroke-width:1px; class A,B,C,D quiet; linkStyle default stroke:#929292,stroke-width:1px;


Teil 5 · Technische Referenz

Der Dienst läuft im Container int-samba im internen Docker-Netz int-net. Der technische DNS-Name ist samba.int.omnisrv.de; samba.omnisrv.de ist der interne Komfortname. Die aktuell belegte Adresse ist 10.0.50.30. Es gibt keinen veröffentlichten SMB-Hostport. Der Dateibestand liegt im Btrfs-Subvolume @omnisrv-samba; die produktive gocryptfs-Ansicht nutzt -acl -allow_other. Die Samba-Konfiguration regelt SMB3, Anmeldung, Abteilungs- und Home-Freigaben. systemd startet den Container nach Docker, AppArmor, Firewall, Btrfs und Secret-Bereitstellung; gocryptfs wird im Container gestartet und überwacht. Ein eigener Timer startet das Borg-Skript stündlich. Der frühere Host-gocryptfs-Dienst ist gestoppt und deaktiviert. Dieser Betriebsstand wurde am 5. November 2026 geprüft; ein vollständiger Host-Neustart als Abnahme steht noch aus. Betriebsdetails und Prüfnachweise stehen in der versionierten Backup-Referenz und im OMNISRV-Projekt.

Grenze: SMB bleibt auf HOME0 und autorisierte WireGuard-Wege beschränkt. Die Dokumentation erteilt keine zusätzliche Netzfreigabe.

systeme/samba/entwurf-v1.txt · Zuletzt geändert: von Holger Wehrs

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki