Login på skrivebordet og godkendelse af Linux-brugere

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.

Hvis du vil logge ind på din computer ved hjælp af Nitrokey Pro 2, Nitrokey Storage 2 og Nitrokey Start kan du besøge de instruktioner, der er tilgængelige her.

Krav

  • Ubuntu 20.04 med Gnome Display Manager.

  • Nitrokey FIDO2 konfigureret efter denne vejledning.

Vejledning

GUI-metode

  1. Klik på Show Applications i det nederste venstre hjørne, og skriv indstillinger i søgelinjen som følger:

    img1
  2. Rul ned i den højre bjælke til Users

    img2
  3. I venstre hjørne klikker du på Unlock og du vil blive bedt om at indtaste din adgangskode

    img3
  4. Vælg Administrator og indtast det brugernavn og den adgangskode, du ønsker

    img4
  5. Når du er færdig med trin 4, bør du være færdig

    img5

CLI-metode

  1. Opret en backup-bruger, og giv den root-rettigheder

    Det kan du gøre ved at bruge disse kommandoer:

    $ sudo adduser <backup_user>
    $ sudo usermod -aG sudo <backup_user>
    

    Hvis du foretrækker at konfigurere U2F for en enkelt bruger og er låst ude af din brugersession, kan du stadig logge ind med <backup_user> og fortsætte med vedligeholdelsen.

    Advarsel

    Følgende vejledning kan potentielt låse dig ude af din computer. Du bør være opmærksom på disse risici, da det anbefales først at bruge nedenstående vejledning på en sekundær computer eller efter en fuld sikkerhedskopi.

    Du kan miste adgangen til dine data efter at have konfigureret PAM-moduler.

  2. Indstil rules til at genkende Nitrokey FIDO2

    Under /etc/udev/rules.d download 41-nitrokey.rules

    $ cd /etc/udev/rules.d/
    $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
    

    Og genstart udev tjeneste

    $ sudo systemctl restart udev
    
  3. Install libpam-u2f

    På Ubuntu 20.04 er det muligt at downloade direkte libpam-u2f fra de officielle repos

    $ sudo apt install libpam-u2f
    

    Bemærk

    Klik for flere muligheder

    • Alternativt kan du bygge libpam-u2f fra Git.

    • For at kontrollere, at biblioteket er korrekt installeret, skal du indtaste følgende kommando:

    $ file /lib/x86_64-linux-gnu/security/pam_u2f.so
    

    Output bør være noget i retning af følgende:

    /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. Forbered mappen

    Opret .config/Nitrokey/ under din hjemmemappe

    $ mkdir ~/.config/Nitrokey
    

    Og tilslut din Nitrokey FIDO2.

    Når vi er færdige med forberedelserne, kan vi begynde at konfigurere computeren til at bruge Nitrokey FIDO2 til anden faktor-autentificering ved login og sudo.

  5. Generer U2F-konfigurationsfilen

    Til at generere konfigurationsfilen bruger vi værktøjet pamu2fcfg, der følger med libpam-u2f. For nemheds skyld skriver vi output fra hjælpeprogrammet direkte til filen u2f_keys under .config/Nitrokey. Tilslut først din Nitrokey FIDO2 (hvis du ikke allerede har gjort det), og indtast følgende kommando:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Når du har kørt kommandoen ovenfor, skal du røre ved tasten, mens den blinker. Når det er gjort, vil pamu2fcfg vedhæfte sit output til u2f_keys i følgende format:

    <username>:Zx...mw,04...0a
    

    Bemærk, at resultatet vil være meget længere, men følsomme dele er fjernet her. For bedre sikkerhed, og når konfigurationsfilen er genereret, vil vi flytte mappen .config/Nitrokey under mappen etc/ med denne kommando:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Tip

    • Filen under .config/Nitrokey skal hedde u2f_keys.

    • Det anbefales først at teste vejledningen med en enkelt bruger. Til dette formål bruger den foregående kommando indstillingen -u til at angive en bruger, som i eksemplet nedenfor:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Ved konfiguration af individuelle brugere skal du pege på hjemmemappen i næste trin eller undlade at inkludere indstillingen authfile i PAM-konfigurationen.

  6. Backup

    Dette trin er valgfrit, men det anbefales at have en backup-Nitrokey i tilfælde af tab, tyveri eller ødelæggelse af din Nitrokey FIDO.

    Hvis du vil oprette en backup-nøgle, skal du gentage proceduren ovenfor og bruge pamu2fcfg -n. Herved udelades feltet <username>, og output kan tilføjes til linjen med din <username> på denne måde:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Modificer det indsættelige autentifikationsmodul PAM

    Det sidste trin er at konfigurere PAM-modulfilerne under /etc/pam.d/. I denne vejledning vil vi ændre filen common-auth, da den håndterer godkendelsesindstillingerne, som er fælles for alle tjenester, men andre muligheder er mulige. Du kan ændre filen med følgende kommando:

    $ cd /etc/pam.d
    $ sudo $editor common-auth
    

    Og tilføj følgende linjer i toppen af filen:

    #Nitrokey FIDO2 config
    auth    sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
    

    Tip

    • Da vi bruger Central Authentication Mapping, skal vi fortælle pam_u2f placeringen af den fil, der skal bruges med indstillingen authfile.

    • Hvis du ofte glemmer at sætte nøglen i, prompt mulighed for at pam_u2f udskrive Insert your U2F device, then press ENTER. og give dig en chance for at indsætte 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 vil sikre, at du stadig kan logge ind med brugernavn og adgangskode, du vil måske fjerne dette på et tidspunkt, når opsætningen fungerer, og du ikke ønsker almindelige brugernavn og adgangskode-baserede logins.

    Når vi har ændret common-auth, kan vi gemme og afslutte filen.

    Du kan teste konfigurationen ved at skrive sudo ls i terminalen. Du bør få vist meddelelsen Please touch the device. og få et lignende output på terminalen:

    nitrouser@nitrouser:~$ sudo ls
    [sudo] password for nitrouser:  Please touch the device.
    

    Du kan også teste din konfiguration ved at logge ud af brugersessionen og logge ind igen. En lignende skærm bør vises, når du har taget din Nitrokey FIDO2 ud af stikket/gennemført stikket og indtastet din adgangskode:

    img6

Anvendelse

Efter ændringen af PAM-modulet vil du kunne teste din konfiguration med det samme, men det anbefales at genstarte computeren og trække stikket ud af/til Nitrokey FIDO2.

Når du har testet instruktionerne i denne vejledning korrekt (og oprettet en sikkerhedskopi), anbefales det at bruge enten required eller requisite<x> kontrolflag i stedet for sufficient.

Flagene required og requisite giver en strammere adgangskontrol og gør Nitrokey FIDO2 nødvendig for at logge ind og/eller bruge den konfigurerede tjeneste.

Hvis du har brug for flere oplysninger om kontrolflag i konfigurationslinjen PAM, kan du se det sidste afsnit i denne vejledning for at forstå forskellen og konsekvenserne af at bruge dem hver især.

PAM-moduler

Der er flere PAM-modulfiler, som kan ændres efter dine behov:

  • Ved at ændre filen /etc/pam.d/common-auth vil du kunne bruge din Nitrokey FIDO til anden faktor-autentificering til grafisk login og sudo. Bemærk: common-auth skal ændres ved at tilføje den ekstra konfigurationslinje i slutningen af 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 blot ændre filen /etc/pam.d/sudo, hvis du ønsker at bruge FIDO U2F, når du bruger kommandoen sudo.

Kontrolflag

I trin 7 har vi brugt sufficient kontrolflag til at bestemme PAM-modulets adfærd, når Nitrokey er tilsluttet eller ej. Det er dog muligt at ændre denne adfærd ved at bruge følgende kontrolflag:

  • required: Dette er det mest kritiske flag. Modulresultatet skal være vellykket, for at godkendelsen kan fortsætte. Dette flag kan låse dig ude af din computer, hvis du ikke har adgang til Nitrokey.

  • requisite: Svarer til required, men i tilfælde af at et specifikt modul returnerer en fejl, returneres kontrollen direkte til programmet eller til den overordnede PAM-stakke. Dette flag kan også låse dig ude af din computer, hvis du ikke har adgang til Nitrokey.

  • sufficient: Modulresultatet ignoreres, hvis det mislykkes. sufficient-flaget anses for at være sikkert til testformål.

  • optional: Dette moduls succes eller fiasko er kun vigtig, hvis det er det eneste modul i stakken, der er forbundet med denne service+type. optional-flaget anses for at være sikkert at bruge til testformål.

Advarsel

  • Hvis required eller requisite er indstillet, vil en fejl i U2F-godkendelsen medføre, at den samlede godkendelse mislykkes. Fejl vil opstå, når den konfigurerede Nitrokey FIDO ikke er tilsluttet, tabt eller ødelagt.

  • Du mister adgangen til din computer, hvis du har konfigureret PAM-modulet forkert og har brugt flagene required eller requisite.

  • Du mister også muligheden for at bruge sudo, hvis du opretter central tilknytning af autentifikation og har brugt flagene required eller requisite.