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.
Statt des langsamen
dd
kann man auchtruncate
verwenden – geht auch auf remote smb-Laufwerken:Nochmal nachvollzogen in https://www-home.steinkopf.net/jira/browse/ADM-20 (nicht öffentlich).
Vergrößern des verschlüsselten Volumes an meinem Beispiel:
Hallo
Danke für die Anleitung (5 Jahre später). Ich benutze autofs, da ich die zur Zeit noch nicht verschlüsselte Disk selten benutze (1-2 x pro Tag); dank autofs schaltet sie dazwischen zuverlässig ab (spin-down). Weisst Du, ob eine Disk auch abschaltet, wenn eine Partition LUKS-entschlüsselt ist (aber nicht autofs-gemountet)?
Al
Hallo Al,
Ich gehe stark davon aus, dass der Spindown nichts mit der LUKS Verschlüsselung hat zu tun hat, diese das also weder verhindert noch bewirkt. Du kannst beziehungsweise musst die entschlüssele Partition wiederum wieder automounten.
Ich selber mache das zwar nicht mit physischen Festplatten, aber mit Remote-Laufwerken, die ich nicht permanent mounten möchte.
Dirk