Desktop login en Linux gebruikersauthenticatie

Inleiding

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.

Als u wilt inloggen op uw computer met Nitrokey Pro 2, Nitrokey Storage 2 en Nitrokey Start u kunt de beschikbare instructies bekijken hier.

Vereisten

  • Ubuntu 20.04 met Gnome Display Manager.

  • Nitrokey FIDO2 geconfigureerd volgens deze instructies.

Instructies

GUI-methode

  1. Klik linksonder op Show Applications en typ instellingen in de zoekbalk als volgt:

    img1
  2. Scroll naar beneden in de rechterbalk naar Users

    img2
  3. In de linkerhoek klikt u op Unlock en dat vraagt om uw wachtwoord

    img3
  4. Selecteer Administrator en voer de gebruikersnaam en het wachtwoord van uw keuze in

    img4
  5. Zodra u klaar bent met stap 4 zou u klaar moeten zijn

    img5

CLI-methode

  1. Maak een backup gebruiker en geef die root rechten

    U kunt dit doen door deze commando’s te gebruiken:

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

    In het geval dat u U2F voor een enkele gebruiker wilt instellen, en uit uw gebruikerssessie wordt vergrendeld, kunt u nog steeds inloggen met de <backup_user>, en doorgaan met het onderhoud.

    Waarschuwing

    De volgende handleiding kan u mogelijk van uw computer afsluiten. U moet zich bewust zijn van deze risico’s, want het is aanbevolen om de onderstaande instructies eerst op een tweede computer te gebruiken, of na een volledige back-up.

    U kunt de toegang tot uw gegevens verliezen na het configureren van PAM-modules.

  2. Stel de rules in om de Nitrokey FIDO2 te herkennen

    Onder /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
    

    En herstart udev service

    $ sudo systemctl restart udev
    
  3. Installatie libpam-u2f

    Op Ubuntu 20.04 is het mogelijk om direct libpam-u2f te downloaden van de officiële repos

    $ sudo apt install libpam-u2f
    

    Notitie

    Klik voor meer opties

    • Als alternatief kunt u libpam-u2f bouwen vanuit Git.

    • Om te controleren of de bibliotheek correct is geïnstalleerd, voert u het volgende commando in:

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

    De output moet iets als het volgende zijn:

    /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. Verzorg de Directory

    Maak .config/Nitrokey/ aan onder uw home directory

    $ mkdir ~/.config/Nitrokey
    

    En sluit uw Nitrokey FIDO2 aan.

    Als we klaar zijn met de voorbereidingen, kunnen we beginnen met het configureren van de computer om Nitrokey FIDO2 te gebruiken voor 2e factor authenticatie bij het aanmelden en sudo.

  5. Genereer het U2F config bestand

    Om het configuratiebestand te genereren gebruiken we het pamu2fcfg hulpprogramma dat wordt meegeleverd met de libpam-u2f. Voor het gemak zullen we de uitvoer van het hulpprogramma direct wegschrijven naar het u2f_keys bestand onder .config/Nitrokey. Sluit eerst uw Nitrokey FIDO2 aan (als u dat nog niet deed), en voer het volgende commando in:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Zodra u het bovenstaande commando uitvoert, moet u de toets aanraken terwijl het knippert. Eenmaal gedaan, zal pamu2fcfg zijn uitvoer toevoegen aan de u2f_keys in het volgende formaat:

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

    Merk op, de uitvoer zal veel langer zijn, maar gevoelige delen zijn hier verwijderd. Voor een betere beveiliging, en zodra het config bestand gegenereerd is, zullen we de .config/Nitrokey directory verplaatsen onder de etc/ directory met dit commando:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Tip

    • Het bestand onder .config/Nitrokey moet de naam u2f_keys hebben.

    • Het wordt aanbevolen om de instructies eerst te testen met één gebruiker. Hiertoe neemt het vorige commando de -u optie, om een gebruiker op te geven, zoals in het voorbeeld hieronder:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Voor individuele gebruikersconfiguratie moet u in de volgende stap naar de home directory wijzen, of de authfile optie niet opnemen in de PAM configuratie.

  6. Backup

    Deze stap is optioneel, maar het wordt aangeraden om een backup Nitrokey te hebben in geval van verlies, diefstal of vernietiging van uw Nitrokey FIDO.

    Om een backup sleutel in te stellen, herhaalt u de procedure hierboven, en gebruikt u pamu2fcfg -n. Dit zal het <username> veld weglaten, en de uitvoer kan worden toegevoegd aan de regel met uw <username> zoals dit:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Modificeer de Pluggable Authenticatie Module PAM

    De laatste stap is het configureren van de PAM module bestanden onder /etc/pam.d/. In deze handleiding zullen we het common-auth bestand aanpassen, omdat dit de authenticatie-instellingen afhandelt die voor alle services gelden, maar andere opties zijn mogelijk. U kunt het bestand wijzigen met het volgende commando:

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

    En voeg de volgende regels toe bovenaan het bestand:

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

    Tip

    • Omdat we gebruik maken van Central Authentication Mapping, moeten we pam_u2f de locatie van het bestand opgeven dat we willen gebruiken met de authfile optie.

    • Als u vaak vergeet de sleutel in te voeren, prompt optie maakt pam_u2f print Insert your U2F device, then press ENTER. en geeft u een kans om de Nitrokey te plaatsen.

    • 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 zorgt ervoor dat u nog steeds kunt inloggen met de gebruikersnaam en wachtwoord, u wilt dit misschien verwijderen zodra de setup werkt en u geen gewone gebruikersnaam & wachtwoord-gebaseerde logins meer wilt.

    Zodra we de common-auth hebben aangepast, kunnen we het bestand opslaan en afsluiten.

    U kunt de configuratie testen door sudo ls in de terminal te typen. U zou de melding Please touch the device. moeten krijgen en een vergelijkbare uitvoer op de terminal moeten krijgen:

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

    U kunt uw configuratie ook testen door uit te loggen uit de gebruikerssessie en weer in te loggen. Een gelijkaardig scherm zou moeten verschijnen wanneer u uw Nitrokey FIDO2 loskoppelt/weer aansluit en uw wachtwoord intypt:

    img6

Gebruik

Na de wijziging van de PAM-module kunt u uw configuratie meteen testen, maar het is aanbevolen om uw computer opnieuw op te starten en de Nitrokey FIDO2 los te koppelen/weer aan te sluiten.

Zodra u de instructies in deze gids naar behoren hebt getest (en een back-up hebt gemaakt), is het aanbevolen om ofwel de required of de requisite controlevlag te gebruiken in plaats van sufficient.

De vlaggen required en requisite zorgen voor een strengere toegangscontrole, en maken de Nitrokey FIDO2 noodzakelijk om in te loggen en/of de geconfigureerde dienst te gebruiken.

Indien u meer informatie wenst over Controle Vlaggen in de PAM configuratie lijn, kunt u de laatste sectie van deze gids raadplegen om het verschil te begrijpen, en de implicaties van het gebruik van elk van hen.

PAM modules

Er zijn verschillende PAM-modulebestanden die kunnen worden aangepast aan uw behoeften:

  • Door het bestand /etc/pam.d/common-auth aan te passen, kunt u Nitrokey FIDO gebruiken voor authenticatie met de tweede factor voor grafische aanmelding en sudo. Opmerking: common-auth moet worden gewijzigd door de extra configuratieregel aan het einde van het bestand toe te voegen.

  • 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

  • U kunt ook gewoon het /etc/pam.d/sudo bestand wijzigen als u FIDO U2F wilt gebruiken wanneer u het sudo commando gebruikt.

Controlevlaggen

In stap 7 hebben we de sufficient controle vlag gebruikt om het gedrag van de PAM module te bepalen wanneer de Nitrokey is aangesloten of niet. Het is echter mogelijk om dit gedrag te veranderen door de volgende controlevlaggen te gebruiken:

  • required: Dit is de meest kritische vlag. Het resultaat van de module moet succesvol zijn om de authenticatie te kunnen voortzetten. Deze vlag kan u van uw computer uitsluiten als u geen toegang tot de Nitrokey hebt.

  • requisite: Vergelijkbaar met required, maar in het geval dat een specifieke module een fout teruggeeft, wordt de controle direct teruggegeven aan de toepassing, of aan de superieure PAM-stack. Deze vlag kan u ook van uw computer uitsluiten als u geen toegang tot de Nitrokey heeft.

  • sufficient: Het resultaat van de module wordt genegeerd als het mislukt. De vlag sufficient wordt als veilig beschouwd voor testdoeleinden.

  • optional: Het succes of falen van deze module is alleen van belang als het de enige module in de stack is die bij dit service+type hoort. De vlag optional wordt als veilig beschouwd om voor testdoeleinden te gebruiken.

Waarschuwing

  • Als required of requisite is ingesteld, zal het falen van de U2F-authenticatie leiden tot het falen van de algehele authenticatie. De mislukking zal zich voordoen wanneer de geconfigureerde Nitrokey FIDO niet is aangesloten, verloren of vernietigd.

  • U zult de toegang tot uw computer verliezen als u de PAM-module verkeerd hebt geconfigureerd en de required of requisite vlaggen hebt gebruikt.

  • U verliest ook de mogelijkheid om sudo te gebruiken als u Centrale Authenticatie Mapping hebt ingesteld en de required of requisite vlaggen hebt gebruikt.