Seite 1 von 1

Boot: Vollverschlüsselung von RootFS mit Schlüsseldatei

Verfasst: 02.01.2020, 15:55
von localhorst
Ziel
Ziel ist die Vollverschlüsselung der Festplatte(n) mit LUKS. Der Boot soll dabei über eine SD-Karte bzw einen USB-Stick erfolgen, der auch den Schlüssel für die Festplatte speichert.

Voraussetzung
Zunächst wird das Betriebssystem installiert. Dabei muss die /boot und ggf. EFI-Partition auf das externe Speichermedium gelegt werden. Das Root-Partition muss während des Setups bereits mit einem Passwort verschlüsselt werden.

openSUSE / SLES
  • Schlüsseldatei erzeugen:

    Code: Alles auswählen

    dd if=/dev/urandom of=/boot/key bs=512 count=4
  • Dateirechte ändern:

    Code: Alles auswählen

    chmod 400 /boot/key
  • "/etc/default/grub" zum Schreiben öffnen und folgenden Wert setzen:

    Code: Alles auswählen

    GRUB_ENABLE_CRYPTODISK=y
  • Schlüsseldatei dem verschlüsselten Laufwerk hinzufügen:

    Code: Alles auswählen

    sudo cryptsetup luksAddKey /dev/sdaX /boot/key
  • cryptsetup mitteilen, dass es zum Entschlüsseln die Schlüsseldatei verwenden soll. Dazu in der Datei "/etc/crypttab" den 3. Wert "none" in "/boot/key" ändern.
  • Ramdisk die Schlüsseldatei bekannt machen. Dazu die Datei "/etc/dracut.conf.d/99-initcrypt.conf" zum Schreiben öffnen und folgenden Eintrag setzen:

    Code: Alles auswählen

    install_items+=" /boot/key "
  • Ramdisk neu erzeugen:

    Code: Alles auswählen

    mkinitrd
Ubuntu
  • Schlüsseldatei erzeugen:

    Code: Alles auswählen

    dd if=/dev/urandom of=/boot/key bs=512 count=4
  • Dateirechte ändern:

    Code: Alles auswählen

    chmod 400 /boot/key
  • Schlüsseldatei dem verschlüsselten Laufwerk hinzufügen:

    Code: Alles auswählen

    sudo cryptsetup luksAddKey /dev/sdaX /boot/key
  • cryptsetup mitteilen, dass es zum Entschlüsseln die Schlüsseldatei verwenden soll. Dazu in der Datei "/etc/crypttab" den 3. Wert "none" in "/boot/key" ändern.
  • Die Datei "/etc/cryptsetup-initramfs/conf-hook" zum Schreiben öffnen und folgendes Wertepaar setzen:

    Code: Alles auswählen

    KEYFILE_PATTERN=/boot/key
  • Die Datei "/etc/initramfs-tools/initramfs.conf" zum Schreiben öffnen und folgendes Wertepaar setzen:

    Code: Alles auswählen

    UMASK=0077
  • Ramdisk neu erzeugen:

    Code: Alles auswählen

    update-initramfs -u -k all
Quellen