Verschlüsselte Partition per NFS im Linux Lan freigeben

le0m

Cadet 4th Year
Registriert
Juni 2015
Beiträge
94
Hi,

ich habe ein Problem mit NFS und einer verschlüsselten Partition.
Auf dem Server ist ein Ordner "/exports", den ich mit NFS im Lan freigebe.

/etc/exports:
Code:
/exports       192.168.178.20(rw,sync,fsid=0,no_subtree_check,no_root_squash) 
/exports/user1        192.168.178.20(rw,sync,no_subtree_check,no_root_squash)
So mountet der Client die Exports auf seinem eigenen Rechner:
Code:
sudo mount.nfs4 192.168.178.10:/ /fs_data -o soft,intr,rsize=32768,wsize=32768
Das funktioniert soweit ganz gut. Es gibt nur ein Problem. Auf dem Server ist eine Partition, die mit Luks/dm-crypt verschlüsselt wurde. Wenn ich diese mit dem Server entschlüssele und in einem Unterverzeichnis von "/exports" mounte, sieht der Client dort bloß einen leeren Ordner. Auf dem Server werden alle entschlüsselten Files angezeigt.

Weiß jemand wie ich das zum Laufen bringen kann? Ich habe schon etliche Stunden nach einer Lösung gesucht und nichts gefunden...
 
Ich habe selbst nicht wirklich dolle Ahnung von nfs, bin aber bei deiner Problembeschreibung auf die schnelle über die beiden NFS Optionen"nohide" und "crossmnt" gestolpert. Vielleicht bringt dich das auf den richtigen Weg.

Viel Erfolg :)
 
Danke für die Infos!

Du hast recht, die Sache hat mit nohide und crossmnt zu tun..
Wenn man ein Filesystem exportiert, in welchem Mounting Points zu weiteren Filesystems existieren, werden diese beim Client nur geladen, wenn man die crossmnt oder nohide Option setzt. Leider kann nohide/crossmnt angeblich zu Problemen mit doppelten inodes führen und sollte mit Vorsicht verwendet werden.

Es gibt aber noch eine weitere Möglicheit ohne crossmnt und nohide ein verschlüsseltes Drive zu exportieren. Wenn man es nämlich vom Server gesondert exportiert und vom Client gesondert gemountet wird, kann man auf nohide und crossmnt verzichten und kommt trotzdem an das entschlüsselte Filesystem:

Der Server mountet das entschlüsselte Drive nach "/export/data1":

Code:
sudo cryptsetup luksOpen /dev/sdb1 data1
sudo mount /dev/mapper/data1 /exports/data1

Dann wird "data1" zu den Exports hinzugefügt:
Code:
/exports/           192.168.178.20(rw,sync,fsid=0,crossmnt,no_subtree_check)
/exports//data1      192.168.178.20(rw,sync,no_subtree_check)

Der Client mountet explizit data1:

Code:
sudo mount.nfs4 192.168.178.10:/data1 /fs_data -o soft,intr,rsize=12288,wsize=12288,tcp

Damit hätte der Client die entschlüsselten Files vom Server (data1) unter /fs_data in seinem lokalen File System.
 
Zurück
Oben