Wer zwei verschiedene Festplatten für Root und Home hat und beide verschlüsselt, möchte in der Regel sein Passwort trotzdem nicht zweimal eingeben. Stattdessen kann man die Root-Partition mit einem Passwort schützen, welches man beim Booten eingibt, und die Home-Partition schützt man durch eine Key-Datei, die auf der Root-Partition gespeichert wird.

Nachdem die Root-Partition dann durch die manuelle Passwort-Eingabe entschlüsselt wurde, kann die Home-Partition dank der vorhandenen Key-Datei automatisch entschlüsselt werden. Weil die Key-Datei selbst auf einer verschlüsselten Root-Festplatte liegt, kann ein Angreifer ohne das Passwort trotzdem keine der beiden Festplatten entschlüsseln.

Unter Gentoo können wir das so erledigen: Zunächst erstellen wir uns eine zufällige Key-Datei.

dd if=/dev/urandom of=/root/keyfile-home bs=1024 count=4
chmod 0400 /root/keyfile-home

Dies erstellt eine Key-Datei mit 4096 zufälligen Bits. Durch die Berechtigung stellen wir sicher, dass nur root die Datei lesen darf und nicht ungewollt verändert.

Diese Key-Datei tragen wir nun als Schlüssel in unsere verschlüsselte Home-Partition ein:

cryptsetup luksAddKey /dev/disk/by-partlabel/HOME /root/keyfile-home

Ich verwende, soweit es funktioniert, die Adressierung von Partitionen über GPT-Partitionslabels. Wenn die Partition kein Partitionslabel hat, kann man natürlich die Adressierung über /dev/sdXN oder /dev/disk/by-uuid/ verwenden.

Damit kann die Partition nun bereits mit der Key-Datei geöffnet werden. Um das beim Boot zu automatisieren, verwenden wir bei Gentoo mit OpenRC (anders als bei systemd-basierten Distributionen) die Datei /etc/conf.d/dmcrypt.

In diese tragen wir unsere Home-Partition und unsere Key-Datei ein:

target=home
source='/dev/disk/by-partlabel/HOME'
key='/root/keyfile-home'

Anschließend müssen wir noch sicherstellen, dass dmcrypt beim Booten gestartet wird:

rc-update add dmcrypt boot

Und zuletzt mounten wir die entschlüsselte Partition mit /etc/fstab:

/dev/mapper/home	/home		ext4		rw,noatime      0 1

Mit dieser Konfiguration wird die Partition /dev/disk/by-partlabel/HOME nun beim Booten automatisch mit einer Key-Datei von der (zuvor entschlüsselten) Root-Partition entschlüsselt und gemountet.

I do not maintain a comments section. If you have any questions or comments regarding my posts, please do not hesitate to send me an e-mail to blog@stefan-koch.name.