Prijava namizja in preverjanje pristnosti uporabnika Linuxa#

(Nitrokey FIDO2 - Linux)

Uvod#

Ta vodnik vas bo popeljal skozi konfiguracijo sistema Linux za uporabo univerzalnega drugega faktorja FIDO, tj. FIDO U2F z libpam-u2f in 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 konfiguriran po teh navodilih.

Navodila#

Metoda grafičnega vmesnika#

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

Img1
  1. V desni vrstici se pomaknite navzdol do Users

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

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

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

Img5

Metoda CLI#

  1. Izdelajte uporabnika varnostne kopije in mu podelite korenske pravice pivileges

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.

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

  • Lahko pa 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
  1. 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.

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

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

In dodajte naslednje vrstice:

#Nitrokey FIDO2 config
auth    sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue 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.

  • Če želite, da se vam prikaže poziv za dotik tipke Nitrokey, cue možnost bo pam_u2f natisnila Please touch the device. sporočilo.

  • 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 required ali requisite uporabite kontrolno zastavico sufficient.

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.

  • Če želite avtentikacijo FIDO U2F uporabljati samo za grafično prijavo v okolju Gnome, morda raje spremenite/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.