Töölaua sisselogimine ja Linuxi kasutaja autentimine¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Sissejuhatus¶
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.
Kui soovite kasutada alternatiivse sisselogimismeetodina oma Nitrokey’t (parool VÕI Nitrokey), vaadake pärast põhijuhendi läbimist Alternatiivne autentimismeetod.
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.
Hoiatus
Järgnev juhend võib teid potentsiaalselt arvutist välja lukustada. Te peaksite olema teadlik nendest riskidest, sest allpool toodud juhiseid on soovitatav kasutada esmalt teises arvutis või pärast täielikku varundamist.
Pärast PAM-moodulite konfigureerimist võite kaotada juurdepääsu oma andmetele.
Nõuded¶
Ubuntu 24.04 with Gnome Display Manager (GDM).
Juhised¶
Looge varukoopia kasutaja ja anna talle root-õigused
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Juhul, kui eelistate U2F-i seadistada ühe kasutaja jaoks ja olete oma kasutajasessioonist välja lukustatud, saaksite ikkagi sisse logida
<backup_user>ja jätkata hooldustöödega.Install
libpam-u2fOn Ubuntu 24.04 it is possible to download directly
libpam-u2ffrom the official repos$ sudo apt install libpam-u2f
Märkus
Alternatiivina võite ehitada
libpam-u2falates Git.Et kontrollida, kas raamatukogu on korralikult paigaldatud, sisestage järgmine käsk:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Väljund peaks olema umbes järgmine:
/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
U2F konfiguratsioonifaili genereerimine
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
Pange tähele, et seda väljundit ei genereerinud otseselt
pamu2fcfgja see ei sisalda tundlikku teavet. See on mõeldud üksnes selleks, et näidata väljundi eeldatavat formaati ja pikkust.Nõuanne
The file must be named
u2f_keysSoovitatav on esmalt katsetada juhiseid ühe kasutajaga. Muude kasutajate konfiguratsioon lisatakse punktis 7.
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
Parema turvalisuse tagamiseks liigutame pärast config-faili genereerimist genereeritud faili
~/u2f_keysaadressile/etc/Nitrokey/ja muudame juurdepääsuõigusi nende käskude abil:$ sudo mkdir /etc/Nitrokey $ sudo mv ~/u2f_keys /etc/Nitrokey/ $ sudo chmod 644 /etc/Nitrokey/u2f_keys
Muuda ühendatavat autentimismoodulit
PAMKonfigureerige PAM-moodulifailid aadressil
/etc/pam.d/. See on testimisfaas - samm 8 jõustab konfiguratsiooni, kui te kinnitate, et see töötab.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
Nõuanne
Me kasutame testimiseks piisavat ja muudame selle sammus 8 nõutavaks.
Kuna me kasutame keskse autentimise kaardistamist, peame teatama
pam_u2ffaili asukoha, mida kasutadaauthfilevalikuga.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.].
Märkus
Miks põhja paigutamine? PAM töötleb mooduleid ülalt alla. U2F-konfiguratsiooni paigutamine allapoole tagab, et parooli autentimist kontrollitakse esimesena, luues teise faktori töövoo (parool + U2F).
Alternatiivsed autentimisvõimalused (parool VÕI Nitrokey) ja üksikasjalikud selgitused selle kohta, kuidas rea asukoht ja kontrolllippude kasutamine mõjutavad autentimist, leiate aadressilt Alternatiivne autentimismeetod.
Kui oleme muutnud
common-auth, saame faili salvestada ja sellest väljuda.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
Pärast seda, kui olete kinnitanud, et autentimine Nitrokey abil toimis, saate seadistada U2F-konfigufaili teiste kasutajate jaoks oma süsteemis.
Hoiatus
Kui te ei määra kõiki kasutajaid U2F konfiguratsioonifailis ja jätkate Nitrokey autentimise jõustamist sammus 8, ei saa te ühegi seadistamata kasutajaga sisse logida!
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
Et lisada sellele kasutajale Nitrokey varukoopia, ühendage varukoopia Nitrokey ja tehke sama, mida tegite esmase kasutaja puhul:
$ sudo pamu2fcfg -n >> /etc/Nitrokey/u2f_keys
Pärast seda korrake seda protsessi kõigi teie süsteemi kasutajate jaoks.
Enforcing Nitrokey second factor authentication
Võib-olla olete märganud, et Nitrokey’ga autentimist ei ole veel jõustatud. Pärast kinnitust, et autentimine Nitrokey abil toimib, saame seda jõustada, muutes
sufficientlipukeserequired.Hoiatus
Enne selle sammuga jätkamist veenduge, et teil on:
Testitud, et autentimine Nitrokey’ga tõepoolest toimib, vastasel juhul võite kaotada juurdepääsu oma arvutile.
Seadistage Nitrokey varukoopia. Vastasel juhul, kui kaotate või rikute oma Nitrokey, kaotate juurdepääsu oma arvutile!
Tegutsege ettevaatlikult!
Selleks tuleb muuta
PAMkonfiguratsioonifaili:$ sudo editor /etc/pam.d/common-auth
Muutke varem lisatud reas faili lõpus sõna
sufficientsõnaksrequired. See peaks välja nägema selline:#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¶
Kui eelistate kasutada oma Nitrokey’t alternatiivina oma paroolile (parool VÕI Nitrokey), saate selle asemel seadistada selle:
Configuration Steps:
Viige PAMi konfiguratsioonirea ülemisse ossa aadressil
/etc/pam.d/common-auth(enne teisi auth-mooduleid).Hoidke
sufficientkontrolllippus.
See võimaldab autentimist ainult kummagi teguri abil. Pange tähele, et see pakub vähem turvalisust kui teise faktori autentimine.
Autentimisviiside mõistmine
Rida positsiooni ja kontroll-lippude kombinatsioon määrab teie autentimisrežiimi:
Position |
Control Flag |
Authentication Mode |
Use Case |
|---|---|---|---|
Alumine osa (pärast pam_unix) |
|
Second factor (testing) |
Ohutu testimise etapp |
Alumine osa (pärast pam_unix) |
|
Teine tegur (sunnitud) |
Production security (main guide) |
Top (enne pam_unix) |
|
Alternative factor |
Convenience (password OR key) |
Kuidas PAM töötab:
PAM töötleb mooduleid järjestikku ülevalt alla. Kontrolllipp määrab, kuidas õnnestumine või ebaõnnestumine mõjutab üldist autentimist:
„sufficient“: Edu lõpetab autentimise; ebaõnnestumist ignoreeritakse, kui teised moodulid on edukad.
„required“: Edu on kohustuslik; ebaõnnestumine põhjustab üldise autentimise ebaõnnestumise.
Mida see teie jaoks tähendab:
Alternatiivne autentimine (ülemine + piisav):
Saate sisse logida oma parooliga VÕI oma Nitrokey üksi
If authentication with the Nitrokey succeeds, no password is required
Kui Nitrokey autentimine ebaõnnestub või jäetakse vahele, töötab salasõna ikkagi
See on mugavam, kuid vähem turvaline kui teise faktori autentimine.
Security implications:
Ründaja saab teie parooliga sisse logida ilma teie Nitrokey-ta.
Ründaja, kellel on füüsiline juurdepääs teie Nitrokey’le, saab sisse logida ilma teie paroolita.
Kasutage seda ainult siis, kui mugavus on olulisem kui maksimaalne turvalisus.
Kontrollimislippude ja nende mõju üksikasjalik selgitus on esitatud aadressil Kontrolllippude.
PAM-moodulid¶
On olemas mitu PAM-moodulifaili, mida saab muuta vastavalt oma vajadustele:
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-passwordAlternatiivina võite lihtsalt muuta faili
/etc/pam.d/sudo, kui soovite kasutada FIDO U2F-i, kui kasutate käskusudo.
Kontrollmärgid¶
Kontrolllipp määrab, kuidas PAM-moodul käitub, kui autentimine õnnestub või ebaõnnestub. Sammus 6 kasutasime testimiseks sufficient lipu, seejärel muutsime selle jõustamiseks required lipuks.
Saadaval on järgmised juhtimispunktid:
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<x>: Sarnaseltrequiredsiiski juhul, kui konkreetne moodul tagastab ebaõnnestumise, tagastatakse kontroll otse rakendusele või ülemale PAM-korstnale. See lipp võib teid ka arvutist välja lukustada, kui teil ei ole juurdepääsu Nitrokey’le.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.
Hoiatus
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.Te kaotate juurdepääsu oma arvutile, kui olete PAM-moodulit valesti konfigureerinud ja kasutasite
requiredvõirequisitelipukesi.Samuti kaotate võimaluse kasutada
sudo, kui seadistate keskse autentimise kaardistamise. ja kasutasiterequiredvõirequisitelipud.Samuti võite kaotada võimaluse Gnome Display manager’i abil sisse logida, kui nutikaardiga sisselogimine on jõustatud ja te kasutasite lipukesi
requiredvõirequisite. Lisainfo saamiseks vaadake veaotsingut.
Veaotsing¶
Probleemid kasutajakontole sisselogimisel GDM-i abil¶
Mõnel juhul, näiteks kui teil on installitud opencs-pkcs11, võib Gnome Display Manager (GDM) vaikimisi nõuda nutikaardiga sisselogimist kohe, kui mõni nutikaart (nagu teie Nitrokey) on ühendatud, isegi kui ühtegi nutikaarti pole kunagi konfigureeritud. See võib takistada sisselogimist oma kasutajakontole, kasutades u2f. Kui olete seadnud sufficient kontrolllipp, ühendage kõik kiipkaardid lahti ja logige sisse oma parooliga. Nutikaardi jõustamise väljalülitamiseks käivitage järgmine käsk:
$ 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