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#
Klik linksonder op
Show Applications
en typ instellingen in de zoekbalk als volgt:Scroll naar beneden in de rechterbalk naar
Users
In de linkerhoek klikt u op
Unlock
en dat vraagt om uw wachtwoordSelecteer
Administrator
en voer de gebruikersnaam en het wachtwoord van uw keuze inZodra u klaar bent met stap 4 zou u klaar moeten zijn
CLI-methode#
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.
Stel de
rules
in om de Nitrokey FIDO2 te herkennenOnder
/etc/udev/rules.d
download41-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
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
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
.Genereer het U2F config bestand
Om het configuratiebestand te genereren gebruiken we het
pamu2fcfg
hulpprogramma dat wordt meegeleverd met delibpam-u2f
. Voor het gemak zullen we de uitvoer van het hulpprogramma direct wegschrijven naar hetu2f_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 deu2f_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 deetc/
directory met dit commando:$ sudo mv ~/.config/Nitrokey /etc
Tip
Het bestand onder
.config/Nitrokey
moet de naamu2f_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.
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
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 hetcommon-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 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 deauthfile
optie.Als u vaak vergeet de sleutel in te voeren,
prompt
optie maaktpam_u2f
printInsert your U2F device, then press ENTER.
en geeft u een kans om de Nitrokey te plaatsen.Als u gevraagd wilt worden om de Nitrokey aan te raken,
cue
optie zalpam_u2f
bericht afdrukkenPlease 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 meldingPlease 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:
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 ensudo
. Opmerking:common-auth
moet worden gewijzigd door de extra configuratieregel aan het einde van het bestand toe te voegen.Als u FIDO U2F-authenticatie alleen wilt gebruiken voor de grafische login van Gnome, kunt u misschien beter het volgende wijzigen
/etc/pam.d/gdm-password
U kunt ook gewoon het
/etc/pam.d/sudo
bestand wijzigen als u FIDO U2F wilt gebruiken wanneer u hetsudo
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 metrequired
, 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 vlagsufficient
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 vlagoptional
wordt als veilig beschouwd om voor testdoeleinden te gebruiken.
Waarschuwing
Als
required
ofrequisite
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
ofrequisite
vlaggen hebt gebruikt.U verliest ook de mogelijkheid om
sudo
te gebruiken als u Centrale Authenticatie Mapping hebt ingesteld en derequired
ofrequisite
vlaggen hebt gebruikt.