Teljes lemezes titkosítás cryptsetup/LUKS segítségével#
✓ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
✓ |
Ez az útmutató azt mutatja be, hogyan kell konfigurálni a LUKS-titkosított köteteket, hogy a rendszerindításkor a Nitrokey Pro vagy a Nitrokey Storage segítségével hitelesítsenek.
Némi háttérinformációként a cryptsetup-initramfs mostantól támogatja az OpenPGP intelligens kártyák, például a Nitrokey Pro és a Nitrokey Storage használatát a LUKS-kódolt kötetek feloldásához. A telepítés befejezése után már csak be kell helyeznie a Nitrokey-t a rendszerindításkor, és be kell írnia a felhasználói PIN-kódot, ahelyett, hogy a szokásos lemez titkosítási jelszavát gépelné be.
Ezeket az utasításokat Ubuntu 20.04 és Debian 10 rendszereken teszteltük.
Figyelem
Az alábbi útmutató potenciálisan kizárhatja Önt a számítógépéből. Tisztában kell lennie ezekkel a kockázatokkal, és javasoljuk, hogy az alábbi szkriptet egy másodlagos számítógépen vagy egy teljes biztonsági mentés után használja, mivel elveszítheti adatait.
Követelmények#
Ubuntu vagy Debian számítógép legalább egy LUKS-titkosított kötettel.
Lásd az alábbi részt annak meghatározásához, hogy melyik módszer kompatibilis ezzel az útmutatóval.
Egy Nitrokey Pro 2 vagy Nitrokey Storage 2 inicializált kulcsokkal.
Ismert problémák#
Eddig a szkript csak kézzel particionált kötetekkel működik, amelyek egy titkosítatlan /boot
partícióból és egy titkosított gyökér /
partícióból állnak.
Kérjük, ne válassza az útmutatóhoz az Ön által használt operációs rendszer által biztosított automatikus teljes lemeztitkosítást. Az Ubuntu és a Debian telepítőfelületének használatával a partícionálás automatikus elvégzésekor visszatérő hibákkal fog szembesülni.
Utasítások#
Függőségek telepítése
$ sudo apt install scdaemon opensc gnupg2
Smartcard-luks könyvtár létrehozása
$ mkdir smartcard-luks && cd smartcard-luks
A smartcard-luks-script letöltése
$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks $ sudo chmod +x smartcard-key-luks
A nyilvános kulcs exportálása
A nyilvános kulcs exportálása a GnuPG kulcstárából:
$ gpg2 --armor --export KeyID > pubkey.asc
Ha már feltöltötte a nyilvános kulcsot egy kulcsszerverre (vagy máshol tárolja), akkor azt a számára legmegfelelőbb módon kell lekérnie, és az 5. lépéssel kell folytatnia.
Határozza meg és ellenőrizze a gyökérpartíció helyes LUKS-eszköznevét:
$ cat /etc/crypttab # if there is only one entry, you want the 1st column of this entry
Tipp
Ez általában valami olyasmi, mint nvme0n1p3_crypt (NitroPC esetén) vagy sda3_crypt (NitroPads esetén). A /dev/disks/by-uuid/ szimbolikus hivatkozással ellenőrizheted, hogy az /etc/crypttab-ban megadott UUID a kijelölt partíció-e, és érdemes is ellenőrizned.
Futtassa a szkriptet a luks eszköz nevével (pl. nvme0n1p3_crypt) és a pubkey.asc paraméterekkel.
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
Miután futtatja a szkriptet az OpenPGP nyilvános kulcsával, automatikusan létrehoz egy új LUKS-titkot, titkosítja azt a nyilvános kulccsal, és beállítja a crypttab, a LUKS, az initramfs és a GRUB rendszereket.
Először a User PIN
kérdezi meg a ``
Miután feloldotta a Nitrokey-t, a rendszer meg fogja kérdezni a OLD passphrase
. Ez az a jelszó, amelyet a telepítéskor a kötet titkosításához adott meg.
Megjegyzés
Ez egy tartalék alternatíva arra az esetre, ha elveszítené a Nitrokey-t, vagy ha az nem áll rendelkezésre. Egyelőre nem tesztelték, és a felhasználóknak tisztában kell lenniük azzal a kockázattal, hogy kizárják a számítógépükből, ha a tartalék módszer nem működik.
Miután megadta a jelszót, a szkript körülbelül egy perc alatt befejezi a beállítást. Ne szakítsa meg a szkriptet, különben az újraindítás után kizárhatja magát a számítógépből.
Kész!
Mostanra újra kell indítanod, és a Nitrokey-vel fel kell tudnod oldani a titkosított meghajtódat.
Használat#
Az újraindítás után a rendszer kérni fogja a felhasználói PIN-kódot.
Adja meg a felhasználói PIN-kódot a meghajtó feloldásához
További tippek#
Jelszó módosítása#
Ha ez a beállítás megtörtént, nem szabad többé a (gnome) disks segédprogramot használni a (tartalék) jelszó módosítására. A megfelelő módja ennek, ha közvetlenül hívod a cryptsetup-ot, így:
$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3
A nvme0n1p3 az a partíció, amelyhez a kulcsokat beállítottad.
Több kulcs használata#
Könnyen lehet több (hardveres) biztonsági kulcsot használni, így mindegyikük önállóan képes feloldani a LUKS-meghajtót. Csak exportáljon több nyilvános kulcsot, és adjon át több kulcsot a beállítási szkriptnek, így:
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc
Kártyabirtokos nevének beállítása#
A LUKS gyökérpartíció dekódolásához szükséges PIN-kód bevitele során a felhasználónak egy kártyatulajdonos jelenik meg, ennek beállításához használja a $ gpg --edit-card
és a prompton belül írja be a admin<x>
és name
az OpenPGP kártya (Nitrokey Storage 2 vagy Nitrokey Pro 2) kártyatulajdonosának beállításához.
Kulcsok cseréje/törlése#
A kulcsok közvetlen hozzáadása/eltávolítása nem lehetséges. Ezért törölnie/eltávolítania kell a régi beállításokat, és újra kell indítania a beállításokat a kijelölt kulcs(ok)kal:
Távolítsa el a kulcsfájlt (elérési útvonal, ha a fenti szkriptet használta) a luks-device (nvme0n1p3):
$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg
Magának a kulcsfájlnak az eltávolítása:
$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg
Futtassa újra a fenti beállításokat.
LUKS2 feloldása X509 tanúsítvánnyal#
A SystemD támogatja a LUKS2 partíció feloldását X509 tanúsítvány használatával, talál egy remek blogbejegyzést arról, hogyan lehet ezt megvalósítani a `Vlagyimir Timofenko személyes blogján.