Archiv für den Monat: Oktober 2013

FreeBSD: ZFS – verschlüsselte zvol GELI Container

Allgemeines: zroot soll das vorhandene ZFS Root System darstellen

1. Punkt: ZFS Zweig erstellen

$
zfs create -o mountpoint=/crypt zroot/crypt
$

2. Punkt: zvol Partition im ZFS erstellen

$
zfs create -p -V 25g zroot/crypt/zvolcrypt1
$

3. Punkt: Schlüssel für GELI erzeugen

$
dd if=/dev/random of=/crypt/zvolcrypt1.key bs=64 count=1
$

4. Punkt: Initialisierung des zvol Device

$
geli init -s 4096 -K /crypt/zvolcrypt1.key /dev/zvol/zroot/crypt/zvolcrypt1
$

5. Punkt: Partition mit GELI einhängen

$
geli attach -k /crypt/zvolcrypt1.key /dev/zvol/zroot/crypt/zvolcrypt1
$

6. Punkt: den Container mit zufälligen Daten füllen sowie Dateisystemformatierung

$
dd if=/dev/random of=/dev/zvol/zroot/crypt/zvolcrypt1.eli bs=10m
newfs /dev/zvol/zroot/crypt/zvolcrypt1.eli
$

7. Punkt: Mountpointverzeichnis erstellen und Einbindung der verschlüsselten Partition

$
mkdir /crypto
mount /dev/zvol/zroot/crypt/zvolcrypt1.eli /crypto
$

7.1 Punkt: Partition aushängen

$
umount /dev/zvol/zroot/crypt/zvolcrypt1.eli
geli detach /dev/zvol/zroot/crypt/zvolcrypt1
$

Freunde der FISH Shell können sich auch 2 kleine „functions“ zum mounten/umounten erstellen, für Benutzer ohne Root-Privilegien muss sudo nachinstalliert werden

FISH

function mount_crypto
 sudo geli attach -k /crypt/zvolcrypt1.key /dev/zvol/zroot/crypt/zvolcrypt1
 sudo fsck -f -y -p -t ufs /dev/zvol/zroot/crypt/zvolcrypt1.eli
 sudo mount /dev/zvol/zroot/crypt/zvolcrypt1.eli /crypto
end
funcsave mount_crypto
function umount_crypto
 sudo umount /dev/zvol/zroot/crypt/zvolcrypt1.eli
 sudo geli detach /dev/zvol/zroot/crypt/zvolcrypt1
end
funcsave umount_crypto