Wie richte ich ein verschlüsseltes Verzeichnis ein, das nur während des Samba-Zugriffs bereitgestellt wird?


7

(Hier geht es nicht darum, den Clientzugriff einzuschränken, für den ext3-Berechtigungen den Trick machen.)

Ich möchte die Daten auf meinem NAS-Laufwerk ( Buffalo LinkStation Pro mit aktiviertem SSH-Zugriff, falls dies wichtig ist) benutzerfreundlich verschlüsseln . Derzeit muss ein TrueCrypt-Container manuell über SSH bereitgestellt und auch wieder freigegeben werden (es sei denn, Sie lösen meine Timeout-Frage ). Bei Verwendung eines kennwortlosen (aber EFS-verschlüsselten) SSH-Schlüssels wird dieser auf zwei PuTTY-Desktopverknüpfungen reduziert und das TrueCrypt-Kennwort (bis zur weiteren Vereinfachung ) zum Mounten eingegeben .

Die ideale Lösung wäre jedoch transparent. Ich habe zuerst darüber nachgedacht, die Freigabe irgendwie für die EFS-Verschlüsselung zuzulassen , aber das würde wahrscheinlich mehr Arbeit bedeuten, und EFS für mehrere Benutzer ohne Active Directory-Server scheint problematisch zu sein .

Aber jetzt ist meine Idee eine automatisierte Bereitstellung von beispielsweise einem EncFS-verschlüsselten Verzeichnis, das automatisch durch einen Samba-Zugriff von autorisierten Benutzern (unter Verwendung von Windows-Clients) ausgelöst wird. Wie kann das erreicht werden? (Bonuspunkte für die Anzeige einer Honeypot-Freigabe für nicht autorisierte Benutzer ...)


Ich verstehe immer noch nicht, wer die Verschlüsselungsdaten im Szenario hat: Werden sie beim Mounten vom Benutzer bereitgestellt? Muss es ein Passwort sein oder kann es eine Schlüsseldatei (die selbst passwortgeschützt sein könnte) auf dem Client oder dem Server (welches) sein?
Gilles 'SO - hör auf böse zu sein'

@ Gilles In diesem Szenario wird der an samba übertragene Windows-Benutzername / das Windows-Kennwort auch als Verschlüsselungsanmeldeinformationen verwendet (idealerweise so, dass mehrere Benutzer dasselbe Volume mit unterschiedlichen Anmeldeinformationen bereitstellen können).
Tobias Kienzler

1
Serverseitige Verschlüsselung zum Schutz vor Angreifern mit physischem Zugriff, wenn das Speichergerät nicht verwendet wird? OK.
Gilles 'SO - hör auf böse zu sein'

@ Gilles Genau das, danke für die bessere Formulierung
Tobias Kienzler

Antworten:


0

Ich sehe eine Skizze einer Lösung mit Samba-Anmeldeskripten - clientseitigem Code, der nach einer Samba-Anmeldung ausgeführt wird -, aber eine vollständige Lösung muss die Skizze mit Details vervollständigen. Ebenfalls verwandt sind "preexec-Skripte" - serverseitiger Code, der während einer Samba-Anmeldung ausgeführt wird.

Verweisen auf die Manpage smb.conf

Anmeldeskript (G)

Dieser Parameter gibt die Batchdatei (.bat) oder NT-Befehlsdatei (.cmd) an, die heruntergeladen und auf einem Computer ausgeführt werden soll, wenn sich ein Benutzer erfolgreich anmeldet. Die Datei muss die CR / LF-Zeilenenden im DOS-Stil enthalten. Es wird empfohlen, zum Erstellen der Datei einen DOS-Editor zu verwenden.

Das Skript muss ein relativer Pfad zum Dienst [netlogon] sein. Wenn der Dienst [netlogon] den Pfad / usr / local / samba / netlogon und das Anmeldeskript = STARTUP.BAT angibt, wird folgende Datei heruntergeladen:

/usr/local/samba/netlogon/STARTUP.BAT

Der Inhalt der Batch-Datei liegt ganz bei Ihnen. Ein vorgeschlagener Befehl wäre, NET TIME \ SERVER / SET / YES hinzuzufügen, um jede Maschine zu zwingen, Uhren mit demselben Zeitserver zu synchronisieren. Eine andere Verwendung wäre das Hinzufügen von NET USE U: \ SERVER \ UTILS für häufig verwendete Dienstprogramme oder

NET USE Q: \\SERVER\ISO9001_QA

zum Beispiel.

Beachten Sie, dass es besonders wichtig ist, keinen Schreibzugriff auf die [netlogon] -Freigabe zuzulassen oder Benutzern Schreibberechtigungen für die Batchdateien in einer sicheren Umgebung zu erteilen, da dies die willkürliche Änderung der Batchdateien und die Verletzung der Sicherheit ermöglichen würde.

Diese Option übernimmt die Standardersetzungen, sodass Sie für jeden Benutzer oder Computer separate Anmeldeskripts haben können.

und auch

preexec (S)

Diese Option gibt einen Befehl an, der ausgeführt werden soll, wenn der Dienst verbunden ist. Es werden die üblichen Substitutionen benötigt.

Ein interessantes Beispiel ist, den Benutzern bei jeder Anmeldung eine Willkommensnachricht zu senden. Vielleicht eine Nachricht des Tages? Hier ist ein Beispiel:

preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' &

In Ihrem Fall möchten Sie jedoch wirklich Anmeldeskripte (unverschlüsseltes Formular ist auf dem Client bereitgestellt). Eine Lösungsskizze kann daher Folgendes umfassen:

  1. Stellen Sie sicher, dass auf jedem Computer ein EncFS-Äquivalent installiert ist
  2. Schreiben Sie ein Anmeldeskript (.bat-Format), das encfs auf dem Client aufruft und den Benutzer zur Anmeldung auffordert. Der Befehl encfs stellt das unverschlüsselte Formular somit lokal bereit, wobei der Remote-Speicher verschlüsselt bleibt.
  3. Konfigurieren Sie smb.conf so, dass die relevanten Benutzer das Anmeldeskript ausführen. zB so etwas wie

    Anmeldeskript = runencfs.bat

  4. Für Bonuspunkte kann Ihr Anmeldeskript die Installation von Encfs (von der Samba-Freigabe) automatisieren / auffordern und den Mount nur ausführen, wenn er installiert ist!

Clientseitige Skripts verursachen jedoch aufgrund der cmd-Sprache Kopfschmerzen, stellen die Installation von encfs sicher und umgehen Windows- Fallstricke wie Windows 8.1 und höher. Die Anmeldeskripts werden erst fünf Minuten später ausgeführt, sofern nicht anders konfiguriert .


0

Wenn Sie sich um die Sicherheit ruhender Daten kümmern, können Sie stattdessen auf dem NAS nach einer Verschlüsselungslösung suchen (FreeNAS und Synology tun dies). Beim Booten müssen Sie einen Schlüssel eingeben, um das Volume zu öffnen. Danach funktioniert es wie eine unverschlüsselte Freigabe, sodass keine clientseitige Konfiguration erforderlich ist.

Wenn Sie andererseits Bedenken haben, dass die Daten während der Ausführung vom Server übernommen werden, kann Ihr Problem durch eine clientseitige Verschlüsselung behoben werden. So etwas wie EncFS oder Cryptomator könnte die einfachste Lösung für Ihr Problem sein?

Oder habe ich das Problem falsch verstanden?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.