Connexion au bureau et authentification de l’utilisateur Linux¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Introduction¶
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.
If you want to login to you computer using Nitrokey Pro 2, Nitrokey Storage 2 and Nitrokey Start you can visit the instructions available here.
Exigences¶
Ubuntu 20.04 avec Gnome Display Manager.
Nitrokey FIDO2 configuré en suivant ces instructions.
Instructions¶
Méthode GUI¶
Dans le coin inférieur gauche, cliquez sur
Show Applicationset tapez les paramètres dans la barre de recherche comme suit :
Défilez vers le bas dans la barre de droite jusqu’à
Users.
Dans le coin gauche, cliquez sur
Unlocket cela vous demandera votre mot de passe.
Sélectionnez
Administratoret entrez le nom d’utilisateur et le mot de passe de votre choix.
Une fois que vous avez terminé l’étape 4, vous devriez avoir terminé.
Méthode CLI¶
Créer un utilisateur de sauvegarde et lui donner les privilèges root.
Vous pouvez le faire en utilisant ces commandes :
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Dans le cas où vous préférez configurer l’U2F pour un seul utilisateur, et que vous êtes bloqué dans votre session utilisateur, vous pourrez toujours vous connecter avec le
<backup_user>, et procéder à la maintenance.Avertissement
Le guide suivant peut potentiellement vous bloquer l’accès à votre ordinateur. Vous devez être conscient de ces risques, car il est recommandé d’utiliser les instructions ci-dessous d’abord sur un ordinateur secondaire, ou après une sauvegarde complète.
Vous pourriez perdre l’accès à vos données après avoir configuré les modules PAM.
Paramétrez le
rulespour reconnaître le Nitrokey FIDO2**.Sous
/etc/udev/rules.dtélécharger41-nitrokey.rules$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules
Et redémarrez le service
udev.$ sudo systemctl restart udev
Installation
libpam-u2fSur Ubuntu 20.04, il est possible de télécharger directement
libpam-u2fdepuis les dépôts officiels.$ sudo apt install libpam-u2f
Note
Cliquez pour plus d’options
Vous pouvez également construire
libpam-u2fà partir de Git.Pour vérifier que la bibliothèque est correctement installée, entrez la commande suivante :
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Le résultat devrait ressembler à ce qui suit :
/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
Préparation du répertoire
Créez
.config/Nitrokey/sous votre répertoire personnel$ mkdir ~/.config/Nitrokey
Et branchez votre Nitrokey FIDO2.
Une fois la préparation terminée, nous pouvons commencer à configurer l’ordinateur pour qu’il utilise Nitrokey FIDO2 pour l’authentification du second facteur lors de la connexion et de
sudo.Générer le fichier de configuration U2F.
Pour générer le fichier de configuration, nous allons utiliser l’utilitaire
pamu2fcfgqui est fourni aveclibpam-u2f. Pour des raisons pratiques, nous écrirons directement la sortie de l’utilitaire dans le fichieru2f_keyssous.config/Nitrokey. Commencez par brancher votre Nitrokey FIDO2 (si ce n’est pas déjà fait), et entrez la commande suivante :$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Once you run the command above, you will need to touch the device while it flashes. Once done,
pamu2fcfgwill append its output theu2f_keysin the following format:<username>:Zx...mw,04...0a
Notez que la sortie sera beaucoup plus longue, mais les parties sensibles ont été supprimées ici. Pour une meilleure sécurité, et une fois le fichier de configuration généré, nous allons déplacer le répertoire
.config/Nitrokeysous le répertoireetc/avec cette commande :$ sudo mv ~/.config/Nitrokey /etc
Astuce
Le fichier sous
.config/Nitrokeydoit être nommé ``u2f_keys`””.Il est recommandé de tester d’abord les instructions avec un seul utilisateur. Pour cela, la commande précédente prend l’option
-u, pour spécifier un utilisateur, comme dans l’exemple ci-dessous :$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
Pour la configuration d’un utilisateur individuel, vous devriez pointer vers le répertoire personnel dans l’étape suivante, ou ne pas inclure l’option
authfiledans la configuration de PAM.
Backup
Cette étape est facultative, mais il est conseillé d’avoir une Nitrokey de secours en cas de perte, de vol ou de destruction de votre Nitrokey FIDO.
Pour configurer une clé de secours, répétez la procédure ci-dessus, et utilisez
pamu2fcfg -n. Ceci omettra le champ<username>, et la sortie peut être ajoutée à la ligne avec votre<username>comme ceci :<username>:Zx...mw,04...0a:xB...fw,04...3f
Modifier le Module d’Authentification Pluggable
PAM.La dernière étape consiste à configurer les fichiers du module PAM sous
/etc/pam.d/. Dans ce guide, nous allons modifier le fichiercommon-authcar il gère les paramètres d’authentification qui sont communs à tous les services, mais d’autres options sont possibles. Vous pouvez modifier le fichier avec la commande suivante :$ cd /etc/pam.d $ sudo $editor common-auth
Et ajoutez les lignes suivantes au début du fichier :
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
Astuce
Comme nous utilisons le Central Authentication Mapping, nous devons indiquer à
pam_u2fl’emplacement du fichier à utiliser avec l’optionauthfile.Si vous oubliez souvent d’insérer la clé, l’option
promptfait quepam_u2fimprimeInsérez votre dispositif U2F, puis appuyez sur ENTER.et vous donne une chance d’insérer la Nitrokey.If you would like to be prompted to touch the Nitrokey,
cueoption will makepam_u2fprintPlease touch the device.message. You can change the message in[cue_prompt=Please touch the device.].nouserok s’assurera que vous pouvez toujours vous connecter en utilisant le nom d’utilisateur et le mot de passe, vous pourriez vouloir supprimer cette option à un moment donné, une fois que la configuration fonctionne et que vous ne voulez plus de connexions régulières basées sur le nom d’utilisateur et le mot de passe.
Une fois que nous avons modifié le
common-auth, nous pouvons sauvegarder et quitter le fichier.Vous pouvez tester la configuration en tapant
sudo lsdans le terminal. Vous devriez recevoir le message « Please touch the device » et avoir une sortie similaire sur le terminal :nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Vous pouvez également tester votre configuration en vous déconnectant de la session utilisateur et en vous reconnectant. Un écran similaire devrait s’afficher une fois que vous aurez débranché/rebranché votre Nitrokey FIDO2 et saisi votre mot de passe :
Utilisation¶
Après la modification du module PAM, vous pourrez tester votre configuration immédiatement, mais il est recommandé de redémarrer votre ordinateur, et de débrancher/rebrancher la Nitrokey FIDO2.
Une fois que vous avez correctement testé les instructions de ce guide (et mis en place une sauvegarde), il est recommandé d’utiliser le drapeau de contrôle « requis « ou « requis « au lieu de « suffisant « .
Les drapeaux required et ``requisite`” fournissent un contrôle d’accès plus strict, et rendront la Nitrokey FIDO2 nécessaire pour se connecter, et/ou utiliser le service configuré.
Si vous avez besoin de plus d’informations sur les drapeaux de contrôle dans la ligne de configuration PAM, vous pouvez consulter la dernière section de ce guide pour comprendre la différence, et les implications de l’utilisation de chacun d’eux.
Modules PAM¶
Il existe plusieurs fichiers de modules PAM qui peuvent être modifiés en fonction de vos besoins :
En modifiant le fichier
/etc/pam.d/common-auth, vous serez en mesure d’utiliser votre Nitrokey FIDO pour l’authentification du 2ème facteur pour la connexion graphique etsudo. Note :common-authdoit être modifié en ajoutant la ligne de configuration supplémentaire à la fin du fichier.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-passwordVous pouvez également modifier le fichier
/etc/pam.d/sudosi vous souhaitez utiliser FIDO U2F lorsque vous utilisez la commandesudo.
Drapeaux de contrôle¶
Dans l’étape 7, nous avons utilisé l’indicateur de contrôle « suffisant » pour déterminer le comportement du module PAM lorsque la Nitrokey est branchée ou non. Cependant, il est possible de modifier ce comportement en utilisant les drapeaux de contrôle suivants :
required: C’est le drapeau le plus critique. Le résultat du module doit être réussi pour que l’authentification se poursuive. Cet indicateur peut vous bloquer l’accès à votre ordinateur si vous n’avez pas accès à la Nitrokey.requisite: Similaire à ``required`”, cependant, dans le cas où un module spécifique renvoie un échec, le contrôle est directement renvoyé à l’application, ou à la pile PAM supérieure. Cet indicateur peut également vous bloquer l’accès à votre ordinateur si vous n’avez pas accès à la Nitrokey.sufficient: Le résultat du module est ignoré s’il échoue. L’indicateursufficientest considéré comme sûr à des fins de test.optionnel: Le succès ou l’échec de ce module n’est important que s’il est le seul module de la pile associé à ce service+type. L’indicateur optional` est considéré comme sûr à utiliser à des fins de test.
Avertissement
Si « requis » ou « requis » est défini, l’échec de l’authentification U2F entraînera l’échec de l’authentification globale. L’échec se produira lorsque la Nitrokey FIDO configurée ne sera pas branchée, perdue ou détruite.
Vous perdrez l’accès à votre ordinateur si vous avez mal configuré le module PAM et utilisé les drapeaux « requis » ou « requis ».
Vous perdrez également la possibilité d’utiliser
sudosi vous avez configuré le mappage de l’authentification centrale et utilisé les drapeauxrequiredourequisite.