Prisijungimas prie darbalaukio ir „Linux“ naudotojo autentiškumo nustatymas¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Įvadas¶
This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and compatible Nitrokeys.
You will set up your Nitrokey as a second factor for authentication. This means you will need your usual login method (likely your password) and your Nitrokey to login.
Jei norite naudoti „Nitrokey“ kaip alternatyvų prisijungimo būdą (slaptažodį ARBA „Nitrokey“), žr. Alternatyvus autentifikavimo būdas po to, kai baigsite pagrindinį vadovą.
If you want to login to you computer using Nitrokey Pro 2, Nitrokey Storage 2 and Nitrokey Start you can visit the instructions available here.
Įspėjimas
Šis vadovas gali užblokuoti jūsų kompiuterį. Turėtumėte žinoti apie šią riziką, nes rekomenduojama toliau pateiktus nurodymus pirmiausia naudoti antriniame kompiuteryje arba atlikus visą atsarginę kopiją.
Sukonfigūravę PAM modulius galite prarasti prieigą prie savo duomenų.
Reikalavimai¶
Ubuntu 24.04 with Gnome Display Manager (GDM).
Instrukcijos¶
Sukurkite atsarginės kopijos naudotoją ir suteikite jam root teises
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Jei pageidaujate nustatyti U2F vienam naudotojui ir esate užblokuotas iš naudotojo seanso, vis tiek galėsite prisijungti naudodami
<backup_user>ir tęsti techninę priežiūrą.Įdiegimas
libpam-u2fOn Ubuntu 24.04 it is possible to download directly
libpam-u2ffrom the official repos$ sudo apt install libpam-u2f
Pastaba
Arba galite sukurti
libpam-u2fiš Git.Norėdami patikrinti, ar biblioteka tinkamai įdiegta, įveskite šią komandą:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Išvestis turėtų būti tokia:
/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
Generuoti U2F konfigūracijos failą
To generate the configuration file we will use the
pamu2fcfgutility. First plug your Nitrokey (if you did not already), and enter the following command:$ pamu2fcfg > ~/u2f_keys
Once you run the command above, you will need to touch the device while it flashes. Once done,
pamu2fcfgwill append its output theu2f_keysfile in the format:<username>:KeyHandle,PublicKey,flags
This will look something like the following:
nitrouser:fS6vQ9uWa0VizcczyZ/bvk5kcQJkIJOC/21/e7dXFe/fnONSL705EkeiUpZpL/3seAWL/qW4/mqb0/WtiZoP/NOLTRM4EEAg1ANLsfYgSzRd/AjsW3z8kJwgckbvwDUyB90ByR09XtBhuE41vMsEk6J+9CS0+ZuPSB0KXRG7z2yZpQLldjE/ijsdIdd8Ct2oXSiZ/zTb/t5kRafNJVkp=,Oo4U9XvIhI9r0WNnvoMwG5/pbgwYd4GMCYEinhWcsI2hKUebYj92JOxDsSa3zd2A9OB0ofXgB16FD2naev3YmLch==,es256,+presence
Atkreipkite dėmesį, kad ši išvestis nebuvo sukurta tiesiogiai
pamu2fcfgir joje nėra jokios slaptos informacijos. Ji skirta tik parodyti numatomą išvesties formatą ir ilgį.Patarimas
The file must be named
u2f_keysPirmiausia rekomenduojama instrukcijas išbandyti su vienu naudotoju. Kitų naudotojų konfigūracija bus pridėta 7 skyriuje.
Setting up a backup Nitrokey
This step is optional, however it is advised to have a second Nitrokey as backup in the case of loss, theft or destruction of your primary Nitrokey.
To set up a backup key, repeat the procedure above, and use
pamu2fcfg -nlike this:$ pamu2fcfg -n >> ~/u2f_keys
This will omit the
<username>field, and the output is appended to the line with your<username>, this will look something like this:<username>:Zx...mw,04...0a:xB...fw,es256,+presence:04...3f,es256,+presence
Securing the config file
Kad būtų užtikrintas didesnis saugumas, sugeneravę konfigūracijos failą, perkeliame sugeneruotą failą
~/u2f_keysį/etc/Nitrokey/ir pakeisime prieigos teises naudodami šias komandas:$ sudo mkdir /etc/Nitrokey $ sudo mv ~/u2f_keys /etc/Nitrokey/ $ sudo chmod 644 /etc/Nitrokey/u2f_keys
Pakeisti prijungiamą autentifikavimo modulį
PAMSukonfigūruokite PAM modulio failus adresu
/etc/pam.d/. Tai bandomasis etapas - 8 žingsnyje konfigūracija bus įdiegta, kai patvirtinsite, kad ji veikia.In this guide we will modify the
common-authfile as it handles the authentication settings which are common to all services, other options are described in PAM Modules. You can modify the file with the following command:$ sudo editor /etc/pam.d/common-auth
Add the following line at the bottom of the file:
#Nitrokey config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt
Patarimas
Bandymams naudojame pakankamą ir 8 žingsnyje pakeisime į privalomą.
Kadangi naudojame centrinį autentifikavimo atvaizdavimą, reikia nurodyti
pam_u2ffailo vietą, kurią reikia naudoti naudojantauthfileparinktį.If you often forget to insert the key,
promptoption makespam_u2fprintInsert your U2F device, then press ENTER.and give you a chance to insert the Nitrokey.If you would like to be prompted to touch the Nitrokey,
cueoption will makepam_u2fprintPlease touch the device.message. You can change the message in[cue_prompt=Please touch the device.].
Pastaba
Kodėl apatinė vieta? PAM apdoroja modulius iš viršaus į apačią. Jei U2F konfigūracija yra apačioje, pirmiausia tikrinamas slaptažodžio autentiškumas, todėl sukuriama antrojo veiksnio darbo eiga (slaptažodis + U2F).
Apie alternatyvias autentifikavimo parinktis (slaptažodis ARBA Nitrokey) ir išsamius paaiškinimus, kaip eilutės padėtis ir kontrolinės vėliavėlės veikia autentifikavimą, žr. Alternatyvus autentifikavimo metodas.
Pakeitę
common-auth, galime išsaugoti ir išeiti iš failo.You can test the configuration by typing
sudo lsin the terminal. After typing in your password you should be prompted with the messagePlease touch the device.and have a similar output on the terminal:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
You can also test your configuration by logging out of the user session and logging back. A similar screen should be displayed once you you unplug/replug yout Nitrokey and type your password:
Setting up multiple users
Patvirtinę, kad autentifikavimas naudojant „Nitrokey“ raktą veikia, galite nustatyti U2F konfigūracijos failą kitiems savo sistemos naudotojams.
Įspėjimas
Jei U2F konfigūracijos faile nenustatysite visų naudotojų ir toliau taikysite „Nitrokey“ autentifikavimą 8 žingsnyje, negalėsite prisijungti su jokiais nenustatytais naudotojais!
To configure u2f for multiple users,
pamu2fcfgtakes the-u <username>option, the output can be appended to theu2f_keysfile like this:$ sudo pamu2fcfg -u <username> >> /etc/Nitrokey/u2f_keys
Norėdami pridėti atsarginį „Nitrokey“ raktą prie šio naudotojo, prijunkite atsarginį „Nitrokey“ raktą ir atlikite tuos pačius veiksmus kaip ir pagrindinio naudotojo atveju:
$ sudo pamu2fcfg -n >> /etc/Nitrokey/u2f_keys
Po to pakartokite šį procesą visiems sistemos naudotojams.
Enforcing Nitrokey second factor authentication
Galbūt pastebėjote, kad autentiškumo nustatymas naudojant „Nitrokey“ raktą dar nebuvo įvestas. Patvirtinę, kad autentifikavimas naudojant „Nitrokey“ veikia, galime jį įvesti pakeisdami
sufficientvėliavą įrequired.Įspėjimas
Prieš atlikdami šį veiksmą įsitikinkite, kad turite:
Patikrinta, ar autentiškumo patvirtinimas naudojant „Nitrokey“ iš tiesų veikia, priešingu atveju galite prarasti prieigą prie kompiuterio.
Sukurkite atsarginę „Nitrokey“ kopiją. Priešingu atveju, jei prarasite arba sugadinsite „Nitrokey“ raktą, neteksite prieigos prie kompiuterio!
Elkitės atsargiai!
Tam reikia redaguoti
PAMkonfigūracijos failą:$ sudo editor /etc/pam.d/common-auth
Anksčiau pridėtoje eilutėje failo apačioje pakeiskite žodį
sufficientįrequired. Tai turėtų atrodyti taip:#Nitrokey config auth required pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt
After completing the setup, it is recommended to reboot your computer and unplug/replug the Nitrokey.
Alternative Authentication Method¶
Jei pageidaujate naudoti „Nitrokey“ kaip alternatyvą slaptažodžiui (slaptažodis ARBA „Nitrokey“), galite tai konfigūruoti:
Configuration Steps:
PAM konfigūracijos eilutę perkelkite į viršų ` /etc/pam.d/common-auth` (prieš kitus autentifikavimo modulius)
Išlaikykite
sufficientvaldymo vėliavėlę
Tai leidžia autentiškumą nustatyti naudojant tik vieną iš šių veiksnių. Atkreipkite dėmesį, kad tai užtikrina mažesnį saugumą nei antrojo veiksnio autentifikavimas.
Autentifikavimo režimų supratimas
Pagal linijos padėties ir kontrolinės vėliavėlės derinį nustatomas autentifikavimo režimas:
Position |
Control Flag |
Authentication Mode |
Use Case |
|---|---|---|---|
Apačioje (po pam_unix) |
|
Second factor (testing) |
Saugaus bandymo etapas |
Apačioje (po pam_unix) |
|
Antrasis veiksnys (priverstinis) |
Production security (main guide) |
Į viršų (prieš pam_unix) |
|
Alternative factor |
Convenience (password OR key) |
Kaip veikia PAM:
PAM apdoroja modulius nuosekliai iš viršaus į apačią. Kontrolinė vėliavėlė lemia, kaip sėkmė ar nesėkmė paveiks bendrą autentiškumo nustatymą:
sufficient: Sėkmė užbaigia autentifikavimą; nesėkmė ignoruojama, jei kiti moduliai sėkmingai veikiarequired: Sėkmė yra privaloma; nesėkmė sukelia bendrą autentifikavimo nesėkmę
Ką tai reiškia jums:
Alternatyvus autentiškumo patvirtinimas (viršutinis + pakankamas):
Galite prisijungti naudodami savo slaptažodį ARBA vien tik „Nitrokey“.
If authentication with the Nitrokey succeeds, no password is required
Jei Nitrokey autentifikavimas nepavyksta arba yra praleidžiamas, slaptažodis vis tiek veiks.
Tai patogiau, bet mažiau saugu nei antrojo veiksnio autentifikavimas.
Security implications:
Jūsų slaptažodį turintis užpuolikas gali prisijungti be jūsų Nitrokey
Užpuolikas, turintis fizinę prieigą prie jūsų Nitrokey, gali prisijungti be jūsų slaptažodžio.
Naudokite tik tada, jei patogumas yra svarbiau už maksimalų saugumą.
Išsamūs kontrolinių vėliavų ir jų reikšmių paaiškinimai pateikti Kontrolinės vėliavos.
PAM moduliai¶
Yra keli PAM modulių failai, kuriuos galima keisti pagal savo poreikius:
By modifying
/etc/pam.d/common-authfile, you will be able to use you Nitrokey for 2nd factor authentication for graphic login andsudo.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-passwordArba galite tiesiog pakeisti
/etc/pam.d/sudofailą, jei norite naudoti FIDO U2F, kai naudojatesudokomandą.
Valdymo vėliavos¶
Kontrolės vėliavėlė lemia, kaip PAM modulis elgsis, kai autentiškumo nustatymas pavyks arba nepavyks. 6 žingsnyje testavimui naudojome sufficient vėliavėlę, tada pakeitėme į required vėliavėlę vykdymo užtikrinimui.
Galimos šios valdymo vėliavos:
required: The module result must be successful for authentication to continue. This is the most critical flag and can lock you out of your computer if you do not have access to the Nitrokey.requisite: Panašiai kaiprequired, tačiau tuo atveju, kai konkretus modulis grąžina nesėkmę, valdymas tiesiogiai grąžinamas programai arba aukštesniajam PAM kaminui. Ši vėliava taip pat gali užblokuoti kompiuterį, jei neturite prieigos prie „Nitrokey“.sufficient: The module result is ignored if it fails. In case of success, control is directly returned to the application, or to the superior PAM stack. This means no other PAM modules will be executed. Thesufficientflag is considered safe for testing purposes.optional: The success or failure of this module is only important if it is the only module in the stack associated with this service+type. Theoptionalflag is considered safe to use for testing purposes.
Įspėjimas
If
requiredorrequisiteis set, the failure of U2F authentication will cause a failure of the overall authentication. Failure will occur when the configured Nitrokey is not plugged, lost or destroyed.Jei neteisingai sukonfigūravote PAM modulį ir naudojote
requiredarbarequisitevėliavėles, neteksite prieigos prie kompiuterio.Taip pat neteksite galimybės naudoti
sudo, jei nustatysite centrinį autentifikavimo atvaizdavimą. ir naudojoterequiredarba</x>`requisitevėliavėles.Taip pat galite prarasti galimybę prisijungti naudodami „Gnome“ ekrano tvarkyklę, jei yra įvestas prisijungimas naudojant lustinę kortelę ir naudojote
requiredarbarequisitevėliavėles. Daugiau informacijos rasite skyriuje Trikčių šalinimas.
Trikčių šalinimas¶
Problemos prisijungiant prie naudotojo paskyros naudojant GDM¶
Kai kuriais atvejais, pavyzdžiui, jei įdiegta opencs-pkcs11, „Gnome Display Manager“ (GDM) gali pagal numatytuosius nustatymus pradėti taikyti prisijungimo išmaniąja kortele funkciją, kai tik prijungiama bet kokia išmanioji kortelė (pvz., „Nitrokey“), net jei jokia išmanioji kortelė niekada nebuvo sukonfigūruota. Tai gali trukdyti prisijungti prie naudotojo paskyros naudojant u2f. Jei nustatėte sufficient kontrolės vėliavėlę, atjunkite visas išmaniąsias korteles ir prisijunkite naudodami savo slaptažodį. Norėdami išjungti išmaniųjų kortelių vykdymo užtikrinimą, vykdykite šią komandą:
$ sudo -u gdm env -u XDG_RUNTIME_DIR -u DISPLAY DCONF_PROFILE=gdm dbus-run-session gsettings set org.gnome.login-screen enable-smartcard-authentication false