Hallo zusammen, ich habe seit Jahren einen Ubuntu Server am laufen, der primär ein KVM Host ist um diverse VMs zu betreiben. Die erste Festplatte im System ist nur für /root /boot und die VMs reserviert und mit cryptsetup geschützt. Darin ist dann ein LVM um auch die VMs besser zu handhaben. /boot ist nicht verschlüsselt. Nach dieser Anleitung (https://wiki.ubuntuusers.de/System_verschl%C3%BCsseln/Entschl%C3%BCsseln_mit_einem_USB-Schl%C3%BCssel) habe ich meinen Server seit Jahren ohne nennenswerte betrieben. Nach dem Umstieg auf 15.04 mit Systemd hat das ganze leider nicht mehr funktioniert. Nachdem ich die große Suchmaschine angeschmissen habe, bin ich auf folgenden Hinweis gestoßen: https://wiki.debianforum.de/Cryptsetup_mit_systemd_und_Schl%C3%BCssel_auf_externem_USB-Stick Damit gelingt das Entschlüßeln von allen Partitionen außer der /root Partition, oder anders gesagt, ich muss jeden Morgen, wenn der Server bootet das PW von Hand eingeben, was sehr nervig ist. Ich habe im Internet keine brauchbare Lösung gefunden, weshalb ich folgendes gemacht habe:
Anpassung von: /usr/share/initramfs-tools/hooks/cryptroot
1 2 3 4 5 | # # If keyscript is set, the "key" is just an argument to the script # if [ "$key" != "none" ] && [ -z "$KEYSCRIPT" ]; then # echo "cryptsetup: WARNING: target $target uses a key file, skipped" >&2 # return 1 # fi |
/etc/cryttab
1 | sda2crypt UUID=12345678 /dev/disk/by-id/usb-xyz-0:0 luks,tries=3,keyfile-offset=512,keyfile-size=2048 |
/etc/initramfs-tools/scripts/local-top/decryt.sh
1 2 3 4 5 6 7 8 | #!/bin/sh # decrypting root if [ ! -b "/dev/mapper/sda2crypt" ]; then /etc/decryptkeydevice/decryptkeydevice_keyscript_systemd.sh cryptsetup luksOpen UUID=12345678 sda2crypt --key-file /keyfile.bin rm /keyfile.bin vgchange -a y fi |
Das Skript decryptkeydevice_keyscript_systemd.sh ist aus dem ersten Link und wurde leicht modifiziert, dass es den Key aus dem USB Stick ausliest und in die /keyfile.bin abspeichert.
Vielleicht ist das für jemanden hilfreich, der ähnliche Probleme hat oder es gibt talentiertere Menschen wie ich hier, die das Problem besser lösen können. Wenn jemand eine bessere Idee hat, immer her damit.
Gruß Ben