Autentificare desktop și autentificare utilizator Linux

Introducere

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.

Dacă doriți să vă conectați la computer folosind Nitrokey Pro 2, Nitrokey Storage 2 și `Nitrokey Start <https://shop.nitrokey.com/shop/product/nk-sta-nitrokey-start-6><x>`__ puteți vizita instrucțiunile disponibile ` aici <../../pro/linux/login-with-pam.html>`_.

Cerințe

Instrucțiuni

Metoda GUI

  1. În colțul din stânga jos faceți clic pe Show Applications` și introduceți setările în bara de căutare după cum urmează:

    img1
  2. ** Derulează în jos în bara din dreapta până la** Users

    img2
  3. În colțul din stânga faceți clic pe Unlock` și vă va cere parola.

    img3
  4. Selectați Administrator` și introduceți numele de utilizator și parola aleasă de dvs.

    img4
  5. După ce ați terminat pasul 4, ar trebui să fiți gata.

    img5

Metoda CLI

  1. Creează un utilizator de rezervă și acordă-i privilegii de root

    Puteți face acest lucru utilizând aceste comenzi:

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

    În cazul în care preferați să configurați U2F pentru un singur utilizator și sunteți blocat în afara sesiunii de utilizator, veți putea totuși să vă conectați cu <backup_user> și să continuați cu întreținerea.

    Atenționare

    Următorul ghid vă poate bloca în mod potențial accesul la computer. Trebuie să fiți conștient de aceste riscuri, deoarece se recomandă să utilizați mai întâi instrucțiunile de mai jos pe un computer secundar sau după o copie de rezervă completă.

    Este posibil să pierdeți accesul la datele dvs. după configurarea modulelor PAM.

  2. Configurați rules` pentru a recunoaște Nitrokey FIDO2.

    Sub /etc/udev/rules.d` download 41-nitrokey.rules

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

    Și reporniți serviciul udev

    $ sudo systemctl restart udev
    
  3. Instalare libpam-u2f`

    Pe Ubuntu 20.04 este posibil să descărcați direct libpam-u2f` din depozitele oficiale

    $ sudo apt install libpam-u2f
    

    Notă

    Faceți clic pentru mai multe opțiuni

    • Alternativ, puteți construi libpam-u2f` din Git.

    • Pentru a verifica dacă biblioteca este instalată corect, introduceți următoarea comandă:

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

    Rezultatul ar trebui să fie ceva de genul următor:

    /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. Pregătiți directorul

    Creați `.config/Nitrokey/` în directorul dvs. personal

    $ mkdir ~/.config/Nitrokey
    

    Și conectați-vă Nitrokey FIDO2.

    Odată terminată pregătirea, putem începe să configurăm computerul pentru a utiliza Nitrokey FIDO2 pentru autentificarea cu al doilea factor la autentificare și sudo`.

  5. Generați fișierul de configurare U2F

    Pentru a genera fișierul de configurare vom folosi utilitarul pamu2fcfg care vine cu libpam-u2f. Pentru comoditate, vom scrie direct ieșirea utilitarului în fișierul u2f_keys în .config/Nitrokey<x>. Mai întâi conectați-vă Nitrokey FIDO2 (dacă nu ați făcut-o deja) și introduceți următoarea comandă:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    După ce executați comanda de mai sus, va trebui să atingeți tasta în timp ce aceasta clipește. Odată ce ați făcut-o, pamu2fcfg` își va adăuga la ieșire u2f_keys în următorul format:

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

    Rețineți, rezultatul va fi mult mai lung, dar părțile sensibile au fost eliminate aici. Pentru o mai bună securitate, și odată fișierul de configurare generat, vom muta directorul .config/Nitrokey sub directorul etc/ cu această comandă:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Sfat

    • Fișierul de sub .config/Nitrokey trebuie să se numească u2f_keys`

    • Se recomandă să testați mai întâi instrucțiunile cu un singur utilizator. În acest scop, comanda anterioară ia opțiunea -u, pentru a specifica un utilizator, ca în exemplul de mai jos:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Pentru configurarea utilizatorilor individuali, trebuie să indicați directorul de domiciliu în pasul următor sau să nu includeți opțiunea authfile în configurația PAM.

  6. **Nu, nu.

    Acest pas este opțional, însă se recomandă să aveți o Nitrokey de rezervă în caz de pierdere, furt sau distrugere a Nitrokey FIDO.

    Pentru a configura o cheie de rezervă, repetați procedura de mai sus și utilizați pamu2fcfg -n. În acest fel se va omite câmpul <username>`, iar rezultatul poate fi adăugat la linia cu <username>` astfel:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Modificați modulul de autentificare Pluggable PAM`

    Ultimul pas este configurarea fișierelor modulului PAM sub /etc/pam.d/`. În acest ghid vom modifica fișierul common-auth`, deoarece acesta gestionează setările de autentificare care sunt comune tuturor serviciilor, dar sunt posibile și alte opțiuni. Puteți modifica fișierul cu următoarea comandă:

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

    Și adăugați următoarele linii în partea de sus a fișierului:

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

    Sfat

    • Deoarece folosim Central Authentication Mapping, trebuie să spunem pam_u2f` locația fișierului care trebuie utilizat cu opțiunea authfile.

    • Dacă uitați adesea să introduceți cheia, prompt` opțiunea face ca pam_u2f să tipărească Insert your U2F device, then press ENTER. și să vă dea șansa de a introduce Nitrokey.

    • 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 se va asigura că vă puteți autentifica folosind numele de utilizator și parola, s-ar putea să doriți să eliminați acest lucru la un moment dat, odată ce configurația funcționează și nu mai doriți să vă conectați cu numele de utilizator și parola.

    După ce am modificat common-auth, putem salva și ieși din fișier.

    Puteți testa configurația tastând sudo ls în terminal. Ar trebui să vi se afișeze mesajul Please touch the device. și să aveți o ieșire similară pe terminal:

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

    De asemenea, puteți testa configurația prin deconectarea din sesiunea de utilizator și reconectarea. Un ecran similar ar trebui să fie afișat după ce vă deconectați/reconectați Nitrokey FIDO2 și introduceți parola:

    img6

Utilizare

După modificarea modulului PAM, veți putea testa imediat configurația, dar este recomandat să reporniți computerul și să deconectați/reconectați Nitrokey FIDO2.

După ce ați testat în mod corespunzător instrucțiunile din acest ghid (și ați configurat o copie de rezervă), se recomandă să utilizați fie steagul de control required, fie steagul de control requisite în loc de sufficient.

Stegulețele required și requisite asigură un control mai strict al accesului și vor face ca Nitrokey FIDO2 să fie necesar pentru conectarea și/sau utilizarea serviciului configurat.

Dacă aveți nevoie de mai multe informații despre Control Flags în linia de configurare PAM, puteți consulta ultima secțiune a acestui ghid pentru a înțelege diferența și implicațiile utilizării fiecăruia dintre ele.

Module PAM

Există mai multe fișiere de module PAM care pot fi modificate în funcție de nevoile dumneavoastră:

  • Prin modificarea fișierului /etc/pam.d/common-auth`, veți putea utiliza Nitrokey FIDO pentru autentificarea cu al doilea factor pentru autentificarea grafică și sudo. Notă: common-auth trebuie modificat prin adăugarea liniei de configurare suplimentare la sfârșitul fișierului.

  • 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

  • Alternativ, puteți modifica doar fișierul /etc/pam.d/sudo` dacă doriți să utilizați FIDO U2F atunci când folosiți comanda sudo.

Stegulețe de control

În pasul 7 am folosit stegulețul de control sufficient pentru a determina comportamentul modulului PAM atunci când Nitrokey este conectat sau nu. Cu toate acestea, este posibil să modificați acest comportament utilizând următoarele stegulețe de control:

  • required: Acesta este cel mai critic indicator. Rezultatul modulului trebuie să fie de succes pentru ca autentificarea să continue. Acest indicator vă poate bloca accesul la computer dacă nu aveți acces la Nitrokey.

  • requisite: Similar cu `required, însă, în cazul în care un anumit modul returnează un eșec, controlul este returnat direct aplicației sau stivei PAM superioare. Acest indicator vă poate bloca, de asemenea, în afara calculatorului dacă nu aveți acces la Nitrokey.

  • sufficient: Rezultatul modulului este ignorat în cazul în care nu reușește. Stegulețul `sufficient` considerat sigur în scopuri de testare.

  • optional: Succesul sau eșecul acestui modul este important doar dacă este singurul modul din stivă asociat cu acest serviciu+tip. Steagul optional` este considerat a fi sigur de utilizat în scopuri de testare.

Atenționare

  • Dacă required sau requisite este setat, eșecul autentificării U2F va cauza un eșec al autentificării generale. Eșecul va avea loc atunci când Nitrokey FIDO configurat nu este conectat, pierdut sau distrus.

  • Veți pierde accesul la computer dacă ați configurat greșit modulul PAM și ați folosit stegulețele required sau requisite.

  • De asemenea, veți pierde posibilitatea de a utiliza sudo` dacă configurați Maparea de autentificare centrală și ați folosit stegulețele required sau requisite`.