Encfs
Aus Gentoo Linux Wiki
| Firewall • Dienste absichern • Verschlüsselung • alphabetischer Security Index |
Encfs eignet sich dafür einzelne Verzeichnisse zu verschlüsseln, auch für normale Benutzer.
Man benötigt allerdings das Kernelmodul fuse.
emerge sys-fs/fuse
Anmerkung: Seit der Kernelversion 2.6.14 ist fuse Bestandteil des Kernels. Ab dieser Version kann fuse auch im Kernel aktiviert werden: File systems-->Filesystem in Userspace support.
modprobe fuse
Wenn häufig auf die verschlüsselten Daten zugegriffen werden soll, empfiehlt es sich, das Modul bei jedem Start zu laden. Daher muß man es noch in
/etc/modules.autoload.d/kernel-2.6
eintragen.
Nun encfs installieren:
emerge encfs
Danach legt man das verschlüsselte Verzeichnis an:
encfs ~/.daten ~/daten
Bei der Frage nach der Verschlüsselungsart einfach Enter drücken. In Zukunft kann man das Verzeichnis auch immer mit diesem Befehl mounten. In dieser Form ist der Inhalt nur für den jeweiligen Benutzer sichtbar. Wenn es für alle sichtbar sein soll, wenn es gemountet ist, muß noch "--public" an den mount-Befehl angehängt werden.
Jetzt kann man die verschlüsselungswürdigen Daten in ~/daten verschieben.
Encfs benutzt in der Standardkonfiguration einen 160bit Schlüssel, der mit dem selbstgewählten Paßwort verschlüsselt wird. Bei einer Paßwortänderung wird nur die Verschlüsselung des Schlüssels verändert, nicht der Schlüssel selbst.
Die Daten sind jetzt ersteinmal sicher, allerdings ist es wahrscheinlich mit viel Aufwand möglich an das Paßwort zu gelangen, wenn der Schlüssel in fremde Hände gelangt ist. Wer also besonders große Angst vor bösen Datendieben hat, sollte den Schlüssel nicht auf der Platte liegen lassen, sondern z.B. auf einen USB-Stick auslagern.
mv ~/.daten/.encfs5 /mnt/usb-storage
ACHTUNG: Man sollte auf jeden Fall eine Sicherungskopie des Schlüssels auf einem sicheren Medium an einem sicheren Ort aufbewahren. Wenn der Schlüssel weg ist, gibt es keine Möglichkeit mehr an seine Daten zu kommen!
Bei Bedarf kann man den USB-Stick automatisch mounten. Wenn der Schlüssel nicht am normalen Ort zu finden ist, muß die Variable ENCFS5_CONFIG auf die Schlüsseldatei zeigen. Also sieht der Befehl zum mounten in etwa so aus:
ENCFS5_CONFIG="/mnt/usb-storage/.encfs5" encfs ~/.daten ~/daten
Es besteht auch die Möglichkeit den Schlüssel auf einem externen Account zu lagern. Dazu benötigt man sshfs. Das Mounten läßt man am Besten über ein kleines script laufen:
mkdir /tmp/encfskey sshfs user@host: /tmp/encfskey ENCFS5_CONFIG=/tmp/encfskey/encfskey encfs ~/.daten ~/daten fusermount -u /tmp/encfskey rmdir /tmp/encfskey
Ebenso ist es möglich den Schlüssel auf einem Webserver zu lagern
mkdir /tmp/ramdisk mount -t ramfs ramfs /tmp/ramdisk wget -q https://user:pass@server.tld/.schluessel -O /tmp/ramdisk/.schluessel ENCFS5_CONFIG=/tmp/ramdisk/.schluessel encfs ~/.daten ~/daten rm /tmp/ramdisk/.schluessel umount /tmp/ramdisk rmdir /tmp/ramdisk
Ggf. empfiehlt es sich den alten Schlüssel mit srm/smem aus dem secure-delete ebuild komplett vom System zu tilgen.
Möchte man einen grafischen Login, z.B. unter KDE kann man folgendes Script benutzen:
#!/bin/bash
# Mounts/unmounts encFS path
# @author: Ole für MandirvaUser.de
# mit "encfsmount.sh ~/.Tresor ~/Tresor" die Sache mounten bzw. unmounten werden
# versteckter Ordner
HiddenSave=$1
# sichtbarer Ordner
VisibleSave=$2
if [ -n "$(mount | grep encfs | grep $VisibleSave)" ];
then
$(/usr/kde/3.5/bin/kdialog --title "$VisibleSave aushängen?" \
--warningyesno "Soll das Verzeichnis $VisibleSave ausgehängt werden?")
case $? in
0)
/usr/bin/fusermount -u $VisibleSave & ;;
*)
exit 1 ;;
esac
else
$(/usr/kde/3.5/bin/kdialog --title "$VisibleSave einhängen?" \
--warningyesno "Soll das Verzeichnis $VisibleSave eingehängt werden?")
case $? in
0)
/usr/kde/3.5/bin/kdialog --title "Passwort eingeben" \
--password "Bitte Passwort für $VisibleSave eingeben" \
| /usr/bin/encfs $HiddenSave $VisibleSave -S & ;;
*)
exit 1 ;;
esac
fi
Man kann das Passwort auch auf z.B. eine Diskette auslagern um es nicht eingeben zu müssen. Diese Diskette (oder ein USB-Stick) wirken dann als Schlüssel und das verzeichnis wird nur gemountet wenn die Diskette im Laufwerk ist. Man braucht das Passwort also nicht händisch eingeben.
echo $geheimes_Passwort > /media/floppy/.geheimer.key
Oder ein richig geheimes Passwort anlegen:
head -c 1000 < /dev/urandom | uuencode -m - | grep -v begin | head -c 32 > .geheimer.key
Beim anlegen eines neuen encfs-Verzeichnisses dann "blind" das Passwort per Copy & Paste übernehmen.
for i in `cat /media/floppy/.geheimer.key` do echo $i | ENCFS5_CONFIG="/media/floppy/.home.encfs5" encfs -S /.geheime_daten /entschlüsselte_Daten done
