Työpöydän kirjautuminen ja Linux-käyttäjän todennus¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Johdanto¶
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.
Jos haluat käyttää Nitrokeyta vaihtoehtoisena kirjautumismenetelmänä (salasana TAI Nitrokey), katso Vaihtoehtoinen todennusmenetelmä pääoppaan suorittamisen jälkeen.
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.
Varoitus
Seuraava opas voi mahdollisesti lukita sinut ulos tietokoneesta. Sinun on syytä olla tietoinen näistä riskeistä, sillä on suositeltavaa käyttää alla olevia ohjeita ensin toissijaisella tietokoneella tai täydellisen varmuuskopioinnin jälkeen.
Saatat menettää pääsyn tietoihin, kun olet määrittänyt PAM-moduulit.
Vaatimukset¶
Ubuntu 24.04 with Gnome Display Manager (GDM).
Ohjeet¶
Luo varmuuskopiointikäyttäjä ja anna sille pääkäyttäjän oikeudet.
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Jos haluat asentaa U2F:n yhdelle käyttäjälle ja olet lukittu ulos käyttäjäistunnostasi, voit silti kirjautua sisään
<backup_user>ja jatkaa ylläpitoa.Asennus
libpam-u2f`On Ubuntu 24.04 it is possible to download directly
libpam-u2ffrom the official repos$ sudo apt install libpam-u2f
Muista
Vaihtoehtoisesti voit rakentaa
libpam-u2f:stä Git.Voit tarkistaa, että kirjasto on asennettu oikein, antamalla seuraavan komennon:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Tuloksen pitäisi olla jotakuinkin seuraavanlainen:
/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
Luo U2F-konfigurointitiedosto
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
Huomaa, että tätä tulostetta ei tuotettu suoraan
pamu2fcfgeikä se sisällä arkaluonteisia tietoja. Sen tarkoituksena on ainoastaan näyttää tulosteen odotettu muoto ja pituus.Vihje
The file must be named
u2f_keysOn suositeltavaa testata ohjeita ensin yhdellä käyttäjällä. Muiden käyttäjien konfigurointi lisätään kohdassa 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
Paremman turvallisuuden vuoksi siirrämme luodun tiedoston
~/u2f_keysosoitteeseen/etc/Nitrokey/ja muutamme käyttöoikeudet näillä komennoilla:$ sudo mkdir /etc/Nitrokey $ sudo mv ~/u2f_keys /etc/Nitrokey/ $ sudo chmod 644 /etc/Nitrokey/u2f_keys
Muokkaa liitettävissä olevaa todennusmoduulia
PAMMääritä PAM-moduulitiedostot osoitteessa
/etc/pam.d/. Tämä on testausvaihe - vaiheessa 8 konfiguraatio otetaan käyttöön, kun olet varmistanut, että se toimii.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
Vihje
Käytämme testaukseen riittävää, ja vaihdamme sen vaadittavaksi vaiheessa 8.
Koska käytämme Central Authentication Mappingia, meidän on ilmoitettava
pam_u2f-tiedoston sijainti, jota käytetäänauthfile-vaihtoehdon avulla.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.].
Muista
Miksi alhaalle sijoittaminen? PAM käsittelee moduulit ylhäältä alaspäin. U2F-konfiguraation sijoittaminen alareunaan varmistaa, että salasanan todennus tarkistetaan ensin, mikä luo toisen tekijän työnkulun (salasana + U2F).
Vaihtoehtoiset todennusvaihtoehdot (salasana TAI Nitrokey) ja yksityiskohtaiset selitykset siitä, miten rivin sijainti ja ohjausliput vaikuttavat todennukseen, löytyvät osoitteesta Vaihtoehtoinen todennusmenetelmä.
Kun olemme muuttaneet
common-auth, voimme tallentaa ja poistua tiedostosta.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
Kun olet varmistanut, että todennus Nitrokey-avaimella toimi, voit määrittää U2F-määritystiedoston järjestelmän muille käyttäjille.
Varoitus
Jos et määritä kaikkia käyttäjiä U2F-määritystiedostossa ja jatkat Nitrokey-todennuksen käyttöönottoa vaiheessa 8, et voi kirjautua sisään millään määrittämättömällä käyttäjällä!
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
Jos haluat lisätä tälle käyttäjälle varmuuskopio Nitrokey-avaimen, liitä varmuuskopio Nitrokey-avaimesi ja toimi samalla tavalla kuin pääkäyttäjän kohdalla:
$ sudo pamu2fcfg -n >> /etc/Nitrokey/u2f_keys
Toista tämän jälkeen tämä prosessi kaikille järjestelmän käyttäjille.
Enforcing Nitrokey second factor authentication
Olet ehkä huomannut, että Nitrokey-tunnistautumista ei ole vielä pakotettu. Kun olemme varmistaneet, että tunnistautuminen Nitrokey:n avulla toimii, voimme ottaa sen käyttöön muuttamalla
sufficient-lippulauseen muotoonrequired.Varoitus
Ennen kuin jatkat tätä vaihetta, varmista, että sinulla on:
Testasin, että todennus Nitrokeyllä todellakin toimii, muuten voit menettää pääsyn tietokoneeseen.
Määritä Nitrokey-varmuuskopio. Jos muuten menetät tai rikot Nitrokey-avaimesi, menetät pääsyn tietokoneeseesi!
Toimi varovasti!
Tätä varten sinun on muokattava
PAM-määritystiedostoa:$ sudo editor /etc/pam.d/common-auth
Vaihda aiemmin lisäämässäsi rivissä tiedoston alaosassa sana
sufficientsanaksirequired. Sen pitäisi näyttää tältä:#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¶
Jos haluat käyttää Nitrokeyta salasanan vaihtoehtona (salasana TAI Nitrokey), voit määrittää sen sijaan tämän:
Configuration Steps:
Siirrä PAM-konfiguraatiorivi alkuun ` /etc/pam.d/common-auth` (ennen muita auth-moduuleja).
Säilytä
sufficient-valvontalippu.
Tämä mahdollistaa todennuksen pelkästään jommallakummalla tekijällä. Huomaa, että tämä tarjoaa vähemmän turvallisuutta kuin toisen tekijän todennus.
Tunnistamistapojen ymmärtäminen
Rivin sijainnin ja ohjauslipun yhdistelmä määrittää todennustilan:
Position |
Control Flag |
Authentication Mode |
Use Case |
|---|---|---|---|
Bottom (pam_unixin jälkeen) |
|
Second factor (testing) |
Turvallinen testausvaihe |
Bottom (pam_unixin jälkeen) |
|
Toinen tekijä (pakotettu) |
Production security (main guide) |
Top (ennen pam_unix) |
|
Alternative factor |
Convenience (password OR key) |
Miten PAM toimii:
PAM käsittelee moduulit peräkkäin ylhäältä alaspäin. Ohjauslippu määrittää, miten onnistuminen tai epäonnistuminen vaikuttaa kokonaistodennukseen:
sufficient: Onnistuminen päättää todennuksen; epäonnistuminen jätetään huomiotta, jos muut moduulit onnistuvat.required: Onnistuminen on pakollista; epäonnistuminen aiheuttaa yleisen todennuksen epäonnistumisen.
Mitä tämä tarkoittaa sinulle:
Vaihtoehtoinen todentaminen (ylin + riittävä):
Voit kirjautua sisään salasanallasi TAI pelkällä Nitrokey-avaimellasi.
If authentication with the Nitrokey succeeds, no password is required
Jos Nitrokey-todennus epäonnistuu tai ohitetaan, salasana toimii silti.
Tämä on kätevämpi mutta vähemmän turvallinen kuin toisen tekijän todennus.
Security implications:
Hyökkääjä, jolla on salasanasi, voi kirjautua sisään ilman Nitrokey-avainta.
Hyökkääjä, jolla on fyysinen pääsy Nitrokey-avaimeesi, voi kirjautua sisään ilman salasanaasi.
Käytä tätä vain, jos mukavuus on tärkeämpää kuin maksimaalinen turvallisuus.
Yksityiskohtaiset selitykset ohjauslippujen ja niiden vaikutusten osalta on osoitteessa Control Flags.
PAM-moduulit¶
On olemassa useita PAM-moduulitiedostoja, joita voidaan muokata tarpeidesi mukaan:
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-passwordVaihtoehtoisesti voit vain muuttaa tiedostoa
/etc/pam.d/sudo, jos haluat käyttää FIDO U2F:ää käytettäessä komentoasudo.
Ohjausliput¶
Ohjauslippu määrittää, miten PAM-moduuli käyttäytyy, kun todennus onnistuu tai epäonnistuu. Vaiheessa 6 käytimme sufficient -lippua testaamiseen ja vaihdoimme sitten required -lippuun valvontaa varten.
Käytettävissä olevat ohjausliput ovat:
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: Samanlainen kuinrequiredkuitenkin siinä tapauksessa, että tietty moduuli palauttaa epäonnistumisen, ohjaus palautetaan suoraan sovellukselle tai ylemmälle PAM-pinolle. Tämä lippu voi myös lukita sinut ulos tietokoneesta, jos sinulla ei ole pääsyä Nitrokey-avaimeen.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.
Varoitus
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.Menetät pääsyn tietokoneeseesi, jos olet konfiguroinut PAM-moduulin väärin ja käyttänyt
requiredtairequisite-lippua.Menetät myös mahdollisuuden käyttää
sudo, jos otat käyttöön keskitetyn todennuksen kartoituksen. ja käytitrequiredtairequisite-lippuja.Saatat myös menettää mahdollisuuden kirjautua sisään Gnome Display managerin avulla, jos älykorttikirjautuminen on käytössä ja olet käyttänyt
requiredtairequisite-lippua. Katso lisätietoja kohdasta Vianmääritys.
Vianmääritys¶
Ongelmat kirjautumisessa käyttäjätilille GDM:n avulla¶
Joissakin tapauksissa, esimerkiksi jos sinulla on asennettuna opencs-pkcs11, Gnome Display Manager (GDM) voi oletusarvoisesti ottaa käyttöön älykorttikirjautumisen heti, kun jokin älykortti (kuten Nitrokey) kytketään, vaikka mitään älykorttia ei olisi koskaan määritetty. Tämä voi estää sinua kirjautumasta käyttäjätilillesi u2f:n avulla. Jos olet asettanut sufficient -valvontalippulauseen, irrota kaikki älykortit ja kirjaudu sisään salasanallasi. Voit ottaa älykorttien valvonnan pois käytöstä suorittamalla seuraavan komennon:
$ 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