13/10/2023

Dubbel wachtwoord ingeven bij versleuteld systeem

Filed under: — cybrarian @ 12:41 pm

Bij recente installatie van openSUSE (Leap/Tumbleweed) kan je voor versleutelde gegevens op de harde schijf kiezen, maar daarna heb je soms het vervelende gevolg dat je twee keer je wachtwoord moet ingeven: 1 keer voor grub (dat op een andere partitie zit) en 1 keer voor de hoofd-harde schijf op root / of de swap partitie. Vroeger heb ik dit ook al kunnen omzeilen (OpenSUSE 15.1 installatie met versleutelde gebruikersgegevens), maar hier een update..

De situatie:

– Start op (van boot partitie): grub vraagt wachtwoord.
– spreekt / partitie aan: vraagt wachtwoord.

Welcome to GRUB!
Enter passphrase for hd0,gpt2 (56c57….):

of bv:

Enter passphrase for hd0,gpt3 (6091….):

Na de vraag: komen er geen letters of ***, je kan ook geen pijltjes gebruiken, backspace lukt soms wel om iets te verbeteren …

Attempting to decrypt master key …

ps: Als je je wachtwoord verkeerd hebt intikt (keyboard staat bij start in qwerty) krijg je iets als:

GNU GRUB version 2.06 .. enz.

en moet je opnieuw afsluiten/opstarten.

Loading Linux ramdisk …
[?] Please enter passphrase for disk … (partition):
(press TAB for no echo)

************ (zijn zichtbaar)

Hier vraagt het systeem voor de tweede keer je passphrase, je toetsenbord is nu al ingesteld (bv op azerty). Deze willen we overslaan.

Een extra sleutel

Er moet een extra sleutel bijgemaakt worden, die ook de gegevens kan vrijmaken, en die gebruikt wordt door opstartprocedure van grub.
Die nieuwe sleutel heeft een random waarde en wordt enkel door het systeem gebruikt. We werken met sudo of als root:

su
fdisk -l

Hieruit leer ik dat /dev/sda3 mijn Linux filesystem is (check zelf).

Check en maak de key file, pas de rechten aan:
ls /.*.key
touch /.root.key
chmod 600 /.root.key
ls -lFA /.*.key

(eigenaar kan bestand lezen en schrijven, anderen hebben geen toegang)

Maak de sleutel en zet hem in het bestand:
dd if=/dev/urandom of=/.root.key bs=1024 count=1

Voeg de sleutel toe als manier om deze partitie te ontsleutelen:
cryptsetup luksAddKey /dev/sda3 /.root.key

cat /etc/crypttab
Vervang in de derde kolom none door /.root.key
bv met
mcedit /etc/crypttab

Voeg een lijn toe aan de configuratie:
echo -e 'install_items+=" /.root.key "' | sudo tee --append /etc/dracut.conf.d/99-root-key.conf > /dev/null

Nota: als 99-root-key.conf niet bestaat mag je hem gewoon maken (touch) en ineens invullen met bv mcedit of zo..

Check:
cat /etc/dracut.conf.d/99-root-key.conf

install_items+=" /.root.key "

Pas aan, bv met mcedit:
mcedit /etc/permissions.local

/boot/ root:root 0700

Check met:
chkstat --system --set
(lege reaktie als alles ok is, anders een foutmelding, meestal over syntax in voorgaande, bv 700 ipv 0700)

en mkinitrd bestaat niet meer, dus dracut:

dracut -f --regenerate-all

wat een lange output als feedback geeft eindigend op:

dracut[I]: *** Creating image file ‘/boot/initrd-6.5.6-1-default’ ***
dracut[I]: *** Creating initramfs image file ‘/boot/initrd-6.5.6-1-default’ done ***

Swap
Soms treedt een vergelijkbaar euvel op bij het gebruiken van een versleutelde swap partitie. Na het opensuse logo krijg je terug een zwart scherm met :

Please enter passphrase for disk SK hynix PC401 HFS25 HFS… (cr_swap)
(press TAB for no echo)

************ zijn zichtbaar en je toetsenbord is al ingesteld (bv op azerty).

Powered by WordPress