14 votes

Utilisation de Yubikey Neo pour la connexion 2FA et l'écran de verrouillage

Je souhaite utiliser mon Yubikey Neo pour me connecter à Ubuntu 14.04. De plus, il serait pratique que l'écran se verrouille automatiquement chaque fois que je débranche le Yubikey.

12voto

smiddy84 Points 495

Tout d'abord, nous devons configurer le Yubikey pour qu'il réponde aux défis. Un bon manuel pour Linux est donné par Yubico sous https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Vous devriez maintenant pouvoir utiliser votre yubikey pour l'authentification lors de la connexion. Il manque un élément pratique : Le verrouillage automatique de l'écran lorsque le Yubikey est retiré.

J'ai légèrement adapté le HowTo des forums de Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) pour correspondre à LightDM dans 14.04 et au Yubikey Neo.

Tout d'abord, créez un nouveau fichier avec les commandes pour verrouiller l'écran lorsque le Yubikey n'est pas présent :

sudo nano /usr/local/bin/yubikey

Inscrivez les éléments suivants dans le fichier :

#!/bin/bash 
# Double checking if the Yubikey is actually removed, Challenge-Response won't trigger the screensaver this way.

if [ -z "$(lsusb | grep Yubico)" ]; then
        logger "YubiKey Removed or Changed"
        # Running the LightDM lock command
        export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" 
        /usr/bin/dm-tool lock
fi

Les plus grandes différences avec le fichier original sont l'utilisation de l'outil dm (pour verrouiller l'écran avec lightdm) et le terme de recherche Yubico, puisque le Yubikey Neo est enregistré avec "Yubico.com" dans lsusb.

Fermez et enregistrez le fichier. En outre, nous devons rendre le fichier exécutable :

sudo chmod +x /usr/local/bin/yubikey

Ensuite, nous devons trouver les propriétés du Yubikey pour une affectation correcte.

Pour cela, le descripteur USB doit être activé. Les détails peuvent être trouvés sur le site Forum Yubico .

Dans un nouveau terminal, tapez la commande

udevadm monitor --environment --udev

Maintenant, vous (dé)branchez votre yubikey et vous obtenez une liste d'identifiants. Vous cherchez

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Ils seront utilisés dans le fichier udev pour la reconnaissance du Yubikey.

Indice : L'ID du fournisseur change si vous reconfigurez la clé (par exemple avec CCID).

En outre, créez un fichier avec

sudo nano /etc/udev/rules.d/85-yubikey.rules

et tapez ce qui suit

# Yubikey Udev Rule: running a bash script in case your Yubikey is removed 
ACTION=="remove", ENV{ID_VENDOR_ID}=="1050", ENV{ID_MODEL_ID}=="0010", ENV{ID_SERIAL_SHORT}=="0001711399", RUN+="/usr/local/bin/yubikey"

Changez l'ID selon votre clé. Note : Vous pouvez ajouter d'autres yubikey en copiant-collant la ligne avec d'autres identifiants !

Fermez et enregistrez le fichier. Enfin, le service udev doit recharger les règles :

sudo udevadm control --reload-rules
sudo service udev reload

0voto

Dala Points 1187

Vous pouvez également ajouter la mise à mort de tous les ATS à l'aide de la fonction pkill -KILL -t :

if [ -z "$(lsusb | grep Yubico)" ]; then
    logger "YubiKey Removed or Changed"
    # Running the LightDM lock command
    export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" 
    /usr/bin/dm-tool lock

    ACTIVE_TTY=$(who | awk '{ print $2 }' | grep tty | uniq)
    echo $ACTIVE_TTY | xargs -I {} pkill -KILL -t {}
fi

Il semble également y avoir un problème avec les permissions des fichiers de lightdm pour le résoudre :

sudo chown lightdm:root /etc/yubico/[user]-[number]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X