Tere kĂ”igile, olgu pĂ€ev vĂ”i öö! See postitus on kasulik neile, kes kasutavad LUKS-andmete krĂŒpteerimist ja soovivad Linuxis (Debian, Ubuntu) kettasid dekrĂŒpteerida root-partitsiooni dekrĂŒpteerimise etapis. Sellist teavet internetist ei leidnud.
Hiljuti, seoses kettade arvu suurenemisega riiulitel, sattusin probleemile, et dekodeerida kettaid tuntud meetodi kaudu /etc/crypttab. Isiklikult toin vĂ€lja mitu probleemi selle meetodi kasutamisel, nimelt see, et faili loetakse ainult pĂ€rast root-partitsiooni laadimist, mis mĂ”jutab negatiivselt ZFS-i importimist, eriti kui need on koostatud *_crypt seadmetelt vĂ”i mdadm RAID-idelt, mis on samuti koostatud partitsioonidelt. Me kĂ”ik teame, et LUKS-konteinerite puhul saab kasutada parted'i? Ja samuti on probleem varase kĂ€ivitamisega teiste teenuste puhul, kui massiive ei ole veel, aga kasutama kui juba on midagi vajalik (töötan klastritud Proxmox VE 5.x ja ZFS ĂŒle iSCSI).
Veidi ZFS over iSCSI-stiSCSI töötab mul lĂ€bi LIO ja kui iscsi-k_target kĂ€ivitub ning ei nĂ€e ZVOL seadmeid, siis eemaldab ta need lihtsalt konfiguratsioonist, mis ei vĂ”imalda kĂŒlalissĂŒsteemidel kĂ€ivituda. Sellest tulenevalt on kas json-faili varundamine vĂ”i seadmete kĂ€sitsi lisamine iga VM-i identifikaatoritega, mis on lihtsalt kohutav, kui selliseid masinaid on kĂŒmneid ja iga konfiguratsioonis rohkem kui 1 ketas.
Ja teine kĂŒsimus, mida kĂ€sitlen, on see, millega dekrĂŒpteerida (see on artikli vĂ”tme punkt). Ja sellest rÀÀgime allpool, tulge lugema!
Sageli kasutatakse internetis vĂ”tme faili (loomulikult eelnevalt antud slotti kĂ€suga â cryptsetup luksAddKey), vĂ”i harvadel juhtudel (venekeelses internetis on teave vĂ€ga piiratud) â skripti decrypt_derived, mis asub /lib/cryptsetup/script/ (loomulikult on veel meetodeid, kuid ma kasutasin just neid kahte, mis on artikli aluseks). Samuti sihiksin tĂ€ielikku autonoomset kĂ€ivitamist pĂ€rast taaskĂ€ivitusi, ilma et peaksin terminalis tĂ€iendavalt kĂ€ske sisestama, et kĂ”ik minu jaoks kohe âtöötaksâ. Nii et, miks oodata? â
Alustame!
Oletame, et meil on sĂŒsteem, nĂ€iteks Debian, paigaldatud krĂŒpteeritud osale sda3_crypt ja tosin ketast, mis on valmis krĂŒpteerimiseks ja mille kohta on kĂ”ik, mida sĂŒdame soovib. Meil on vĂ”tme fraas (passphrase) sda3_crypti avamiseks ja just sellest osast me vĂ”tame töötava (dekrĂŒpteeritud) sĂŒsteemi pealt paroolilt âhashiâ ja lisame selle teistele ketastele. KĂ”ik on elementaarne, sisestame konsoolis:
/lib/cryptsetup/scripts/decrypt_derived sda3_crypt | cryptsetup luksFormat /dev/sdXkus X on meie kettad, osad jne.
PĂ€rast ketaste krĂŒpteerimist meie vĂ”tme-fraasi âheshigaâ on vajalik teada UUID-d vĂ”i ID-d â sĂ”ltuvalt sellest, kes ja millega harjunud on. Saame andmed aadressilt /dev/disk/by-uuid ja by-id vastavalt.
JÀrgmiseks etapiks on failide ja mini-skriptide ettevalmistamine, et meie vajalikud funktsioonid töötaksid, alustame:
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/edasi
touch /etc/initramfs-tools/hooks/decrypt && chmod +x /etc/initramfs-tools/hooks/decryptSisu ..decrypt
#!/bin/sh
cp -p /lib/cryptsetup/scripts/decrypt_derived "$DESTDIR/bin/decrypt_derived"edasi
touch /etc/initramfs-tools/hooks/partcopy && chmod +x /etc/initramfs-tools/hooks/partcopySisu ..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"veel natuke
touch /etc/initramfs-tools/scripts/local-bottom/partprobe && chmod +x /etc/initramfs-tools/scripts/local-bottom/partprobeSisu ..partprobe
#!/bin/sh
$DESTDIR/bin/partprobeja viimane, enne update-initramfs-i, peame redigeerima faili /etc/initramfs-tools/scripts/local-top/cryptroot, alustades reast ~360, allpool olev koodinÀide
Originaal
# decrease $count by 1, apparently last try was successful.
count=$(( $count - 1 ))
message "cryptsetup ($crypttarget): set up successfully"
break
ja viima sellisesse vormi
Redigeeritud
# 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"
breakPange tĂ€hele, et siin saab kasutada nii UUID-d kui ka ID-d. Oluline on, et vajalikud draiverid HDD/SSD seadmetele oleksid lisatud /etc/initramfs-tools/modules. Kasutatava draiveri selgitamiseks saab kasutada kĂ€sku udevadm info -a -n /dev/sdX | egrep âlooking|DRIVERâ.
NĂŒĂŒd, kui oleme lĂ”petanud ja kĂ”ik failid on kohal, kĂ€ivitame update-initramfs -u -k all -v, logimises ei tohi olla meie skriptide tĂ€itmise vigu. TaaskĂ€ivitame, sisestame vĂ”tme-fraasi ja ootame natuke, sĂ”ltuvalt ketaste arvust. Edasi kĂ€ivitub sĂŒsteem ja kĂ€ivitamise lĂ”ppstaadiumis, nimelt pĂ€rast root-osade âmountimistâ, tĂ€idetakse kĂ€sk partprobe â see leiab ja ĂŒhendab kĂ”ik LUKS seadmetes loodud osad ning kĂ”ik massiivid, olgu need ZFS vĂ”i mdadm, koosnevad ilma probleemideta! Ja kĂ”ik see enne pĂ”hiteenuste ja -teenuste laadimist, mis vajavad neid kettaid/massiive. update1
: KuidasAEP Windows, PowerShell ja pikad teed
Allikas: habr.com
