Folgendes Szenario:
An einem kleinen Heimserver (in meinem Falle: ein sheevaplug) hängt - in diesem Falle per USB angeschlossen, das ist aber völlig wurst - eine externe Festplatte, die mit cryptsetup/LUKS verschlüsselt ist.
Jetzt will man mit sshfs diese Platte lokal (in meinem Falle: auf meinem Laptop) einhängen.
Hier die bash-Skripte, die ich mir dafür gebastelt habe:
Einhängen:
code: |
1:
2:
3:
4:
5:
6:
|
#!/bin/bash
read pw
echo $pw | ssh vimes@192.168.1.115 /home/vimes/bin/mtjazz
sshfs 192.168.1.115:/mnt/jazz /home/vimes/jazz
echo "success"
exit 0 |
|
/home/vimes/bin/mtjazz ist ein weiteres skript [1], das diese Platte a) entschlüsselt und b) einhängt, und zwar - natürlich - auf dem Sheevaplug.
Die nächste Zeile hängt dann diese Partition (entschlüsselt) auf meinem lokalen Dateisystem ein, via sshfs.
Wichtig: das cryptsetup/LUKS-Paßwort wird eingegeben; man kann es natürlich auch direkt im Skript übergeben, die Zeile sieht dann so aus:
code: |
1:
|
'Total geheimes Paßwort' |ssh vimes@192.168.1.115 /home/vimes/bin/mtjazz |
|
Wichtig ist, daß das Paßwort in einzelne Anführungszeichen ' eingeschlossen wird.
Persönlich habe ich mich aus Sicherheitsgründen dagegen entschieden, das Paßwort fest zu hinterlegen.
Umgekehrt gilt es, die Platte zunächst lokal auszuhängen und anschließend auf dem Server a) die Partition auszuhängen und b) cryptsetup luksClose auszuführen (damit die Platte nur nach erneuter Eingabe des cryptsetup/LUKS-Paßwortes eingesehen werden kann!):
code: |
1:
2:
3:
4:
|
#!/bin/bash
fusermount -u jazz # hängt Platte lokal aus, d.h. beendet sshfs
ssh vimes@192.168.1.115 /home/vimes/bin/umtjazz # ruft das Skript auf dem Server auf, das die Platte aushängt und verschlüsselt [2]
exit 0 |
|
MfG
Vimes
[1] Gibt es hier auch, trotzdem der Vollständigkeit halber:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
#!/bin/bash
sudo /sbin/cryptsetup luksOpen /dev/disk/by-uuid/4b3a2e7f-ccb5-42f5-bf3c-98fa22e92f32 jazz
#sudo /sbin/cryptsetup luksOpen -d /home/vimes/luksKey/key.key /dev/disk/by-uuid/4b3a2e7f-ccb5-42f5-bf3c-98fa22e92f32 jazz
#First, open the crypto container
limit="24"
# Set limit after which partition needs to be checked
result=$(sudo /sbin/tune2fs -l /dev/mapper/jazz |grep 'Mount count' |awk '{print $3}')
# get the number of mount operations already performed via tune2fs, grep and awk
if [ $result -ge $limit ]; then
# if number of mount operations equal to or greater than the limit ...
sudo /sbin/e2fsck -p /dev/mapper/jazz
# check the file system before mounting it
fi
mount /mnt/jazz
exit 0 |
|
[2] Wie [1]:
code: |
1:
2:
3:
4:
5:
6:
7:
|
#!/bin/bash
#unmount crypto device safely
if [ -e /dev/mapper/jazz ]; then
umount /mnt/jazz
sudo /sbin/cryptsetup luksClose jazz
fi
exit 0 |
|