Inloggning på skrivbordet och autentisering av Linux-användare#
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
Introduktion#
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.
Om du vill logga in på datorn med Nitrokey Pro 2, Nitrokey Storage 2 och Nitrokey Start kan du besöka de instruktioner som finns här.
Krav#
Ubuntu 20.04 med Gnome Display Manager.
Nitrokey FIDO2 konfigureras enligt dessa instruktioner.
Instruktioner#
GUI-metod#
I det nedre vänstra hörnet klickar du på
Show Applications
och skriver inställningar i sökfältet enligt följande:Bläddra ner i högerfältet till
Users
I det vänstra hörnet klickar du på
Unlock
och du kommer att uppmanas att ange ditt lösenord.Välj
Administrator
och ange ditt användarnamn och lösenord.När du har avslutat steg 4 bör du vara klar
CLI-metod#
Skapa en användare för säkerhetskopiering och ge den root-rättigheter.
Det kan du göra med hjälp av dessa kommandon:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Om du föredrar att konfigurera U2F för en enskild användare och blir utelåst från din användarsession kan du fortfarande logga in med
<backup_user>
och fortsätta med underhållet.Varning
Följande guide kan potentiellt låsa dig från din dator. Du bör vara medveten om dessa risker, eftersom det rekommenderas att först använda instruktionerna nedan på en sekundär dator eller efter en fullständig säkerhetskopiering.
Du kan förlora åtkomsten till dina data efter att ha konfigurerat PAM-moduler.
Inställ
rules
för att känna igen Nitrokey FIDO2.Under
/etc/udev/rules.d
nedladdning41-nitrokey.rules
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
Och starta om tjänsten
udev
.$ sudo systemctl restart udev
Installation
libpam-u2f
På Ubuntu 20.04 är det möjligt att ladda ner direkt
libpam-u2f
från de officiella källorna.$ sudo apt install libpam-u2f
Observera
Klicka för fler alternativ
Alternativt kan du bygga
libpam-u2f
från Git.För att kontrollera att biblioteket är korrekt installerat anger du följande kommando:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Resultatet bör vara ungefär som följande:
/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
Förbered katalog
Skapa
.config/Nitrokey/
under din hemkatalog$ mkdir ~/.config/Nitrokey
Koppla in din Nitrokey FIDO2.
När vi är klara med förberedelserna kan vi börja konfigurera datorn för att använda Nitrokey FIDO2 för andrafaktorsautentisering vid inloggning och
sudo
.Generera U2F-konfigurationsfilen
För att generera konfigurationsfilen använder vi verktyget
pamu2fcfg
som följer medlibpam-u2f
. För enkelhetens skull kommer vi att skriva utdata från verktyget direkt till filenu2f_keys
under.config/Nitrokey
. Anslut först din Nitrokey FIDO2 (om du inte redan har gjort det) och ange följande kommando:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
När du har kört kommandot ovan måste du röra vid tangenten medan den blinkar. När det är gjort kommer
pamu2fcfg
att lägga tillu2f_keys
i följande format:<username>:Zx...mw,04...0a
Observera att resultatet kommer att vara mycket längre, men känsliga delar har tagits bort här. För bättre säkerhet, och när konfigurationsfilen genererats, flyttar vi katalogen
.config/Nitrokey
under katalogenetc/
med detta kommando:$ sudo mv ~/.config/Nitrokey /etc
Tips
Filen under
.config/Nitrokey
måste hetau2f_keys
.Det rekommenderas att först testa instruktionerna med en enda användare. För detta ändamål använder föregående kommando alternativet
-u
för att ange en användare, som i exemplet nedan:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
För individuella användarkonfigurationer bör du peka på hemkatalogen i nästa steg, eller inte inkludera alternativet
authfile
i PAM-konfigurationen.
Backup
Det här steget är frivilligt, men det rekommenderas att ha en backup-Nitrokey i händelse av förlust, stöld eller förstörelse av din Nitrokey FIDO.
Om du vill ställa in en reservnyckel upprepar du proceduren ovan och använder
pamu2fcfg -n
. Då utelämnas fältet<username>
, och resultatet kan läggas till raden med din<username>
så här:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modifiera den instickbara autentiseringsmodulen
PAM
Det sista steget är att konfigurera PAM-modulfilerna under
/etc/pam.d/
. I den här guiden kommer vi att ändra filencommon-auth
eftersom den hanterar autentiseringsinställningarna som är gemensamma för alla tjänster, men andra alternativ är möjliga. Du kan ändra filen med följande kommando:$ cd /etc/pam.d $ sudo $editor common-auth
Och lägg till följande rader längst upp i filen:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue prompt nouserok
Tips
Eftersom vi använder central autentiseringsmappning måste vi ange
pam_u2f
platsen för den fil som ska användas med alternativetauthfile
.Om du ofta glömmer att sätta in nyckeln,
prompt
alternativet gör attpam_u2f
skriver utInsert your U2F device, then press ENTER.
och ger dig en chans att sätta in Nitrokey.Om du vill bli uppmanad att röra vid Nitrokey,
cue
alternativet gör attpam_u2f
skriver utPlease touch the device.
meddelande.nouserok kommer att se till att du fortfarande kan logga in med användarnamn och lösenord, du kanske vill ta bort detta vid något tillfälle när installationen fungerar och du inte vill ha vanliga användarnamn och lösenord baserade inloggningar.
När vi har ändrat
common-auth
kan vi spara och avsluta filen.Du kan testa konfigurationen genom att skriva
sudo ls
i terminalen. Du bör få meddelandetPlease touch the device.
och få ett liknande resultat på terminalen:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Du kan också testa konfigurationen genom att logga ut ur användarsessionen och logga in igen. En liknande skärm bör visas när du kopplar ur/på din Nitrokey FIDO2 och skriver ditt lösenord:
Användning#
Efter ändringen av PAM-modulen kan du testa konfigurationen direkt, men det rekommenderas att du startar om datorn och kopplar ur/på Nitrokey FIDO2.
När du har testat instruktionerna i den här guiden (och skapat en säkerhetskopia), rekommenderas att du använder antingen required
eller requisite
kontrollflagga istället för sufficient
.
Flaggorna required
och requisite
ger en strängare åtkomstkontroll och gör att Nitrokey FIDO2 är nödvändig för att logga in och/eller använda den konfigurerade tjänsten.
Om du behöver mer information om kontrollflaggor i konfigurationsraden PAM
kan du läsa det sista avsnittet i den här guiden för att förstå skillnaden och konsekvenserna av att använda var och en av dem.
PAM-moduler#
Det finns flera PAM-modulfiler som kan ändras enligt dina behov:
Genom att ändra filen
/etc/pam.d/common-auth
kommer du att kunna använda Nitrokey FIDO för autentisering med andra faktorn för grafisk inloggning ochsudo
. Obs:common-auth
bör ändras genom att lägga till den extra konfigurationsraden i slutet av filen.Om du vill använda FIDO U2F-autentisering enbart för Gnomes grafiska inloggning kan du ändra följande:
/etc/pam.d/gdm-password
.Alternativt kan du bara ändra filen
/etc/pam.d/sudo
om du vill använda FIDO U2F när du använder kommandotsudo
.
Kontrollflaggor#
I steg 7 har vi använt sufficient
-kontrollflaggan för att bestämma PAM-modulens beteende när Nitrokey är ansluten eller inte. Det är dock möjligt att ändra detta beteende genom att använda följande kontrollflaggor:
required
: Detta är den mest kritiska flaggan. Modulresultatet måste vara framgångsrikt för att autentiseringen ska kunna fortsätta. Denna flagga kan låsa dig ute från datorn om du inte har tillgång till Nitrokey.requisite
: Liknarrequired
, men i det fall en specifik modul returnerar ett fel återgår kontrollen direkt till programmet eller till den överordnade PAM-stapeln. Den här flaggan kan också låsa dig från datorn om du inte har tillgång till Nitrokey.sufficient
: Modulresultatet ignoreras om det misslyckas. Flaggansufficient
anses vara säker för teständamål.optional
: Denna moduls framgång eller misslyckande är endast viktigt om det är den enda modulen i stacken som är kopplad till denna tjänst+typ. Flagganoptional
anses vara säker att använda för teständamål.
Varning
Om
required
ellerrequisite
är inställd, kommer ett misslyckande av U2F-autentiseringen att leda till att den totala autentiseringen misslyckas. Misslyckandet inträffar när den konfigurerade Nitrokey FIDO inte är ansluten, förlorad eller förstörd.Du förlorar tillgången till din dator om du har konfigurerat PAM-modulen fel och använt flaggorna
required
ellerrequisite
.Du förlorar också möjligheten att använda
sudo
om du ställer in central autentiseringsmappning. och använt flaggornarequired
ellerrequisite
.