Le guide officiel de Yubico ne couvre que l’activation de la connexion GDM. Comment puis-je l’activer pour toutes les connexions, y compris ATS, SSH, Sudo, etc.?
Clause de non-responsabilité: Ce guide modifie la configuration par défaut de PAM, susceptible de vous empêcher de sortir de votre ordinateur. Je ne prends aucune responsabilité pour les dommages résultant de ces instructions. Comme toujours, sauvegardez tous les fichiers avant de les modifier, préparez un disque actif pour annuler les modifications, si nécessaire, et effectuez une recherche pour identifier ce qui se passe.
J'ai testé cela avec une YubiKey 4 et je confirme que cela fonctionne. Cela devrait fonctionner avec n'importe quelle clé de sécurité qui supporte la spécification U2F, y compris la plupart des YubiKeys.
Ceci est basé sur le guide Yubico avec quelques modifications apportées à l'étendue de la protection.
Tout d’abord, activez le PPA Yubico et installez le module PAM U2F:
Sudo add-apt-repository ppa:yubico/stable && Sudo apt-get update
Sudo apt-get install libpam-u2f
Le guide Yubico crée la configuration dans votre répertoire personnel, mais si votre répertoire personnel est chiffré, vous ne pourrez pas y accéder lors d'un redémarrage. Pour résoudre ce problème, nous devons créer la configuration quelque part qui ne soit pas chiffrée. Cela dépend de vos préférences personnelles, mais ici nous allons le créer sous /etc
.
pamu2fcfg | Sudo tee /etc/u2f_keys
Lorsque votre appareil clignote, appuyez sur le contact pour associer la clé à votre compte.
Si vous souhaitez ajouter d'autres clés à votre compte, exécutez la commande suivante:
pamu2fcfg -n | Sudo tee -a /etc/u2f_keys
(Avoir plus d'une clé est une bonne idée: si votre clé principale est perdue ou endommagée, vous avez toujours accès à votre compte en utilisant l'autre clé.)
Pour tester cette configuration, nous allons d'abord l'activer pour la commande Sudo uniquement. Retirez la clé de l'ordinateur et éditez /etc/pam.d/Sudo
:
Sudo nano /etc/pam.d/Sudo
Ajoutez la ligne suivante sous @include common-auth
:
auth required pam_u2f.so authfile=/etc/u2f_keys
Ouvrez une nouvelle fenêtre de terminal et exécutez Sudo echo test
. Votre mot de passe vous sera demandé et la commande échouera. Ceci est attendu car votre clé n'est pas dans l'ordinateur.
Insérez votre clé, exécutez Sudo echo test
à nouveau. Entrez votre mot de passe et appuyez sur votre touche quand elle vous demande de toucher, après quoi votre terminal devrait echo test
.
Cela confirme une bonne configuration et nous pouvons continuer à l'activer pour toutes les authentifications. Éditez /etc/pam.d/Sudo
encore, et supprimez la ligne que nous avons ajoutée.
C’est là que nous nous écartons du guide Yubico, dans la mesure où il ne permet d’activer que 2FA pour GDM, alors que nous voulons l’activer pour toutes les authentifications comprenant TTY, SSH, Sudo, etc. Nous devons d’abord éditer /etc/pam.d/common-auth
:
Sudo nano /etc/pam.d/common-auth
Ajoutez la ligne suivante en bas du fichier:
auth required pam_u2f.so nouserok authfile=/etc/u2f_keys cue
nouserok
signifie qu'un utilisateur sans clé associée ne sera pas invité à entrer 2FA et pourra donc toujours se connecter. Si vous omettez cette option, alors un utilisateur sans La clé ne pourra pas se connecter. authfile
indique au module de rechercher le fichier dans /etc
plutôt que l'emplacement par défaut (répertoire de base).cue
vous invitera à toucher avec un message ("Veuillez toucher le périphérique").(Voir documentation de Yubico pour la liste complète des options.)
À ce stade, nous avons terminé. Toute tentative de connexion sera nécessaire pour utiliser une clé pour 2FA. Ce qui suit est optionnel.
Personnellement, je ne voulais pas avoir à utiliser ma clé pour exécuter Sudo. La désactiver était assez simple, bien qu'un peu salissant. Je ne sais pas s'il existe un meilleur moyen de le faire. Editez le fichier Sudo pam à nouveau:
Sudo nano /etc/pam.d/Sudo
Supprimez la ligne indiquant @include common-auth
. Ensuite, copiez et collez le contenu de /etc/pam.d/common-auth
au même endroit que la ligne que nous avons supprimée, mais supprimez la ligne que nous avons ajoutée avant d'activer le module U2F. Ce dernier point est crucial: si vous laissez cette ligne, vous aurez toujours besoin d’une clé pour exécuter Sudo. Si vous supprimez cette ligne, la clé n’est plus nécessaire pour exécuter Sudo.
Vous pouvez adapter cette procédure si vous souhaitez désactiver 2FA pour ssh ou d'autres scénarios d'authentification. Si vous exécutez ls /etc/pam.d
, les fichiers disponibles seront affichés: chacun porte le nom du scénario qu’ils contrôlent. Encore une fois, ne le faites pas sauf si vous savez ce que vous faites et sauvegardez les fichiers avant d'apporter des modifications.
Bien sûr, tout le monde peut le désactiver en démarrant avec un lecteur de CD/USB en direct et en annulant vos modifications. Ainsi, si votre modèle de menace inclut un accès physique, vous souhaiterez activer le cryptage complet du système, désactiver le démarrage par USB/CD et définir un mot de passe BIOS. ou une autre méthode pour empêcher les tiers de falsifier. N'oubliez pas que vous êtes aussi sûr que le maillon le plus faible de votre configuration.