Távoli újraindítás titkosított fájlrendszerrel
Mit tegyünk, ha távolról kell újraindítanunk a rendszerünket, ami titkosított fájlrendszerről fut? Ha nem csinálunk semmit, akkor a boot folyamat megáll, és a konzolon kell begépelnünk a jelszót. Megmutatom, hogyan lehet a fájlrendszer jelszavát is ssh-n keresztül megadni.
Fontos: az itt leírtakat Debian Jessie disztribúció alatt próbáltam. Más Debian verziókban valószínűleg hasonlóan működik, de előfordulhat, hogy szükség lesz apróbb változtatásokra.
- A távoli indításhoz szükségünk lesz az initrd-ben egy minimális ssh-szerverre.
- Meg kell oldanunk, hogy ugyanazt a hostkey-t használja, mint a gépen futó openssh szerver.
- Írnunk kell még egy kis scriptet, ami bekéri a jelszót, és beírja a megfelelő fifo-ba.
- És végül meg kell győznünk az update-initramfs-t, hogy a scriptünket mindig tegye be az initrd-be.
Telepítsük fel a szükséges csomagokat:
apt-get install --no-install-recommends openssh-server dropbear busybox
Konvertáljuk az openssh kulcsát az initrd-ben futó dropbear számára:
/usr/lib/dropbear/dropbearconvert openssh dropbear \
/etc/ssh/ssh_host_ecdsa_key \
/etc/initramfs-tools/etc/dropbear/dropbear_ecdsa_host_key
Hozzuk létre a /root/unlock
scriptet:
#!/bin/ash/
echo -n "Enter the key: "
read a
echo -ne "$a" > /lib/cryptsetup/passfifo
echo "Done."
Adjunk rá futási jogot:
chmod 755 /root/unlock
Hozzuk létre a hook-ok /usr/share/initramfs-tools/hooks/unlock
néven
#!/bin/sh
. "${CONFDIR}/initramfs.conf"
. /usr/share/initramfs-tools/hook-functions
copy_exec "/root/unlock" "/bin/"
És végül frissítsük az initrd-t:
update-initramfs -u
Ha ezek után újraindítjuk a gépet, be tudunk rá lépni ssh-val a boot folyamat közben, és az unlock paranccsal megadva a titkosított meghajtó jelszavát, a boot folyamat folytatódik.