PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschlüsseltes Netzlaufwerk automatisch mounten und unmounten



Run Seven
16.10.09, 14:29
Hallo,

ich habe zu Hause einen Linux-Server mit Mandriva aufgesetzt, der über einen USB-Stick bootet. Über Telnet mounte ich dann per Hand eine verschlüsselte Partition (cryptsetup), die per Samba freigegeben ist und auf die ich dann mit einem Windows-Rechner zugreife.

Nun gefällt mir das Mounten von Hand eher nicht und auch nicht die Tatsache, dass die verschlüsselte Partition dann lange gemountet vor sich hin dümpelt, obwohl gar keine Zugriffe erfolgen, wenn ich sie nicht extra wieder unmounte.

Daher möchte ich erreichen, dass, sobald von einem der Windows-Rechner versucht wird, auf die verschlüsselte Partition zuzugreifen, diese automatisch von Mandriva gemountet wird. Zur Entschlüsselung soll das Passwort verwendet werden, das vom Windows-Rechner als Authentifizierung für das Netzlaufwerk angegeben wird. Wenn auf die Partition für eine bestimmte Zeit nicht mehr zugegriffen worden ist, soll sie automatisch unmountet werden.

Ich habe das ganze schon mal tagelang mit PAM versucht, bin aber kläglich gescheitert. Nicht einmal konnte ich erfolgreich irgendein Laufwerk mounten. Da ich den Server aus Verzweiflung und nachdem nach meinen Konfigurationsorgien gar nichts mehr richtig funktionierte neu aufgesetzt habe, habe ich leider keine Konfigurationsdateien mehr zur Hand.

Könnte mir jemand eine auch für Anfänger verständliche Hilfestellung geben, wie ich das hinkriege? Ist PAM überhaupt der richtige Weg? Geht es vielleicht gar nicht? Insbesondere was muss ich bei den Rechten beachten?

Wäre super, wenn mir dabei jemand helfen könnte! Im Netz habe ich genau zu meinem Thema keine Hilfestellung gefunden...

Wene
16.10.09, 23:34
Mir ist kein Weg bekannt wie sich das transparent realisieren liesse. Was natürlich nicht heisst das es nicht geht. :D

Interessant hierfür wäre es zu erfahren um was für Daten es Dir geht.
Wäre es nicht z.B. sinnvoller innerhalb der unverschlüsselten Freigabe einen verschlüsselten Container anzulegen? Diesen könntest Du direkt am Client entschlüsseln so dass die Daten übers Netzwerk auch noch verschlüsselt übertragen werden.

cane
17.10.09, 00:57
Über Telnet mounte ich dann per Hand eine verschlüsselte Partition (cryptsetup), die per Samba freigegeben ist und auf die ich dann mit einem Windows-Rechner zugreife.

Verwende bitte SSH an Stelle von Telnet - bei Telnet gehen deine Passwörter im Klartext durchs Netz.



Nun gefällt mir das Mounten von Hand eher nicht und auch nicht die Tatsache, dass die verschlüsselte Partition dann lange gemountet vor sich hin dümpelt, obwohl gar keine Zugriffe erfolgen, wenn ich sie nicht extra wieder unmounte.

Warum ist es ein Problem wenn die Partition eingehängt bleibt?

mfg
cane

Run Seven
18.10.09, 14:33
Mir ist kein Weg bekannt wie sich das transparent realisieren liesse. Was natürlich nicht heisst das es nicht geht. :D

Interessant hierfür wäre es zu erfahren um was für Daten es Dir geht.
Wäre es nicht z.B. sinnvoller innerhalb der unverschlüsselten Freigabe einen verschlüsselten Container anzulegen? Diesen könntest Du direkt am Client entschlüsseln so dass die Daten übers Netzwerk auch noch verschlüsselt übertragen werden.

Mir ist kein Weg bekannt, wie ich eine mit cryptsetup verschlüsselte Partition an einem Windowsrechner wieder entschlüsseln kann. Ausserdem soll von mehreren Rechnern gleichzeitig mit Schreib/Lesezugriffen auf die Partition zugegriffen werden, das ist mit Containern schwierig.


Verwende bitte SSH an Stelle von Telnet - bei Telnet gehen deine Passwörter im Klartext durchs Netz.

Danke für den Tip, mache ich.



Warum ist es ein Problem wenn die Partition eingehängt bleibt?

mfg
cane

Weil dann die Daten ja entschlüsselt auf dem Server vorliegen - jeder könnte darauf zugreifen, wenn er sich Zugriff auf den Server verschafft. Wenn die Partition automatisch unmountet wird, kommt erst mal keiner mehr dran.

Thorashh
18.10.09, 18:18
Daher möchte ich erreichen, dass, sobald von einem der Windows-Rechner versucht wird, auf die verschlüsselte Partition zuzugreifen, diese automatisch von Mandriva gemountet wird. Zur Entschlüsselung soll das Passwort verwendet werden, das vom Windows-Rechner als Authentifizierung für das Netzlaufwerk angegeben wird. Wenn auf die Partition für eine bestimmte Zeit nicht mehr zugegriffen worden ist, soll sie automatisch unmountet werden.
Das kann so nicht funktionieren, da Windows das Passwort nicht im Klartext überträgt. Außerdem kommst Du ohne Eingriff in den Sourcecode sowieso nicht an das Passwort ran.

Samba kennt "preexec" und "postexec" Hooks, mit denen Du beim Verbinden/Trennen ein Skript ausführen kannst. Du kannst also die Partition automatisch un- mounten lassen.

Bleibt noch das Problem mit dem Passwort. Da kannst Du entweder ein Keyfile nehmen oder Du schreibst Dir eine kleine Client- / Server-Anwendung, die dir Das Passwort von einem USB-Stick auf dem Windows Rechner holt.

Aber:
Wenn jemand Zugriff zu deinem Server hat, kommt er so oder so an die Daten heran. Zur Not wartet er, bis Du auf die Partition zugreifst, oder er installiert einen Keyogger, der das Passwort abgreift. Da kannst Du dir den Aufwand auch sparen und lieber auf Selinux oder AppAmor setzen um deine Daten zu schützen. Den Zugriff über den Windows-Client nicht vergessen.

Run Seven
20.10.09, 10:44
Das kann so nicht funktionieren, da Windows das Passwort nicht im Klartext überträgt. Außerdem kommst Du ohne Eingriff in den Sourcecode sowieso nicht an das Passwort ran.

Samba kennt "preexec" und "postexec" Hooks, mit denen Du beim Verbinden/Trennen ein Skript ausführen kannst. Du kannst also die Partition automatisch un- mounten lassen. .

Danke, das hilft mir weiter. Ich werde mal versuchen, etwas damit zu erreichen.



Bleibt noch das Problem mit dem Passwort. Da kannst Du entweder ein Keyfile nehmen oder Du schreibst Dir eine kleine Client- / Server-Anwendung, die dir Das Passwort von einem USB-Stick auf dem Windows Rechner holt.

Aber:
Wenn jemand Zugriff zu deinem Server hat, kommt er so oder so an die Daten heran. Zur Not wartet er, bis Du auf die Partition zugreifst, oder er installiert einen Keyogger, der das Passwort abgreift. Da kannst Du dir den Aufwand auch sparen und lieber auf Selinux oder AppAmor setzen um deine Daten zu schützen. Den Zugriff über den Windows-Client nicht vergessen.

Ich denke mal, ich werde es mit dem Keyfile versuchen. Dass es absolute Sicherheit nicht geben wird, ist mir auch klar, aber man kann es ja so gut machen wie es geht. Vielen Dank nochmal, ich werde weiter berichten.

Run Seven
14.11.09, 21:12
So, war gar nicht so schwer, nachdem ich das Prinzip verstanden hatte:

Die Freigabe in der smb.conf:


[raid]
path = /home/user/raid
comment = raid
available = yes
browseable = yes
guest ok = no
writable = yes
root preexec = /home/user/mount.sh
root postexec = /home/user/umount.sh

Die mount.sh:

mount -t smbfs //192.168.0.105/k /home/user/key -o username=server,password=password
cryptsetup luksOpen -d /home/user/key/key.key /dev/md0 raid
mount /dev/mapper/raid /home/user/raid

Damit verbindet sich der Server mit dem Verzeichnis, in dem auf dem client das keyfile liegt (die Systempartition dieses Rechners ist mit Truecrypt verschlüsselt). Dieses Verzeichnis ist für den user server freigegeben. Dann wird mit Hilfe des keyfiles entschlüsselt und die Partition gemountet.

Wenn der Windows-Client sich abmeldet, wird alles wird unmountet (umount.sh):

sudo umount /dev/mapper/raid
sudo cryptsetup luksClose raid
sudo umount /home/user/key


Funktioniert wunderbar!

Jetzt suche ich nur noch nach einer Lösung, wie ich samba so konfiguriere, dass es abhängig von dem Nutzer, der auf die Freigabe zugreifen will, an unterschiedlichen Orten nach dem Keyfile sucht (nämlich auf dem jeweiligen client). Ich hab Samba noch nicht so weit verstanden, dass ich das kann. Hat da vielleicht noch jemand einen Tip?

drcux
14.11.09, 21:58
Wieso kauft man sich ein Panzerschrank, wenn man dann den Schlüssel unter Schreibtischablage legt?

Du kannst deinem Skript den User übergeben, %U ist das AFAIK, mount.sh %U

Run Seven
14.11.09, 22:39
Wieso kauft man sich ein Panzerschrank, wenn man dann den Schlüssel unter Schreibtischablage legt?


Sehe ich nicht so. Das Keyfile ist mit derselben Stärke gesichert wie die verschlüsselte Partition. Allein die Übertragung über das Netz ist noch offen, da weiß ich halt nicht, wie ich es besser hinbekomme.