Connexion au bureau et authentification de l’utilisateur Linux#
✓ |
✓ |
✓ |
✓ |
⨯ |
⨯ |
⨯ |
✓ |
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.
Si vous voulez vous connecter à votre ordinateur en utilisant Nitrokey Pro 2, Nitrokey Storage 2 et Nitrokey. Start vous pouvez consulter les instructions disponibles ici.
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 Applications
et 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
Unlock
et cela vous demandera votre mot de passe.Sélectionnez
Administrator
et 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
rules
pour reconnaître le Nitrokey FIDO2**.Sous
/etc/udev/rules.d
télécharger41-nitrokey.rules
$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
Et redémarrez le service
udev
.$ sudo systemctl restart udev
Installation
libpam-u2f
Sur Ubuntu 20.04, il est possible de télécharger directement
libpam-u2f
depuis 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
pamu2fcfg
qui est fourni aveclibpam-u2f
. Pour des raisons pratiques, nous écrirons directement la sortie de l’utilitaire dans le fichieru2f_keys
sous.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
Une fois que vous aurez exécuté la commande ci-dessus, vous devrez toucher la touche pendant qu’elle clignote. Une fois fait,
pamu2fcfg
ajoutera sa sortie àu2f_keys
dans le format suivant :<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/Nitrokey
sous le répertoireetc/
avec cette commande :$ sudo mv ~/.config/Nitrokey /etc
Astuce
Le fichier sous
.config/Nitrokey
doit ê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
authfile
dans 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-auth
car 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 prompt nouserok
Astuce
Comme nous utilisons le Central Authentication Mapping, nous devons indiquer à
pam_u2f
l’emplacement du fichier à utiliser avec l’optionauthfile
.Si vous oubliez souvent d’insérer la clé, l’option
prompt
fait quepam_u2f
imprimeInsérez votre dispositif U2F, puis appuyez sur ENTER.
et vous donne une chance d’insérer la Nitrokey.Si vous souhaitez être invité à toucher la Nitrokey, l’option
cue
fera en sorte quepam_u2f
imprime le messagePlease 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 ls
dans 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-auth
doit être modifié en ajoutant la ligne de configuration supplémentaire à la fin du fichier.Si vous souhaitez utiliser l’authentification FIDO U2F uniquement pour la connexion graphique de Gnome, vous pouvez préférer modifier le fichier
/etc/pam.d/gdm-password
.Vous pouvez également modifier le fichier
/etc/pam.d/sudo
si 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’indicateursufficient
est 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
sudo
si vous avez configuré le mappage de l’authentification centrale et utilisé les drapeauxrequired
ourequisite
.