Přihlašování k ploše a ověřování uživatelů systému Linux

Úvod

This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and 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

  1. V levém dolním rohu klikněte na Show Applications a do vyhledávacího řádku zadejte následující nastavení:

    img1
  2. Přejděte v pravém panelu dolů na Users.

    img2
  3. V levém rohu klikněte na Unlock a zobrazí se výzva k zadání hesla.

    img3
  4. Zvolte Administrator a zadejte zvolené uživatelské jméno a heslo.

    img4
  5. Po dokončení kroku 4 byste měli být hotovi.

    img5

Metoda CLI

  1. 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.

  2. Nastavte rules pro rozpoznání zařízení Nitrokey FIDO2.

    Pod /etc/udev/rules.d stáhnout 41-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
    
  3. 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
    
  4. 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.

  5. Vytvoření konfiguračního souboru U2F

    K vygenerování konfiguračního souboru použijeme nástroj pamu2fcfg, který je dodáván s libpam-u2f. Pro větší pohodlí budeme výstup utility zapisovat přímo do souboru u2f_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ýstupu u2f_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í jmenovat u2f_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.

  6. 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
    
  7. 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 soubor common-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žnosti authfile.

    • Pokud často zapomínáte vložit klíč, prompt možnost, aby pam_u2f vypsala Insert 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í, že pam_u2f vytiskne Please 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:

    img6

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í a sudo. Poznámka: common-auth je třeba upravit přidáním dalšího konfiguračního řádku na konec souboru.

  • If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the/etc/pam.d/gdm-password

  • Případně můžete pouze upravit soubor /etc/pam.d/sudo, pokud chcete při použití příkazu sudo 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ě jako required, 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říznak sufficient 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říznak optional se považuje za bezpečný pro účely testování.

Varování

  • Pokud je nastaveno required nebo requisite, 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 nebo requisite, 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říznaky required nebo requisite.