Configuration d'une clef YubiKey Bio (FIDO Edition) sous Pop!_Os 22.04 pour l'authentification :
- En mode graphique (Gnome)
- En mode console
- Avec sudo
L'intérêt est de ne plus à avoir à saisir de mot de passe de plus en plus long au quotidien et de rapidement pouvoir s'authentifier avec une empreinte digitale posée sur la clef.
Si la clef n'est pas présente / détectée ou que la reconnaissance de l'empreinte échoue, le mot de passe sera demandé.
Il est possible de rendre obligatoire la présence de la clef. Dans ce cas, il est fortement recommandée de posséder une seconde YubiKey en backup (de secours).
Configuration des empreintes digitales
- Télécharger l'application pour Linux :
wget https://developers.yubico.com/yubioath-desktop/Beta/yubioath-desktop-6.0.0-beta.1-linux.tar.gz
- Extraire l'archive compressée :
mkdir yubiauth
tar xzvf yubioath-desktop-6.0.0-beta.1-linux.tar.gz -C yubiauth/
- Lancer l'application :
cd yubiauth
./authenticator
- Insérer la YubiKey quand l'application le demande.
- Définir un code PIN pour la YubiKey.
- Ajouter une empreinte :
- Poser son empreinte plusieurs fois pour bien la définir et saisir un nom :
- Depuis le menu
Options
, il est possible de modifier le code PIN et de ré-initialiser la YubiKey :
Configuration de l'authentification
Module U2F pour PAM
- Installer le module U2F pour PAM et son outil de configuration :
sudo apt install libpam-u2f pamu2fcfg
- Génération de la configuration de PAM pour l'utilisateur courant :
pamu2fcfg -u `whoami` -opam://`hostname` -ipam://`hostname`
Au moment de la validation de la commande, la YubiKey se mettra à clignoter en vert. Il faudra saisir une des empreintes digitales enregistrées précédement.
- Copier le résultat :
# Le résultat à récupérer sera sous cette forme (... = raccourci)
julien:ehi46df...QBGFSsdf+q...70Z3A==,nbWH7...nRGyfSpJ3GS+UFkaf...YssmeKD/uiefF5...2W/RvMb8oNwA==,es256,+presence
- Coller le résultat dans le fichier
/etc/u2f_mappings
:
sudo vi /etc/u2f_mappings
Je déconseille fortement de vouloir piper / rediriger le résultat de la commande
pamu2cfg
directement dans le fichier.
- Editer le fichier
/etc/pam.d/common-auth
:
sudo vi /etc/pam.d/common-auth
- Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :
auth sufficient pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue
Avec cette configuration, il sera toujours possible de s'authentifier avec un mot de passe. Pour rendre l'utilisation obligatoire de la YubiKey, remplacer
sufficient
parrequired
.
- Mettre à jour PAM :
sudo pam-auth-update
Avant la mise à jour du fonctionnement de PAM, je recommande fortement de garder un shell ouvert à côté sous l'identité de root avec
sudo -i
. Cela permettra de rétablir la configuration initiale en cas d'erreur de manipulation.
Authentification en mode graphique
Pour permettre l'utilisation de la YubiKey pour s'authentifier à l'environnement graphique (Gnome).
- Editer le fichier
/etc/pam.d/gdm-password
:
sudo vi /etc/pam.d/gdm-password
- Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) juste après la ligne
@include common-auth
:
auth sufficient pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue
Authentification en mode console
Pour permettre l'utilisation de la YubiKey pour s'authentifier en mode console.
- Editer le fichier
/etc/pam.d/login
:
sudo vi /etc/pam.d/login
- Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :
auth sufficient pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue
Authentification avec sudo
Pour permettre l'utilisation de la YubiKey pour s'authentifier avec la commande sudo
.
- Editer le fichier
/etc/pam.d/sudo
:
sudo vi /etc/pam.d/sudo
- Ajouter la ligne suivante (remplacer $HOSTNAME par le nom de la machine) en haut du fichier :
auth sufficient pam_u2f.so origin=pam://$HOSTNAME appid=pam://$HOSTNAME authfile=/etc/u2f_mappings cue
- La YubiKey clignote en vert lorsqu'une empreinte doit être saisie :
- Si la YubiKey n'est pas connectée ou bien que l'empreinte n'est pas reconnue, le mot de passe habituel sera demandé.
Par défaut, sudo
ne redemande pas d'authentification avant 15 min. Avec sudo -k
, il est possible de forcer l'expiration de ce temps. Pour rendre ce comportement persistent, la configuration de sudo doit être modifiée.
- Editer le fichier
/etc/sudoers
:
sudo visudo
- Modifier comme suit :
# Avant
Defaults env_reset
# Après
Defaults env_reset,timestamp_timeout=0
Maintenant, à chaque fois que sudo
sera invoqué, une demande d'authentification sera effectuée.