web-dev-qa-db-fra.com

Comment configurer une clé U2F (telle qu'une clé YubiKey) pour une authentification à 2 facteurs à l'échelle du système?

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.?

2
Hamish W

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.


1. Installer les outils U2F à partir du PPA Yubico

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

2. Configurez votre clé (s)

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é.)

3. Testez votre configuration de 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.

4 Activer 2FA pour toute authentification

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.

5. Désactiver 2FA pour Sudo

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.

6. Sécuriser l'accès physique

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.

1
Hamish W