Šifriranje celotnega diska s programom cryptsetup/LUKS¶
✓ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
✓ |
V tem priročniku je prikazano, kako konfigurirati volumne, šifrirane s protokolom LUKS, za preverjanje pristnosti ob zagonu z Nitrokey Pro ali Nitrokey Storage.
V ozadju je v programu cryptsetup-initramfs zdaj na voljo podpora za uporabo pametnih kartic OpenPGP, kot sta Nitrokey Pro in Nitrokey Storage, za odklepanje volumnov, šifriranih s tehnologijo LUKS. Ko končate z nastavitvijo, boste morali ob zagonu vstaviti ključ Nitrokey in vnesti uporabniški PIN, namesto da bi vnesli običajno geslo za šifriranje diska.
Ta navodila so bila preizkušena v Ubuntuju 20.04 in Debianu 10.
Opozorilo
Naslednji vodnik vas lahko zaklene iz računalnika. Teh tveganj se morate zavedati, zato vam priporočamo, da spodnjo skripto uporabite v drugem računalniku ali po popolni varnostni kopiji, saj lahko izgubite svoje podatke.
Zahteve¶
Računalnik Ubuntu ali Debian z vsaj enim šifriranim zvezkom LUKS.
Če želite ugotoviti, katera metoda je združljiva s tem vodnikom, glejte spodnji razdelek.
Nitrokey Pro 2 ali Nitrokey Storage 2 inicializiran s tipkami.
Znane težave¶
Skripta zaenkrat deluje le z ročno razdeljenimi zvezki, ki so sestavljeni iz nešifrirane /boot
particije in šifrirane korenske /
particije.
Ne izberite samodejnega šifriranja celotnega diska, ki ga zagotavlja operacijski sistem, ki ga uporabljate za ta vodnik. Pri samodejnem razdeljevanju razdelkov z uporabo namestitvenega vmesnika v Ubuntuju in Debianu boste naleteli na ponavljajoče se napake.
Navodila¶
Namestitev odvisnosti
$ sudo apt install scdaemon opensc gnupg2
Ustvarite imenik smartcard-luks
$ mkdir smartcard-luks && cd smartcard-luks
Prenesite skript smartcard-luks
$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks $ sudo chmod +x smartcard-key-luks
Izvozite javni ključ
Izvoz javnega ključa iz zbirke ključev GnuPG:
$ gpg2 --armor --export KeyID > pubkey.asc
Če ste javni ključ že prenesli v strežnik ključev (ali ga imate shranjenega drugje), ga pridobite na način, ki vam najbolj ustreza, in nadaljujte s korakom 5.
Določite in preverite pravilno ime naprave LUKS za korensko particijo:
$ cat /etc/crypttab # if there is only one entry, you want the 1st column of this entry
Nasvet
Običajno je to nekaj takega kot nvme0n1p3_crypt (za NitroPC) ali sda3_crypt (za NitroPad). Lahko in morate preveriti, ali je UUID, naveden znotraj /etc/crypttab, določena particija, tako da preverite simbolno povezavo znotraj /dev/disks/by-uuid/.
Izvedite skripto z imenom naprave luks (npr. nvme0n1p3_crypt) in pubkey.asc kot argumentoma.
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
Ko zaženete skripto z javnim ključem OpenPGP kot argumentom, skripta samodejno vzpostavi novo skrivnost LUKS, jo šifrira s tem javnim ključem in nastavi crypttab, LUKS, initramfs in GRUB.
Najprej boste pozvani k User PIN
Ko odklenete ključ Nitrokey, boste pozvani k vpisu OLD passphrase
. To je geslo, ki ste ga vnesli za šifriranje glasnosti ob namestitvi.
Opomba
To je nadomestna možnost, če izgubite ključ Nitrokey ali če ta ni na voljo. Do zdaj ni bila preizkušena, zato se morajo uporabniki zavedati tveganja, da bodo zaklenjeni iz računalnika, če rezervna metoda ne bo delovala.
Ko vnesete geslo, skripta v približno eni minuti konča namestitev. Skripte ne prekinjajte, sicer lahko po ponovnem zagonu zaklenete računalnik.
Končano!
Zdaj morate znova zagnati računalnik in s ključem Nitrokey boste lahko odklenili šifrirani disk.
Uporaba¶
Po ponovnem zagonu morate biti pozvani k vnosu uporabniške kode PIN.
Vnesite uporabniško kodo PIN, da odklenete pogon
Nadaljnji namigi¶
Sprememba gesla¶
Ko je ta nastavitev opravljena, ne smete več uporabljati pripomočka (gnome) diski za spreminjanje (rezervne) gesla. Pravilen način za to je, da neposredno pokličete cryptsetup na naslednji način:
$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3
Pri čemer je nvme0n1p3 razdelek, za katerega ste nastavili ključe.
Uporaba več tipk¶
Enostavno lahko uporabite več (strojnih) varnostnih ključev, tako da lahko vsak od njih samostojno odklene pogon LUKS. Enostavno izvozite več javnih ključev in tudi predajte več ključev v nastavitveno skripto, kot sledi:
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc
Nastavitev imena imetnika kartice¶
Med vnosom kode PIN ob zagonu za dešifriranje korenskega razdelka LUKS se uporabniku prikaže imetnik kartice, za nastavitev tega uporabite $ gpg --edit-card
in znotraj poziva vnesite admin
in </x id="198"></x>
za nastavitev imetnika kartice za kartico OpenPGP (Nitrokey Storage 2 ali Nitrokey Pro 2).
Zamenjava/izbris ključev¶
Neposredno dodajanje/odstranjevanje ključev ni mogoče. Zato morate izbrisati/odstraniti staro nastavitev in ponovno zagnati nastavitev z določenimi ključi:
Odstranite datoteko s ključi (pot, če ste uporabili zgornjo skripto) iz luks-device (nvme0n1p3):
$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg
Odstranite samo datoteko s ključi:
$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg
Ponovno zaženite zgornjo nastavitev.
Odklepanje sistema LUKS2 s potrdilom X509¶
SystemD podpira odklepanje particije LUKS2 s certifikatom X509, odličen zapis na blogu o tem, kako to izvesti, najdete na Osebni blog Vladimirja Timofeenka