Přihlašování k ploše a ověřování uživatelů systému Linux#
Úvod#
Tento průvodce vás provede konfigurací systému Linux pro použití FIDO Universal 2nd Factor, tj. FIDO U2F s libpam-u2f
a Nitrokey FIDO2.
Pokud se chcete přihlásit k počítači pomocí Nitrokey Pro 2, Nitrokey Storage 2 a Nitrokey Start můžete navštívit návod dostupný zde.
Požadavky#
Ubuntu 20.04 se správcem zobrazení Gnome.
Nitrokey FIDO2 nakonfigurovaný podle těchto pokynů.
Pokyny#
Metoda GUI#
V levém dolním rohu klikněte na
Show Applications
a do vyhledávacího řádku zadejte následující nastavení:Přejděte v pravém panelu dolů na
Users
.V levém rohu klikněte na
Unlock
a zobrazí se výzva k zadání hesla.Zvolte
Administrator
a zadejte zvolené uživatelské jméno a heslo.Po dokončení kroku 4 byste měli být hotovi.
Metoda CLI#
Vytvořte záložního uživatele a dejte mu práva roota.
Můžete tak učinit pomocí těchto příkazů:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
V případě, že dáváte přednost nastavení U2F pro jednoho uživatele a jste uzamčeni z uživatelské relace, budete se moci přihlásit pomocí
<backup_user>
a pokračovat v údržbě.Varování
Následující průvodce vás může potenciálně zablokovat od počítače. Měli byste si být vědomi těchto rizik, protože se doporučuje použít níže uvedené pokyny nejprve na sekundárním počítači nebo po úplné záloze.
Po konfiguraci modulů PAM můžete ztratit přístup k datům.
Nastavte
rules
pro rozpoznání zařízení Nitrokey FIDO2.Pod
/etc/udev/rules.d
stáhnout41-nitrokey.rules
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
A restartujte
udev
službu$ sudo systemctl restart udev
Instalace
libpam-u2f
V Ubuntu 20.04 je možné stáhnout přímo
libpam-u2f
z oficiálních repozitářů$ sudo apt install libpam-u2f
Poznámka
Klikněte pro více možností
Případně můžete sestavit
libpam-u2f
z Git.Chcete-li ověřit, zda je knihovna správně nainstalována, zadejte následující příkaz:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Výstup by měl vypadat následovně:
/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
Příprava adresáře
Vytvořte
.config/Nitrokey/
v domovském adresáři.$ mkdir ~/.config/Nitrokey
A připojte zařízení Nitrokey FIDO2.
Po dokončení přípravy můžeme začít konfigurovat počítač tak, aby používal Nitrokey FIDO2 pro ověření 2. faktoru při přihlášení a
sudo
.Vytvoření konfiguračního souboru U2F
K vygenerování konfiguračního souboru použijeme nástroj
pamu2fcfg
, který je dodáván slibpam-u2f
. Pro větší pohodlí budeme výstup utility zapisovat přímo do souboruu2f_keys
pod.config/Nitrokey
. Nejprve připojte zařízení Nitrokey FIDO2 (pokud jste tak již neučinili) a zadejte následující příkaz:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Po spuštění výše uvedeného příkazu se musíte dotknout klávesy, zatímco bliká. Jakmile tak učiníte,
pamu2fcfg
připojí ke svému výstupuu2f_keys
v následujícím formátu:<username>:Zx...mw,04...0a
Všimněte si, že výstup bude mnohem delší, ale citlivé části zde byly odstraněny. Pro lepší zabezpečení a po vygenerování konfiguračního souboru přesuneme tímto příkazem adresář
.config/Nitrokey
pod adresářetc/
:$ sudo mv ~/.config/Nitrokey /etc
Tip
Soubor pod
.config/Nitrokey
se musí jmenovatu2f_keys
.Doporučujeme nejprve vyzkoušet pokyny s jedním uživatelem. K tomuto účelu předchozí příkaz přebírá volbu
-u
, pro určení uživatele, jako v příkladu níže:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
V případě konfigurace jednotlivých uživatelů byste měli v dalším kroku odkázat na domovský adresář nebo do konfigurace PAM nezahrnout možnost
authfile
.
Záloha
Tento krok není povinný, nicméně doporučujeme mít záložní klíč Nitrokey pro případ ztráty, krádeže nebo zničení klíče Nitrokey FIDO.
Chcete-li nastavit záložní klíč, zopakujte výše uvedený postup a použijte
pamu2fcfg -n
. Tím se vynechá pole<username>
a výstup lze připojit k řádku s vaším<username>
takto:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modifikace zásuvného modulu ověřování
PAM
Posledním krokem je konfigurace souborů modulu PAM pod
/etc/pam.d/
. V tomto návodu upravíme souborcommon-auth
, protože zpracovává nastavení ověřování, které je společné pro všechny služby, ale jsou možné i jiné varianty. Soubor můžete upravit následujícím příkazem:$ cd /etc/pam.d $ sudo $editor common-auth
A na začátek souboru přidejte následující řádky:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue prompt nouserok
Tip
Protože používáme centrální mapování ověřování, musíme zadat
pam_u2f
umístění souboru, který se má použít pomocí možnostiauthfile
.Pokud často zapomínáte vložit klíč,
prompt
možnost, abypam_u2f
vypsalaInsert your U2F device, then press ENTER.
a dala vám možnost vložit Nitroklíč.Pokud chcete být vyzváni, abyste se dotkli tlačítka Nitrokey,
cue
možnost způsobí, žepam_u2f
vytisknePlease touch the device.
zprávu.nouserok zajistí, že se budete moci stále přihlašovat pomocí uživatelského jména a hesla, což možná budete chtít v určitém okamžiku odstranit, jakmile bude nastavení fungovat a nebudete chtít pravidelné přihlašování pomocí uživatelského jména a hesla.
Po úpravě
common-auth
můžeme soubor uložit a ukončit.Konfiguraci můžete otestovat zadáním
sudo ls
v terminálu. Mělo by se zobrazit hlášeníPlease touch the device.
a na terminálu byste měli mít podobný výstup:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Konfiguraci můžete také otestovat odhlášením z relace uživatele a opětovným přihlášením. Podobná obrazovka by se měla zobrazit, jakmile odpojíte/zapojíte Nitrokey FIDO2 a zadáte heslo:
Použití#
Po úpravě modulu PAM budete moci konfiguraci ihned otestovat, ale doporučujeme restartovat počítač a odpojit/zapojit Nitrokey FIDO2.
Po řádném vyzkoušení pokynů uvedených v této příručce (a nastavení zálohy), doporučujeme použít buď required
nebo requisite
kontrolní příznak místo sufficient
.
Příznaky required
a requisite
zajišťují přísnější kontrolu přístupu a pro přihlášení a/nebo používání nakonfigurované služby je nutné použít Nitrokey FIDO2.
Pokud potřebujete další informace o řídicích příznacích v konfiguračním řádku PAM
, můžete si přečíst poslední část této příručky, kde se dozvíte, jaký je mezi nimi rozdíl a jaké důsledky má jejich použití.
Moduly PAM#
Existuje několik souborů modulů PAM, které lze upravit podle vašich potřeb:
Úpravou souboru
/etc/pam.d/common-auth
budete moci používat Nitrokey FIDO pro 2. faktor ověřování pro grafické přihlášení asudo
. Poznámka:common-auth
je třeba upravit přidáním dalšího konfiguračního řádku na konec souboru.Pokud chcete používat ověřování FIDO U2F pouze pro grafické přihlašování v prostředí Gnome, můžete raději upravit
/etc/pam.d/gdm-password
.Případně můžete pouze upravit soubor
/etc/pam.d/sudo
, pokud chcete při použití příkazusudo
použít FIDO U2F.
Kontrolní příznaky#
V kroku 7 jsme použili řídicí příznak sufficient
, abychom určili chování modulu PAM, když je Nitrokey zapojen nebo ne. Toto chování je však možné změnit pomocí následujících řídicích příznaků:
required
: Toto je nejkritičtější příznak. Výsledek modulu musí být úspěšný, aby ověřování mohlo pokračovat. Tento příznak může zablokovat váš počítač, pokud nemáte přístup ke klíči Nitrokey.requisite
: Podobně jakorequired
, avšak v případě, že konkrétní modul vrátí chybu, je řízení vráceno přímo aplikaci nebo nadřízenému zásobníku PAM. Tento příznak může také zablokovat váš počítač, pokud nemáte přístup ke klíči Nitrokey.sufficient
: Výsledek modulu je ignorován, pokud selže. Příznaksufficient
se považuje za bezpečný pro účely testování.optional
: Úspěch nebo neúspěch tohoto modulu je důležitý pouze v případě, že se jedná o jediný modul v zásobníku spojený s tímto typem služby+. Příznakoptional
se považuje za bezpečný pro účely testování.
Varování
Pokud je nastaveno
required
neborequisite
, selhání ověření U2F způsobí selhání celkového ověření. K selhání dojde v případě, že nakonfigurovaný Nitrokey FIDO není zapojen, je ztracen nebo zničen.Pokud jste špatně nakonfigurovali modul PAM a použili příznaky
required
neborequisite
, ztratíte přístup k počítači.Pokud nastavíte centrální mapování ověřování, ztratíte také možnost používat
sudo
. a použili příznakyrequired
neborequisite
.