Amikor egy Linux fájrendszert LVM-el titkosítva hozunk létre a debian telepítőjével, akkor minden indításkor kéri a jelszót a fájlrendszer feloldásához. Ezt lehet megoldani az adott számítógéphez köthető megoldással, ami feloldja automatikusan ezt.

Nálam egy /boot (sda1) és egy / (extended titkosított sda5) partíció van

0. Biztonsági mentés az eredeti initramfs-ről.

Hozzunk létre egy másolatot

cp /boot/initrd.img-X.Y.Z-N-amd64 /boot/initrd.img-X.Y.Z-N-amd64.safe

Majd változtassuk meg a betöltőmenüt. A /boot/grub/grub.cfg fájlban duplázzuk a menu-t a menuentry résznél, és azon belül az initrd sort változtassuk meg. Plusz egy timeout hiba miatt a linux-al kezdődő sorban az ro és quiet kernel parancsok közé tegyük be a következőt: rd.luks.crypttab=yes luks.crypttab=no.

Bár az a szabály, hogy ezt a fájlt ne változtassuk.

Valahogy így kellene kinéznie: 

### BEGIN /etc/grub.d/10_linux ###
#...
menuentry 'Debian GNU/Linux (crypto safe)' --class debian --class gnu-linux --class gnu --class os {
       load_video
       insmod gzio
       insmod part_msdos
       insmod ext2
       set root='hd0,msdos1'
       search --no-floppy --fs-uuid --set=root 2a5e9b7f-2128-4a50-83b6-d1c285410145
       echo    'Loading Linux 4.19.0-14-amd64 ...'
       linux   /vmlinuz-4.19.0-14-amd64 root=/dev/mapper/dradispro-root ro rd.luks.crypttab=yes luks.crypttab=no quiet
       echo    'Loading initial ramdisk ...'
       initrd  /initrd.img-4.19.0-14-amd64.safe
}
# ...
### END /etc/grub.d/10_linux ###

 Ezek után bármi gond lép fel a művelet által, vissza tudjuk állítani az eredeti állapotot.

 1. Véletlenszerű kulcsfájl létrehozása

dd if=/dev/urandom of=/boot/keyfile bs=1024 count=4

2. Csak a rendszergazda férhessen hozzá

chmod 0400 /boot/keyfile 

3. Kulcsfájl hozzárendelése a partícióhoz

cryptsetup -v luksAddKey /dev/sda5 /boot/keyfile 

Ekkor be kell írni a partícióhoz tartozó jelszót. Utána a következő jelenik meg:

Key slot 0 unlocked.
Key slot 1 created.
Command successful.

4. /etc/crypttab fájl módosítása

Először megkeressük a /dev/sda1-hez tartozó UUID-t

ls -l /dev/disk/by-uuid/

Az eredetihez képest a none helyett a keyfile-t kell megadni, a végére pedig beszúrni a keyscript=/lib/cryptsetup/scripts/passdev szöveget

sda5_crypt UUID=(...) /dev/disk/by-uuid/<uuid>:/keyfile luks,discard,keyscript=/lib/cryptsetup/scripts/passdev

Legyen csak olvasható a fájl (eredetileg 0777)

chmod 0440 /etc/crypttab

5. Initramfs készítés

mkinitramfs -o /boot/initrd.img-4.19.0-14-amd64 4.19.0-14-amd64

6. Újraindítás

 


Források:

https://dradisframework.com/support/guides/customization/auto-unlock-luks-encrypted-drive.html

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786559

 

Konfiguráció:

Lenovo X250 notebook

Debian10 Buster

You have no rights to post comments