Prihlasovanie do počítača a overovanie používateľov 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.

Ak sa chcete prihlásiť do počítača pomocou Nitrokey Pro 2, Nitrokey Storage 2 a Nitrokey Štart môžete navštíviť návod dostupný tu.

Požiadavky

  • Ubuntu 20.04 so správcom zobrazenia Gnome.

  • Nitrokey FIDO2 nakonfigurovaný podľa týchto pokynov.

Pokyny

Metóda grafického rozhrania

  1. V ľavom dolnom rohu kliknite na Show Applications a do vyhľadávacieho riadku zadajte nasledujúce nastavenia:

    img1
  2. Prejdite v pravom paneli nadol na Users

    Obrázok2
  3. V ľavom rohu kliknite na Unlock a zobrazí sa výzva na zadanie hesla

    Obrázok3
  4. Vyberte Administrator a zadajte zvolené používateľské meno a heslo

    Obrázok4
  5. Po dokončení kroku 4 by ste mali byť hotoví

    Obrázok5

Metóda CLI

  1. Vytvorte záložného používateľa a dajte mu práva root

    Môžete tak urobiť pomocou týchto príkazov:

    $ sudo adduser <backup_user>
    $ sudo usermod -aG sudo <backup_user>
    

    V prípade, že uprednostňujete nastavenie U2F pre jedného používateľa a ste uzamknutí v relácii používateľa, stále sa budete môcť prihlásiť pomocou <backup_user> a pokračovať v údržbe.

    Varovanie

    Nasledujúci návod vás môže potenciálne zablokovať v počítači. Mali by ste si byť vedomí týchto rizík, pretože sa odporúča použiť nižšie uvedené pokyny najprv na sekundárnom počítači alebo po úplnom zálohovaní.

    Po konfigurácii modulov PAM môžete stratiť prístup k svojim údajom.

  2. Nastavenie rules na rozpoznanie zariadenia Nitrokey FIDO2

    Pod /etc/udev/rules.d stiahnuť 41-nitrokey.rules

    $ cd /etc/udev/rules.d/
    $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
    

    A reštartujte udev službu

    $ sudo systemctl restart udev
    
  3. Inštalácia libpam-u2f

    V Ubuntu 20.04 je možné stiahnuť priamo libpam-u2f z oficiálnych repozitárov

    $ sudo apt install libpam-u2f
    

    Poznámka

    Kliknite pre viac možností

    • Prípadne môžete zostaviť libpam-u2f z Git.

    • Ak chcete overiť, či je knižnica správne nainštalovaná, zadajte nasledujúci príkaz:

    $ file /lib/x86_64-linux-gnu/security/pam_u2f.so
    

    Výstup by mal byť podobný nasledujúcemu:

    /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. Príprava adresára

    Vytvorte .config/Nitrokey/ v domovskom adresári

    $ mkdir ~/.config/Nitrokey
    

    A pripojte zariadenie Nitrokey FIDO2.

    Po dokončení prípravy môžeme začať konfigurovať počítač na používanie Nitrokey FIDO2 na overenie 2. faktora pri prihlásení a sudo.

  5. Generovanie konfiguračného súboru U2F

    Na vygenerovanie konfiguračného súboru použijeme pamu2fcfg nástroj, ktorý sa dodáva s libpam-u2f. Pre pohodlie budeme výstup utility zapisovať priamo do u2f_keys súboru pod .config/Nitrokey. Najprv pripojte svoj Nitrokey FIDO2 (ak ste tak ešte neurobili) a zadajte nasledujúci príkaz:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Po spustení vyššie uvedeného príkazu sa musíte dotknúť tlačidla, kým bliká. Po vykonaní príkazu pamu2fcfg pripojí svoj výstup u2f_keys v nasledujúcom formáte:

    <username>:Zx...mw,04...0a
    

    Pozor, výstup bude oveľa dlhší, ale citlivé časti tu boli odstránené. Pre lepšiu bezpečnosť a po vygenerovaní konfiguračného súboru presunieme týmto príkazom adresár .config/Nitrokey pod adresár etc/:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Tip

    • Súbor pod .config/Nitrokey musí mať názov u2f_keys

    • Odporúčame najprv otestovať pokyny s jedným používateľom. Na tento účel sa v predchádzajúcom príkaze použije možnosť -u, ktorou sa určí používateľ, ako v nasledujúcom príklade:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • V prípade konfigurácie jednotlivých používateľov by ste mali v ďalšom kroku poukázať na domovský adresár, alebo do konfigurácie PAM nezahrnúť možnosť authfile.

  6. Zálohovanie

    Tento krok nie je povinný, odporúča sa však mať záložný kľúč Nitrokey pre prípad straty, krádeže alebo zničenia vášho kľúča Nitrokey FIDO.

    Ak chcete nastaviť záložný kľúč, zopakujte vyššie uvedený postup a použite pamu2fcfg -n. Tým sa vynechá pole <username> a výstup môžete pripojiť k riadku s vaším <username> takto:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Modifikácia zásuvného modulu overovania PAM

    Posledným krokom je konfigurácia súborov modulu PAM v časti /etc/pam.d/. V tomto návode budeme upravovať súbor common-auth, pretože spracúva nastavenia overovania, ktoré sú spoločné pre všetky služby, ale možné sú aj iné možnosti. Súbor môžete upraviť pomocou nasledujúceho príkazu:

    $ cd /etc/pam.d
    $ sudo $editor common-auth
    

    A na začiatok súboru pridajte nasledujúce riadky:

    #Nitrokey FIDO2 config
    auth    sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
    

    Tip

    • Keďže používame centrálne autentifikačné mapovanie, musíme povedať pam_u2f umiestnenie súboru, ktorý sa má použiť pomocou možnosti authfile.

    • Ak často zabúdate vložiť kľúč, prompt možnosť, aby pam_u2f vypísala Insert your U2F device, then press ENTER. a dala vám možnosť vložiť kľúč Nitro.

    • If you would like to be prompted to touch the Nitrokey, cue option will make pam_u2f print Please touch the device. message. You can change the message in [cue_prompt=Please touch the device.].

    • nouserok zabezpečí, že sa stále môžete prihlásiť pomocou používateľského mena a hesla, možno ho budete chcieť odstrániť v určitom okamihu, keď bude nastavenie fungovať a nebudete chcieť pravidelné prihlasovanie pomocou používateľského mena a hesla.

    Po úprave common-auth môžeme súbor uložiť a ukončiť.

    Konfiguráciu môžete otestovať zadaním sudo ls v termináli. Mala by sa vám zobraziť správa Please touch the device. a na termináli by ste mali mať podobný výstup:

    nitrouser@nitrouser:~$ sudo ls
    [sudo] password for nitrouser:  Please touch the device.
    

    Konfiguráciu môžete otestovať aj tak, že sa odhlásite z relácie používateľa a prihlásite sa späť. Podobná obrazovka by sa mala zobraziť po odpojení/zapojení zariadenia Nitrokey FIDO2 a zadaní hesla:

    Obrázok6

Používanie

Po úprave modulu PAM budete môcť hneď otestovať konfiguráciu, ale odporúča sa reštartovať počítač a odpojiť/zapojiť Nitrokey FIDO2.

Po správnom otestovaní pokynov v tejto príručke (a nastavení zálohovania), odporúčame použiť buď required alebo requisite kontrolný príznak namiesto sufficient.

Príznaky required a requisite zabezpečujú prísnejšiu kontrolu prístupu a na prihlásenie a/alebo používanie nakonfigurovanej služby je potrebné použiť Nitrokey FIDO2.

Ak potrebujete viac informácií o riadiacich príznakoch v konfiguračnom riadku PAM, môžete si pozrieť poslednú časť tejto príručky, aby ste pochopili rozdiel a dôsledky používania jednotlivých príznakov.

Moduly PAM

Existuje niekoľko súborov modulov PAM, ktoré môžete upraviť podľa svojich potrieb:

  • Úpravou /etc/pam.d/common-auth súboru budete môcť používať Nitrokey FIDO pre 2. faktor autentifikácie pre grafické prihlásenie a sudo. Poznámka: common-auth je potrebné upraviť pridaním dodatočného konfiguračného riadku na koniec súboru.

  • 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

  • Prípadne môžete len upraviť súbor /etc/pam.d/sudo, ak chcete používať FIDO U2F pri použití príkazu sudo.

Kontrolné príznaky

V kroku 7 sme použili sufficient kontrolný príznak na určenie správania modulu PAM, keď je alebo nie je zapojený kľúč Nitrokey. Toto správanie je však možné zmeniť pomocou nasledujúcich riadiacich príznakov:

  • required: Toto je najkritickejší príznak. Výsledok modulu musí byť úspešný, aby overovanie mohlo pokračovať. Tento príznak môže zablokovať váš počítač, ak nemáte prístup ku kľúču Nitrokey.

  • requisite: Podobne ako required, avšak v prípade, že konkrétny modul vráti chybu, riadenie sa vráti priamo aplikácii alebo nadradenému zásobníku PAM. Tento príznak vás tiež môže zablokovať v počítači, ak nemáte prístup ku kľúču Nitrokey.

  • sufficient: Výsledok modulu sa v prípade neúspechu ignoruje. Príznak sufficient sa považuje za bezpečný na účely testovania.

  • optional: Úspech alebo zlyhanie tohto modulu je dôležité len vtedy, ak je to jediný modul v zásobníku spojený s týmto typom služby+. Príznak optional sa považuje za bezpečný na použitie na účely testovania.

Varovanie

  • Ak je nastavené required alebo requisite, zlyhanie overovania U2F spôsobí zlyhanie celkového overovania. K zlyhaniu dôjde, ak nakonfigurovaný kľúč Nitrokey FIDO nie je zapojený, stratí sa alebo sa zničí.

  • Prístup k počítaču stratíte, ak ste nesprávne nakonfigurovali modul PAM a použili príznaky required alebo requisite.

  • Ak nastavíte centrálne mapovanie overovania, stratíte aj možnosť používať sudo a použili príznaky required alebo requisite.