Pilna diska šifrēšana ar cryptsetup/LUKS#

Šajā rokasgrāmatā ir parādīts, kā konfigurēt LUKS šifrētus sējumus, lai autentificētu tos bootēšanas laikā ar Nitrokey Pro vai Nitrokey Storage.

Lai sniegtu nelielu ieskatu, cryptsetup-initramfs tagad atbalsta OpenPGP viedkaršu, piemēram, Nitrokey Pro un Nitrokey Storage, izmantošanu, lai atbloķētu LUKS šifrētus sējumus. Pēc iestatīšanas pabeigšanas jums būs tikai jāievieto Nitrokey, kad sākat datoram strādāt, un jāievada lietotāja PIN kods, nevis jāievada parastā diska šifrēšanas parole.

Šie norādījumi ir pārbaudīti Ubuntu 20.04 un Debian 10.

Brīdinājums

Iespējams, ka turpmāk sniegtā rokasgrāmata var bloķēt jūsu datoru. Jums jāapzinās šie riski, un mēs iesakām izmantot tālāk aprakstīto skriptu sekundārā datorā vai pēc pilnas dublējuma kopijas izveides, jo varat zaudēt datus.

Prasības#

  • Ubuntu vai Debian dators ar vismaz vienu LUKS šifrētu sējumu.

Lai noteiktu, kura metode ir saderīga ar šo rokasgrāmatu, skatiet tālāk sniegto sadaļu.

  • Nitrokey Pro 2 vai Nitrokey Storage 2 iniicializēts ar taustiņiem.

Zināmās problēmas#

Līdz šim skripts darbojas tikai ar manuāli sadalītiem sējumiem, kas sastāv no nešifrēta /boot nodalījuma un šifrēta saknes / nodalījuma.

Lūdzu, neizvēlieties automātisko pilndiska šifrēšanu, ko nodrošina operētājsistēma, kuru izmantojat šajā rokasgrāmatā. Izmantojot Ubuntu un Debian instalēšanas interfeisu, jūs saskarsieties ar atkārtotām kļūdām, ja sadalīšana tiek veikta automātiski, izmantojot instalēšanas interfeisu.

Instrukcijas#

  1. Instalēt atkarības

    $ sudo apt install scdaemon opensc gnupg2
    
  2. Izveidot smartcard-luks direktoriju

    $ mkdir smartcard-luks && cd smartcard-luks
    
  3. Lejupielādēt smartcard-luks-skriptu

    $ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks
    $ sudo chmod +x smartcard-key-luks
    
  4. Eksportēt publisko atslēgu

    Lai eksportētu savu publisko atslēgu no GnuPG atslēgu kopas:

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

    Ja publiskā atslēga jau ir augšupielādēta atslēgu serverī (vai glabājas kaut kur citur), jums tā jāatgūst tādā veidā, kas jums ir ērtākais, un jāpāriet pie 5. soļa.

  5. Nosakiet un pārbaudiet pareizo LUKS ierīces nosaukumu savam saknes nodalījumam:

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

    Mājiens

    Parasti tam vajadzētu būt kaut kam līdzīgam nvme0n1p3_crypt (NitroPC) vai sda3_crypt (NitroPad). Jūs varat un jums vajadzētu pārbaudīt, vai UUID, kas norādīts /etc/crypttab, ir norādītais nodalījums, pārbaudot simbolisko saiti /dev/disks/by-uuid/.

  6. Izpildiet skriptu, kā argumentus norādot luks ierīces nosaukumu (piemēram, nvme0n1p3_crypt) un pubkey.asc.

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

Pēc tam, kad skripts tiek palaists ar OpenPGP publisko atslēgu kā argumentu, tas automātiski izveido jaunu LUKS noslēpumu, šifrē to pret šo publisko atslēgu un izveido crypttab, LUKS, initramfs un GRUB.

Vispirms tiks pieprasīts User PIN.

attēls1

Kad atbloķēsiet Nitrokey, tiks pieprasīts ievadīt OLD passphrase. Tā ir piekļuves frāze, ko ievadījāt, lai instalēšanas laikā šifrētu savu sējumu.

attēls2

Piezīme

Šī ir rezerves alternatīva gadījumā, ja nozaudējat Nitrokey vai ja tas nav pieejams. Pagaidām tā nav pārbaudīta, un lietotājiem jāapzinās, ka pastāv risks, ka dators var tikt bloķēts, ja rezerves metode nedarbojas.

Pēc paroles frāzes ievadīšanas skripts pabeidz iestatīšanu aptuveni vienas minūtes laikā. Nepārtrauciet skripta darbību, pretējā gadījumā pēc pārstartēšanas dators var tikt bloķēts.

attēls3

Paveikts!

Tagad jums ir jāpārstartē sistēma, un jums vajadzētu būt iespējai izmantot Nitrokey, lai atbloķētu šifrēto disku.

Lietošana#

Pēc atkārtotas palaišanas jāparādās pieprasījumam ievadīt lietotāja PIN kodu.

attēls5

Ievadiet lietotāja PIN kodu, lai atbloķētu disku

attēls6

Papildu padomi#

Mainīt piekļuves frāzi#

Kad šī iestatīšana ir veikta, jums vairs nevajadzētu izmantot (gnome) disks utilītu, lai mainītu (rezerves) piekļuves frāzi. Pareizais veids, kā to izdarīt, ir izsaukt cryptsetup tieši šādi:

$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3

Ar nvme0n1p3 ir nodalījums, kuram iestatāt atslēgas.

Vairāku taustiņu izmantošana#

Ir viegli izmantot vairākas (aparatūras) drošības atslēgas, lai ar katru no tām varētu neatkarīgi atbloķēt LUKS disku. Vienkārši eksportējiet vairākas publiskās atslēgas un arī iestatīšanas skriptam nododiet vairākas atslēgas šādā veidā:

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

Kartes turētāja vārda iestatīšana#

LUKS saknes nodalījuma atšifrēšanas PIN ievades laikā lietotājam tiek parādīts kartes turētājs, lai to iestatītu, lūdzu, izmantojiet $ gpg --edit-card un izsaukumā ievadiet admin un </x id="198"></x>, lai iestatītu OpenPGP kartes turētāju (Nitrokey Storage 2 vai Nitrokey Pro 2).

Mainīt/dzēst atslēgas#

Nav iespējams tieši pievienot/izdzēst atslēgas. Tāpēc jums ir jāizdzēš/jāizdzēš vecā iestatīšana un iestatīšana jāveic no jauna ar norādīto(-ajām) atslēgu(-ām):

Noņemiet atslēgas failu (ceļu, ja izmantojāt iepriekš minēto skriptu) no luks-device (nvme0n1p3):

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

Paša atslēgas faila noņemšana:

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

Atkārtoti palaidiet iepriekš minēto iestatīšanu.

LUKS2 atbloķēšana ar X509 sertifikātu#

SystemD atbalsta LUKS2 nodalījuma atbloķēšanu, izmantojot X509 sertifikātu, atrodiet lielisku bloga ierakstu par to, kā to īstenot Vladimira Timofeenko personīgais blogs