Verschlüsselte Partition automatisch mounten

Damit eine verschlüsselte Partition beim Booten automatisch entschlüsselt und gemountet wird, ist folgendes nötig.

  • Erstmal die verschlüsselte Partition erstellen und zur Probe mounten (siehe dm-crypt / LUKS):
    dd if=/dev/zero of=/srv/storage/crypted-disk.dd bs=1M count=40000
    cryptsetup -v luksFormat /srv/storage/crypted-disk.dd --type luks2
    echo -n meinpw | cryptsetup -v open /srv/storage/crypted-disk.dd decrypted-disk --key-file -
    mkfs.ext4 /dev/mapper/decrypted-disk
    cryptsetup -v close  decrypted-disk
    
  • Das Passwort speichern:
    echo -n meinpw > /etc/luks-keys/mydisk-luks.key
    chmod 400 /etc/luks-keys/mydisk-luks.key
    

    Nebenbei: Das ist natürlich der (Sicherheits-) Haken an der Sache: Das Passwort muss in Klartext da sein. Wenn aber z.B. schon die Root-Partition selber verschlüsselt ist, lässt sich das verkraften. Oder auch dann, wenn (wie bei mir) die Daten remote liegen und ich nur v.a. möchte dass die Daten verschlüsselt beim Cloud-Anbieter liegen.

  • In /etc/crypttab (wird später nicht mehr verwendet) das automatische Mounten vorbereiten:

    mydisk /srv/storage/crypted-disk.dd /etc/luks-keys/mydisk-luks.key   luks
    
  • Daraus werden nun Files in /run/systemd/generator/ generiert, wo sie aber erstmal noch ohne Funktion sind:
    systemctl --system daemon-reload
    
  • Ins System kopieren:
    cp /run/systemd/generator/systemd-cryptsetup@mydisk /etc/systemd/system/
    
  • Ausprobieren: Das sollte das nun das Filesystem entschlüsseln:
    systemctl start systemd-cryptsetup@mydisk
    ls -la /dev/mapper/
    
  • Zum Mounten habe ich mich für autofs entschieden, das ich für vieles verwende, das nicht zwingend beim Booten da sein muss. Der Eintrag in meiner /etc/auto.misc sieht in etwa so aus:
    mydisk -fstype=ext4 :/dev/mapper/mydisk
    
  • Nun aktivieren, dass es beim Boot passiert:
    systemctl unmask cryptdisks
    rm /lib/systemd/system/cryptdisks.service # löscht Link auf /dev/null
    systemctl daemon-reload
    systemctl enable cryptdisks
    

Dies funktioniert bei mir gut und bisher auch verlässlich. Jedoch passiert das beim Boot offenbar vor autofs – daher sollte das zugrundeliegende Filesystem, auf dem das crypted-disk.dd liegt, vorher (z.B. in /etc/fstab gemountet werden.)

Über ein Feedback, ob das jemand nachvollziehen konnte, freue mich mich sehr.

Anhang: Links

2 thoughts on “Verschlüsselte Partition automatisch mounten

  1. Statt des langsamen dd kann man auch truncate verwenden – geht auch auf remote smb-Laufwerken:

    truncate -s 40G /srv/storage/crypted-disk.dd
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.