Seit FreeBSD 13 steht native ZFS Encryption zur Verfügung. Datasets lassen sich mit AES-256-GCM verschlüsseln, ohne dass der gesamte Pool verschlüsselt sein muss. Die Verschlüsselung greift pro Dataset und vererbt sich auf Kind-Datasets.
Verschlüsseltes Dataset anlegen
Ein neues Dataset mit Passphrase-Abfrage:
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase usbpool/test01 Enter passphrase: Re-enter passphrase:
Das Dataset wird sofort gemountet und ist einsatzbereit. Alles was hineingeschrieben wird, liegt verschlüsselt auf der Platte:
zfs list usbpool/test01 NAME USED AVAIL REFER MOUNTPOINT usbpool/test01 99K 899G 99K /usbpool/test01 zfs get encryption usbpool/test01 NAME PROPERTY VALUE SOURCE usbpool/test01 encryption aes-256-gcm -
Nach einem Reboot
Bei einem Passphrase-geschützten Dataset hat ZFS nach einem Reboot den Schlüssel nicht mehr. Das Dataset existiert, ist aber nicht gemountet:
zfs get mounted usbpool/test01 NAME PROPERTY VALUE SOURCE usbpool/test01 mounted no -
Mit zfs mount -l wird der Schlüssel geladen und das Dataset eingehängt:
zfs mount -l usbpool/test01 Enter passphrase for 'usbpool/test01': zfs get mounted usbpool/test01 NAME PROPERTY VALUE SOURCE usbpool/test01 mounted yes -
Keyfile statt Passphrase
Statt einer Passphrase-Abfrage kann der Schlüssel auch in einer Datei liegen. Praktisch für Server die ohne Interaktion booten sollen:
zfs create -o encryption=aes-256-gcm \ -o keyformat=passphrase \ -o keylocation=file:///root/keys/pool.key \ zroot/encrypted-data
Die Key-Datei enthält das Passphrase als Text. Wichtig: Die Datei muss beim Boot erreichbar sein, also auf einem unverschlüsselten Dataset liegen. Berechtigungen auf 0400 setzen.
Bestehende Datasets verschlüsseln
Verschlüsselung lässt sich nicht nachträglich auf ein bestehendes Dataset aktivieren. Man muss die Daten per zfs send | zfs receive in ein neues, verschlüsseltes Dataset migrieren. Die komplette Anleitung dafür steht im Beitrag ZFS-Dataset nachträglich verschlüsseln.
Eine Übersicht über alle ZFS-Funktionen gibt es im ZFS-Überblick. Wer sich für ZFS Encryption unter Solaris/OpenIndiana interessiert, findet die Anleitung unter ZFS Encryption unter Solaris. Fragen? Einfach melden.
Schreibe einen Kommentar