Entschlësselung vun engem LUKS Container bei System Boot Zäit

Gudden Dag an Nuecht jiddereen! Dëse Post wäert nëtzlech sinn fir déi, déi LUKS Dateverschlësselung benotzen a wëllen Disken ënner Linux (Debian, Ubuntu) entschlësselen Etappe vun der Entschlësselung vun der Root-Partition. An ech konnt net esou Informatiounen um Internet fannen.

Méi kierzlech, mat der Erhéijung vun der Unzuel vun Disken an de Regaler, hunn ech de Problem vun der Entschlësselung vun Disken mat der méi wéi bekannter Method duerch /etc/crypttab gerannt. Perséinlech markéieren ech e puer Probleemer mat dëser Methode, nämlech datt d'Datei gelies gëtt nëmmen nom Luede (Mount) d'Root Partition, wat negativ Auswierkungen op ZFS-Importer, besonnesch wa se aus Partitionen op dem *_crypt-Apparat gebaut goufen, oder mdadm Iwwerfäll och aus Partitionen gebaut. Mir all wëssen, datt Dir op LUKS Container getrennt benotzen kann, riets? An och de Problem vum fréie Start vun anere Servicer, wann et nach keng Arrays sinn, awer benotzen Ech brauch schonn eppes (Ech schaffen mat clustered Proxmox VE 5.x an ZFS iwwer iSCSI).

E bëssen iwwer ZFSoverISCSIiSCSI Wierker fir mech duerch LIO, an Tatsaach, wann der iscsi Zil- fänkt an net ZVOL Apparater gesinn, et läscht se einfach aus der Configuratioun, déi verhënnert Gaascht Systemer aus Stiwwel. Dofir, entweder e Backup vun engem json-Datei restauréieren, oder manuell Geräter mat Identifizéierer fir all VM derbäisetzen, wat einfach schrecklech ass wann et Dosende vu sou Maschinnen gëtt an all Konfiguratioun méi wéi 1 Disk huet.

An déi zweet Fro, déi ech wäert betruechten, ass wéi entschlësselt (dëst ass de Schlësselpunkt vum Artikel). A mir schwätzen iwwer dëst hei ënnen, gitt ënner dem Schnëtt!

Am meeschten, am Internet, gëtt eng Schlësseldatei benotzt (selbst an de Slot virdru vum Kommando bäigefüügt - cryptsetup luksAddKey), oder a rare Ausnahmen (am russeschsproochege Internet gëtt et ganz wéineg Informatioun) - de decrypt_derived Skript läit an /lib/cryptsetup/script/ (natierlech ginn et aner Weeër, awer ech hunn dës zwee benotzt, déi d'Basis vum Artikel geformt hunn). Ech hunn och fir eng voll autonom Inklusioun no Neistarten gestrieft, ouni zousätzlech Kommandoen an der Konsole, sou datt alles fir mech op eemol géif "fléien". Dofir, firwat waarden? -

Loosst eis ufänken!

Loosst eis unhuelen datt e System, wéi Debian, op enger sda3_crypt Krypto-Partition installéiert ass an eng Dosen Disks prett fir ze verschlësselen an erstallt ze ginn no Ärem Häerzinhalt. Mir hunn e Passphrase (Passphrase) fir sda3_crypt opzemaachen, an et ass vun dëser Partition datt mir den "Hash" vum Passwuert op dem lafenden (dekryptéierten) System ewechhuelen an et op de Rescht vun den Disken addéieren. Alles ass elementar, an der Konsole maache mir aus:

/lib/cryptsetup/scripts/decrypt_derived sda3_crypt | cryptsetup luksFormat /dev/sdX

wou X eis Disken, Partitionen, asw.

Nodeems Dir d'Disks mat engem "Hash" vun eisem Passphrase verschlësselt hutt, musst Dir d'UUID oder d'ID erausfannen - ofhängeg vu wien gewinnt ass wat a wat. Mir huelen Daten aus /dev/disk/by-uuid respektiv by-id.

De nächste Schrëtt ass d'Virbereedung vun Dateien a Mini-Skripte fir d'Funktiounen déi mir brauchen fir ze schaffen, loosst eis virgoen:

cp -p /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks/
cp -p /usr/share/initramfs-tools/scripts/local-top/cryptroot /etc/initramfs-tools/scripts/local-top/

weider

touch /etc/initramfs-tools/hooks/decrypt && chmod +x /etc/initramfs-tools/hooks/decrypt

Inhalt vun ../decrypt

#!/bin/sh

cp -p /lib/cryptsetup/scripts/decrypt_derived "$DESTDIR/bin/decrypt_derived"

weider

touch /etc/initramfs-tools/hooks/partcopy && chmod +x /etc/initramfs-tools/hooks/partcopy

Den Inhalt vun ../partcopy

#!/bin/sh

cp -p /sbin/partprobe "$DESTDIR/bin/partprobe"
cp -p /lib/x86_64-linux-gnu/libparted.so.2 "$DESTDIR/lib/x86_64-linux-gnu/libparted.so.2"
cp -p /lib/x86_64-linux-gnu/libreadline.so.7 "$DESTDIR/lib/x86_64-linux-gnu/libreadline.so.7"

e bësse méi

touch /etc/initramfs-tools/scripts/local-bottom/partprobe && chmod +x /etc/initramfs-tools/scripts/local-bottom/partprobe

Inhalt ../partprobe

#!/bin/sh

$DESTDIR/bin/partprobe

a leschter, virum Update-initramfs, musst Dir d' /etc/initramfs-tools/scripts/local-top/cryptroot Datei änneren, ab der Linn ~360, Code Snippet ënnendrënner

Original


                # decrease $count by 1, apparently last try was successful.
                count=$(( $count - 1 ))
                
                message "cryptsetup ($crypttarget): set up successfully"
                break

a bréngt et op dës Form

Editéiert


                # decrease $count by 1, apparently last try was successful.
                count=$(( $count - 1 ))
                

                /bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-uuid/ *CRYPT_MAP*
                /bin/decrypt_derived $crypttarget | cryptsetup luksOpen /dev/disk/by-id/ *CRYPT_MAP*

                message "cryptsetup ($crypttarget): set up successfully"
                break

Notéiert datt entweder UUID oder ID hei benotzt kënne ginn. Den Haapt Saach ass datt déi néideg Treiber fir HDD / SSD Geräter op /etc/initramfs-tools/modules bäigefüügt ginn. Dir kënnt erausfannen wéi ee Chauffer mam Kommando benotzt gëtt udevadm info -a -n /dev/sdX | egrep 'looking|DRIVER'.

Elo datt mir fäerdeg sinn an all d'Dateien op der Plaz sinn, lafen update-initramfs -u -k all -v, am Logbuch däerf net sinn Ausféierungsfehler vun eise Skripte. Mir restarten, gitt de Passphrase a waart e bëssen, ofhängeg vun der Unzuel vun Disken. Als nächst fänkt de System un an an der leschter Etapp vum Start, nämlech nom "Montage" vun der Root-Partition, gëtt de Partprobe Kommando ausgefouert - et fënnt an all erstallt Partitionen op LUKS Apparater an all Arrays, sief et ZFS oder mdadm, wäert ouni Probleemer zesummegesat ginn! An dat alles virum Luede Kär Servicer a Servicer déi dës Disken / Arrays brauchen.

Aktualiséierung 1: Wéi gemierkt AEP, Dës Method funktionnéiert nëmme fir LUKS1.

Source: will.com

Setzt e Commentaire