Unixery & daemon worship 🔥


It's a Unix system! I know this!

ZFS Verschlüsselung

Um in ZFS ein verschlüsseltes Dataset zu erstellen, hat man prinzipiell mal zwei Möglichkeiten:

  1. Ein Passwort muss vor dem Mounten per Hand eingegeben werden.
  2. Ein Passwort/Schlüssel liegt in einer Datei ab und wird von da geladen.

Die erste Möglichkeit ist simpel und schützt die Daten auch bei Diebstahl des ganzen Servers, hat aber den Nachteil, dass man nach dem Booten des Rechners erstmal händisch etwas erledigen muss. Möglichkeit Nummer zwei schützt die Daten nicht bei Diebstahl des ganzen Servers, dafür aber, wenn man z.B. eine Festplatte ausbaut und außer Hand gibt (z.B. zwecks RMA oder Verkauf). Nach dem Booten kann das Dataset jedoch automatisch gemountet werden. Eine weitere Option wäre, die Schlüsseldatei auf irgendeine Art und Weise z.B. von einem Schlüsselserver abzurufen, dann müsste ein Dieb auch diesen mitgehen lassen. Natürlich steigt dadurch der Konfigurationsaufwand enorm.

Ein verschlüsseltes Dataset mit Passworteingabe erstellen:

zfs create -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=prompt tank/encrypted

Ein verschlüsseltes Dataset mit Schlüsseldatei erstellen. In der Schlüsseldatei legt man ein beliebiges Passwort ab:

zfs create -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=file:///root/keys/tank_encrypted.key tank/encrypted