Dateisystem verschlüsseln unter FreeBSD

In dieser bösen Welt kann man niemanden mehr Vertrauen…
Nicht nur das man sämtliche Kommunikation verschlüssen (SSH/VPN/PGP) muss oder sollte nein, es geht soweit das man bereits seine Festplatte oder zumindest sein Homedir verschlüsseln muss um seine Daten vor allzu neugierigen Blicken, einiger Mitmenschen, zu schützen. Denn den eigenen Account mit einem guten Passwort zu schützen reicht nicht wenn physikalischer Zugriff auf den PC möglich ist.

 

Zuerst muss man das zu verschlüsselnde Homedir backupen und leeren.
Anschließend einen Kernel mit

options GEOM_BDE

versehen, neubauen, installieren und rebooten.

 

Um ein 1GB großes verschlüsseltes FS zu bekommen (für mehr Platz einfach den count beim dd erhöhen):
# dd if=/dev/zero of=/usr/home/.cryptfsimg0 bs=1024k count=1000
# mdconfig -a -t vnode -u 9 -f /usr/home/.cryptfsimg0
# mkdir -p /etc/gbde
# gbde init /dev/md9 -i -L /etc/gbde/md9

sector_size = 2048
random_flush = 1

Die Konfig-Datei /etc/gbde/md9 wird durch das init automagisch zum editieren geöffnet.
Das initialisieren dauert eine ganze Weile. Anschließend wird man nach der neuen Passphrase für das CryptFS gefragt.

# gbde attach /dev/md9 -l /etc/gbde/md9
# newfs -U -O2 /dev/md9.bde
# mount /dev/md9.bde /usr/home/username

Prüfen ob auch alles schön ist.
# df -h

/dev/md9.bde    957M    4.0K    881M     0%    /usr/home/username

Nun kann man das Backup seines Homedirs wieder zurück, in das neue CryptFS, schieben und lebt wieder ein Stückchen sicherer. 🙂

 

Unmounten:
# umount /usr/home/username
# gbde detach /dev/md9
# mdconfig -d -u 9

 

Um das ganze Rebootfest zu machen muss noch folgendes getan werden.
# vi /etc/rc.local

/sbin/mdconfig -a -t vnode -u 9 -f /usr/home/.cryptfsimg0
/sbin/gbde attach /dev/md9 -l /etc/gbde/md9
/sbin/mount /usr/home/username

# vi /etc/fstab

/dev/md9.bde /usr/home/username ufs rw,noauto 2 2

 

Und das wars schon. 🙂