Um eine Festplatte zu verschlüsseln wird geli verwendet. Dies arbeitet direkt auf geom-Providern und ist somit in der Lage Partitionen transparent zu verschlüsseln.
Wenn die verwendete CPU hardwareseitige AES-Beschleunigung unterstützt kann diese mit folgendem Eintrag in der /boot/loader.conf aktiviert werden.
aesni_load="YES"
Damit GELI (welches die Entschlüsselung der Daten übernimmt) beim Systemstart geladen wird muss noch folgende Zeile in die /boot/loader.conf hinzugefügt werden:
geom_eli_load="YES"
Um nun auf der Festplatte eine z.B. 500GB große Partition anzulegen wird gpart mit folgenden Parametern aufgerufen (Hierbei muss adX mit der entsprechenden Devicenode ersetzt werden).
# gpart add -s 500G -l CRYPTO -a 1m -t freebsd-ufs adX
Nun wird eine Schlüsseldatei angelegt mit welcher das Image dann verschlüsselt wird. Will man kein Key-File verwenden (nur in Ausnahmefällen sinnvoll), sondern ausschließlich ein Passwort eingeben kann dieser Schritt übersprungen werden.
% dd if=/dev/random of=crypt.key bs=128k count=1
Nun muss GELI noch das Device initialisieren.
# geli init -s 4096 -l 256 -K crypt.key /dev/gpt/CRYPTO
Will man hingegen kein Key-File verwenden sieht die Zeile wie folgt aus:
# geli init -s 4096 -l 256 /dev/gpt/CRYPTO
Anschließend muss noch zwei mal das zum Verschlüsseln zu verwendende Passwort eingegeben werden.
Um das Ganze nun zu aktivieren wird folgend vorgegangen:
# geli attach -k crypt.key /dev/gpt/CRYPTO
Hiermit wurde das unverschlüsselte Device /dev/gpt/CRYPTO.eli erzeugt. Wird kein Key-File verwendet entfällt -k crypt.key.
Das neue Image muss nun noch mit einem Dateisystem gefüllt werden.
# dd if=/dev/random of=/dev/gpt/CRYPTO.eli bs=1m # newfs -j /dev/CRYPTO.eli
Um das Device nun in /crypt zu mounten muss nur noch folgender Befehl abgesetzt werden:
# mount /dev/gpt/CRYPTO.eli /crypt
Das Device kann nun normal verwendet werden.
Zunächst wird das Laufwerk unmouned. Dies geschieht mit:
# umount /crypt
Anschließend muss noch der GELI-Provider ausgeworfen werden. Hierdurch wird der entschlüsselte Zugriff beendet.
# geli detach gpt/CRYPTO.eli
Tipp: Wurde beim attach Befehl die Option -d verwendet wird das Device automatisch detached sobald der umount abgeschlossen ist.