Täielik ketta krüpteerimine koos cryptsetup/LUKSiga

See juhend näitab, kuidas konfigureerida LUKS-krüpteeritud mahtusid, et autentida neid käivitamisel Nitrokey Pro või Nitrokey Storage abil.

Taustaks, et cryptsetup-initramfs toetab nüüd LUKS-krüpteeritud mahtude avamiseks OpenPGP nutikaartide, nagu Nitrokey Pro ja Nitrokey Storage, kasutamist. Kui olete seadistamise lõpetanud, peate käivitamisel lihtsalt sisestama oma Nitrokey ja sisestama oma kasutaja PIN-koodi, selle asemel, et sisestada oma tavaline ketta krüpteerimise salasõna.

Neid juhiseid on testitud Ubuntu 20.04 ja Debian 10 peal.

Hoiatus

Järgnev juhend võib teid potentsiaalselt arvutist välja lukustada. Peaksite olema teadlik nendest riskidest ja soovitame kasutada allpool toodud skripti teises arvutis või pärast täielikku varundamist, kuna võite oma andmed kaotada.

Nõuded

  • Ubuntu või Debian arvuti, millel on vähemalt üks LUKS-krüpteeritud andmekandja.

Milline meetod on käesoleva juhisega ühilduv, leiate alljärgnevast jaotisest.

Teadaolevad probleemid

Siiani töötab skript ainult käsitsi partitsioneeritud mahtudega, mis koosnevad krüpteerimata /boot partitsioonist ja krüpteeritud juurpartitsioonist / partitsioonist.

Palun ärge valige selle juhendi jaoks kasutatava operatsioonisüsteemi poolt pakutavat automaatset täieliku ketta krüpteerimist. Ubuntu ja Debian’i paigaldusliidese abil automaatselt partitsioneerimisel tekivad korduvad vead.

Juhised

  1. Paigaldage sõltuvused

    $ sudo apt install scdaemon opensc gnupg2
    
  2. Luua kiipkaardilukside kataloog

    $ mkdir smartcard-luks && cd smartcard-luks
    
  3. Lae alla nutikaart-luks-skript

    $ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks
    $ sudo chmod +x smartcard-key-luks
    
  4. Avaliku võtme eksportimine

    Oma avaliku võtme eksportimine GnuPG võtmehoidjast:

    $ gpg2 --armor --export KeyID > pubkey.asc
    

    Kui olete avaliku võtme juba võtmeserverisse üles laadinud (või olete selle kuskil mujal salvestanud), tuleks see välja laadida viisil, mis on teile kõige mugavam, ja jätkata sammuga 5.

  5. Määrake kindlaks ja kontrollige oma root-partitsiooni õige LUKS-seadme nimi:

    $ cat /etc/crypttab
    # if there is only one entry, you want the 1st column of this entry
    

    Vihje

    Tavaliselt peaks see olema midagi sellist nagu nvme0n1p3_crypt (NitroPC puhul) või sda3_crypt (NitroPads puhul). Te võite ja peaksite kontrollima, et /etc/crypttab sees olev UUID on määratud partitsioon, kontrollides sümboolset linki /dev/disks/by-uuid/ sees.

  6. Käivita skript, kasutades argumentidena luks-seadme nime (nt nvme0n1p3_crypt) ja pubkey.asc.

    $ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
    

Kui käivitate skripti, mille argumendiks on OpenPGP avalik võti, loob see automaatselt uue LUKS-saladuse, krüpteerib selle avaliku võtme vastu ja seab sisse crypttab, LUKS, initramfs ja GRUB.

Kõigepealt küsitakse teilt User PIN` `User PIN

img1

Kui olete Nitrokey lukustuse vabastanud, küsitakse teilt oma OLD passphrase. See on salasõna, mille sisestasite paigaldamisel oma heliplaadi krüpteerimiseks.

img2

Märkus

See on tagavaravariant juhul, kui kaotate oma Nitrokey või kui see ei ole saadaval. Seni ei ole seda katsetatud ja kasutajad peavad olema teadlikud, et kui varumeetod ei toimi, on oht, et arvuti lukustub.

Kui olete sisestanud salasõna, lõpetab skript seadistamise umbes ühe minutiga. Ärge katkestage skripti, sest muidu võite pärast taaskäivitamist arvutist välja lukustuda.

img3

Valmis!

Nüüdseks peate tegema taaskäivituse ja peaksite suutma Nitrokey abil oma krüpteeritud draivi avada.

Kasutamine

Pärast taaskäivitamist peaks teil paluma sisestada oma kasutaja PIN-kood.

img5

Sisestage oma kasutaja PIN-kood kõvaketta avamiseks

img6

Täiendavad vihjed

Muuda salasõna

Kui see seadistus on tehtud, ei tohiks (gnome’i) ketaste utiliiti enam kasutada (varusõnumi) muutmiseks. Õige viis selleks on kutsuda cryptsetup otse, näiteks nii:

$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3

Kus nvme0n1p3 on partitsioon, mille jaoks te seadistasite võtmed.

Mitme võtme kasutamine

On lihtne kasutada mitut (riistvaralist) turvavõtit, nii et igaüks neist suudab LUKS-ketta lukustust iseseisvalt avada. Lihtsalt eksportige mitu avalikku võtit ja ka passi mitu võtit seadistusskriptile niimoodi:

$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc

Kaardivaldaja nime määramine

PIN-koodi sisestamise ajal käivitamisel LUKS-i juurpartitsiooni dekrüpteerimiseks esitatakse kasutajale kaardiomanik, selle seadmiseks kasutage $ gpg --edit-card ja sisestage küsitluse sees admin<x> ja name, et määrata OpenPGP-kaardi (Nitrokey Storage 2 või Nitrokey Pro 2) kaardiomanik.

Võtmete asendamine/kustutamine

Klahvide otsene lisamine/eemaldamine ei ole võimalik. Seetõttu peate vana seadistuse kustutama/eemaldama ja seadistuse uuesti käivitama määratud võtme(te)ga:

Eemaldage luks-seadmest (nvme0n1p3) võtmefail (tee, kui kasutasite eespool toodud skripti):

$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg

Eemaldage võtmefail ise:

$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg

Korrake ülaltoodud seadistust.

LUKS2 avamine X509 sertifikaadiga

SystemD toetab LUKS2 partitsiooni avamist X509 sertifikaadi abil, leia suurepärane blogi sissekanne selle realiseerimise kohta aadressil `Personal blog of Vladimir Timofeenko`__.