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

  1. I det nedre vänstra hörnet klickar du på Show Applications och skriver inställningar i sökfältet enligt följande:

    img1
  2. Bläddra ner i högerfältet till Users

    img2
  3. I det vänstra hörnet klickar du på Unlock och du kommer att uppmanas att ange ditt lösenord.

    img3
  4. Välj Administrator och ange ditt användarnamn och lösenord.

    img4
  5. När du har avslutat steg 4 bör du vara klar

    img5

CLI-metod

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

  2. Inställ rules för att känna igen Nitrokey FIDO2.

    Under /etc/udev/rules.d nedladdning 41-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
    
  3. 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
    
  4. 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.

  5. Generera U2F-konfigurationsfilen

    För att generera konfigurationsfilen använder vi verktyget pamu2fcfg som följer med libpam-u2f. För enkelhetens skull kommer vi att skriva utdata från verktyget direkt till filen u2f_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 till u2f_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 katalogen etc/ med detta kommando:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Tips

    • Filen under .config/Nitrokey måste heta u2f_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.

  6. 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
    
  7. 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 filen common-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 [cue_prompt=Please touch the device.] 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 alternativet authfile.

    • Om du ofta glömmer att sätta in nyckeln, prompt alternativet gör att pam_u2f skriver ut Insert your U2F device, then press ENTER. och ger dig en chans att sätta in Nitrokey.

    • If you would like to be prompted to touch the Nitrokey, cue option will make pam_u2f print Please touch the device. message. You can change the message in [cue_prompt=Please touch the device.].

    • 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å meddelandet Please 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:

    img6

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 och sudo. Obs: common-auth bör ändras genom att lägga till den extra konfigurationsraden i slutet av filen.

  • If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the/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 kommandot sudo.

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: Liknar required, 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. Flaggan sufficient 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. Flaggan optional anses vara säker att använda för teständamål.

Varning

  • Om required eller requisite ä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 eller requisite.

  • Du förlorar också möjligheten att använda sudo om du ställer in central autentiseringsmappning. och använt flaggorna required eller requisite.