Prijava namizja in preverjanje pristnosti uporabnika Linuxa

Uvod

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.

Če se želite v računalnik prijaviti z Nitrokey Pro 2, Nitrokey Storage 2 in Nitrokey Start si lahko ogledate navodila, ki so na voljo tudi.

Zahteve

  • Ubuntu 20.04 z Gnome Display Manager.

  • Nitrokey FIDO2 konfigurirajte po teh navodilih.

Navodila

Metoda grafičnega vmesnika

  1. V spodnjem levem kotu kliknite Show Applications in v iskalno vrstico vnesite naslednje nastavitve:

    Img1
  2. V desni vrstici se pomaknite navzdol do Users

    Img2
  3. V levem kotu kliknite Unlock in to bo zahtevalo vaše geslo

    Img3
  4. Izberite Administrator in vnesite izbrano uporabniško ime in geslo

    Img4
  5. Ko končate 4. korak, morate biti pripravljeni

    Img5

Metoda CLI

  1. Izdelajte uporabnika varnostne kopije in mu dajte pravice korporacije root

    To lahko storite s temi ukazi:

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

    Če želite nastaviti U2F za posameznega uporabnika in ste zaklenjeni iz uporabniške seje, se lahko še vedno prijavite z <backup_user> in nadaljujete z vzdrževanjem.

    Opozorilo

    Naslednji vodnik vas lahko zaklene iz računalnika. Teh tveganj se morate zavedati, saj je priporočljivo, da spodnja navodila najprej uporabite na sekundarnem računalniku ali po popolni varnostni kopiji.

    Po konfiguraciji modulov PAM lahko izgubite dostop do podatkov.

  2. Nastavite rules za prepoznavanje naprave Nitrokey FIDO2.

    Pod /etc/udev/rules.d prenos 41-nitrokey.rules

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

    In ponovno zaženite udev storitev

    $ sudo systemctl restart udev
    
  3. Instalacija libpam-u2f

    V Ubuntuju 20.04 je mogoče prenesti neposredno libpam-u2f iz uradnih skladišč

    $ sudo apt install libpam-u2f
    

    Opomba

    Kliknite za več možnosti

    • Druga možnost je, da sestavite libpam-u2f iz Git.

    • Če želite preveriti, ali je knjižnica pravilno nameščena, vnesite naslednji ukaz:

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

    Rezultat mora biti podoben naslednjemu:

    /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. Priprava imenika

    Ustvarite .config/Nitrokey/ v domačem imeniku

    $ mkdir ~/.config/Nitrokey
    

    In priključite napravo Nitrokey FIDO2.

    Ko končamo s pripravo, lahko začnemo konfigurirati računalnik za uporabo Nitrokey FIDO2 za preverjanje pristnosti drugega dejavnika ob prijavi in sudo.

  5. Generiranje konfiguracijske datoteke U2F

    Za ustvarjanje konfiguracijske datoteke bomo uporabili pamu2fcfg pripomoček, ki je priložen libpam-u2f. Zaradi priročnosti bomo izhod pripomočka neposredno zapisali v datoteko u2f_keys pod .config/Nitrokey. Najprej priključite napravo Nitrokey FIDO2 (če je še niste) in vnesite naslednji ukaz:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Ko zaženete zgornji ukaz, se morate dotakniti tipke, medtem ko utripa. Ko to storite, bo pamu2fcfg dodal svoj izpis u2f_keys v naslednji obliki:

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

    Upoštevajte, da bo rezultat veliko daljši, vendar so bili občutljivi deli tukaj odstranjeni. Zaradi boljše varnosti in po generiranju konfiguracijske datoteke bomo imenik .config/Nitrokey s tem ukazom premaknili pod imenik etc/:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Nasvet

    • Datoteka pod .config/Nitrokey se mora imenovati u2f_keys

    • Priporočljivo je, da navodila najprej preizkusite z enim uporabnikom. V ta namen prejšnji ukaz uporablja možnost -u za določitev uporabnika, kot v spodnjem primeru:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Za konfiguracijo posameznega uporabnika morate v naslednjem koraku pokazati na domači imenik ali pa v konfiguracijo PAM ne vključite možnosti authfile.

  6. Zaščitna kopija

    Ta korak ni obvezen, vendar je priporočljivo imeti rezervni ključ Nitrokey za primer izgube, kraje ali uničenja ključa Nitrokey FIDO.

    Če želite nastaviti rezervni ključ, ponovite zgornji postopek in uporabite pamu2fcfg -n. Pri tem boste izpustili polje <username>, izhod pa lahko dodate vrstici z vašim <username> na naslednji način:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Modifikacija vtičnega modula za preverjanje pristnosti PAM

    Zadnji korak je konfiguriranje datotek modula PAM pod /etc/pam.d/. V tem vodniku bomo spremenili datoteko common-auth, saj obdeluje nastavitve avtentikacije, ki so skupne vsem storitvam, vendar so mogoče tudi druge možnosti. Datoteko lahko spremenite z naslednjim ukazom:

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

    Na vrh datoteke dodajte naslednje vrstice:

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

    Nasvet

    • Ker uporabljamo centralno kartiranje avtentikacije, moramo pam_u2f sporočiti lokacijo datoteke, ki jo želimo uporabiti z možnostjo authfile.

    • Če pogosto pozabite vstaviti ključ, prompt možnost pam_u2f izpiše Insert your U2F device, then press ENTER. in vam da možnost vstaviti 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 bo zagotovil, da se lahko še vedno prijavite z uporabniškim imenom in geslom, kar boste morda želeli odstraniti, ko bo nastavitev delovala in ne boste želeli rednih prijav z uporabniškim imenom in geslom.

    Ko smo spremenili common-auth, lahko shranimo in zaključimo datoteko.

    Konfiguracijo lahko preizkusite tako, da v terminal vnesete sudo ls. Prikazati se mora sporočilo Please touch the device. in podoben izpis na terminalu:

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

    Konfiguracijo lahko preizkusite tudi tako, da se odjavite iz uporabniške seje in se ponovno prijavite. Podoben zaslon bi se moral prikazati, ko odklopite/priključite napravo Nitrokey FIDO2 in vnesete geslo:

    Img6

Uporaba

Po spremembi modula PAM boste lahko takoj preizkusili konfiguracijo, vendar je priporočljivo, da znova zaženete računalnik in odklopite/vključite napravo Nitrokey FIDO2.

Ko ste pravilno preizkusili navodila v tem priročniku (in pripravili varnostno kopijo), je priporočljivo, da namesto kontrolne oznake zadostno uporabite kontrolno oznako zahtevno ali pogojno.

Zastavi required in requisite omogočata strožji nadzor dostopa in za prijavo in/ali uporabo konfigurirane storitve je potreben Nitrokey FIDO2.

Če potrebujete več informacij o kontrolnih zastavicah v konfiguracijski vrstici PAM, si lahko ogledate zadnji razdelek tega priročnika, da boste razumeli razliko in posledice uporabe vsake od njih.

Moduli PAM

Obstaja več datotek z moduli PAM, ki jih lahko spremenite glede na svoje potrebe:

  • S spremembo datoteke /etc/pam.d/common-auth boste lahko uporabljali Nitrokey FIDO za preverjanje pristnosti drugega faktorja za grafično prijavo in sudo. Opomba: common-auth je treba spremeniti z dodajanjem dodatne konfiguracijske vrstice na koncu datoteke.

  • 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

  • Če želite pri uporabi ukaza /etc/pam.d/sudo uporabiti FIDO U2F, lahko spremenite datoteko sudo.

Kontrolne oznake

V koraku 7 smo uporabili kontrolno zastavico sufficient za določitev obnašanja modula PAM, ko je ključ Nitrokey priključen ali ne. Vendar je to obnašanje mogoče spremeniti z uporabo naslednjih kontrolnih zastavic:

  • required: To je najbolj kritična zastavica. Rezultat modula mora biti uspešen, da se avtentikacija nadaljuje. Ta zastavica vas lahko zaklene iz računalnika, če nimate dostopa do ključa Nitrokey.

  • requisite: Podobno kot pri required, vendar se v primeru, ko določen modul vrne neuspeh, nadzor neposredno vrne aplikaciji ali nadrejenemu skladu PAM. Ta zastavica vas lahko tudi zaklene iz računalnika, če nimate dostopa do ključa Nitrokey.

  • sufficient: Rezultat modula se ne upošteva, če je neuspešen. Oznaka sufficient velja za varno za namene testiranja.

  • optional: Uspeh ali neuspeh tega modula je pomemben le, če je to edini modul v nizu, povezan s tem tipom storitve+. Oznaka optional velja za varno za uporabo v namene testiranja.

Opozorilo

  • Če je nastavljena vrednost required ali requisite, bo neuspešno preverjanje pristnosti U2F povzročilo neuspešno celotno preverjanje pristnosti. Do neuspeha bo prišlo, če konfiguriranega ključa Nitrokey FIDO ne priključite, ga izgubite ali uničite.

  • Če ste napačno konfigurirali modul PAM in uporabili oznake required ali requisite, boste izgubili dostop do računalnika.

  • Prav tako boste izgubili možnost uporabe sudo, če nastavite centralno kartiranje avtentikacije. in uporabili oznake required ali requisite.