Ce processus a été exécuté sur Ubuntu 14.04 avec le bureau standard Unity et le gestionnaire de connexion LightDM, mais les principes sont les mêmes pour la plupart des distributions et des postes de travail Linux.
Nous vous avons déjà montré comment exiger Google Authenticator pour un accès à distance via SSH, et ce processus est similaire. Cela ne nécessite pas l'application Google Authenticator, mais fonctionne avec toutes les applications compatibles qui implémentent le schéma d'authentification TOTP, y compris Authy.
Installer le Google Authenticator PAM
Comme lors de la configuration de l’accès SSH, nous devons d’abord installer le logiciel PAM («module d’authentification enfichable») approprié. PAM est un système qui nous permet de brancher différents types de méthodes d’authentification sur un système Linux et de les exiger.
Sur Ubuntu, la commande suivante installera Google Authenticator PAM. Ouvrez une fenêtre de terminal, tapez la commande suivante, appuyez sur Entrée et indiquez votre mot de passe. Le système téléchargera le PAM à partir des référentiels de logiciels de votre distribution Linux et l’installera:
sudo apt-get install libpam-google-authenticator
Comme nous l’avons déjà souligné, cette solution ne dépend pas de la téléphonie directe vers les serveurs de Google. Il implémente l’algorithme standard TOTP et peut être utilisé même lorsque votre ordinateur n’a pas accès à Internet.
Créez vos clés d'authentification
Vous devez maintenant créer une clé d'authentification secrète et la saisir dans l'application Google Authenticator (ou une application similaire) sur votre téléphone. Commencez par vous connecter en tant que compte utilisateur sur votre système Linux. Ouvrez une fenêtre de terminal et lancez le google-authentificateur commander. Type y et suivez les instructions ici. Cela créera un fichier spécial dans le répertoire du compte d'utilisateur actuel avec les informations de Google Authenticator.
Assurez-vous de noter vos codes de grattage d'urgence, avec lesquels vous pouvez vous connecter si vous perdez votre téléphone.
Activer l'authentification
C’est là que les choses deviennent un peu glacées. Lorsque nous avons expliqué comment activer la connexion à deux facteurs pour les connexions SSH, nous ne l’avions demandé que pour les connexions SSH. Ainsi, vous pouvez toujours vous connecter localement si vous avez perdu votre application d'authentification ou si quelque chose s'est mal passé.
Dans la mesure où nous activerons l’authentification à deux facteurs pour les connexions locales, il existe des problèmes potentiels ici. Si quelque chose ne va pas, vous ne pourrez peut-être pas vous connecter. Gardez cela à l'esprit, nous vous expliquerons comment l'activer uniquement pour les connexions graphiques. Cela vous donne une trappe d'évacuation si vous en avez besoin.
Activer Google Authenticator pour les connexions graphiques sur Ubuntu
Vous pouvez toujours activer l'authentification en deux étapes uniquement pour les connexions graphiques, en ignorant l'exigence lorsque vous vous connectez à partir de l'invite de texte. Cela signifie que vous pouvez facilement passer à un terminal virtuel, vous y connecter et annuler vos modifications afin que Gogole Authenciator ne soit plus nécessaire si vous rencontrez un problème.
Bien sûr, cela ouvre une faille dans votre système d'authentification, mais un attaquant disposant d'un accès physique à votre système peut déjà l'exploiter. C’est pourquoi l’authentification à deux facteurs est particulièrement efficace pour les connexions à distance via SSH.
Voici comment procéder pour Ubuntu, qui utilise le gestionnaire de connexion LightDM. Ouvrez le fichier LightDM pour le modifier à l'aide d'une commande semblable à celle-ci:
sudo gedit /etc/pam.d/lightdm
(N'oubliez pas que ces étapes spécifiques ne fonctionneront que si votre distribution Linux et votre ordinateur de bureau utilisent le gestionnaire de connexion LightDM.)
auth required pam_google_authenticator.so nullok
Le bit «nullok» à la fin indique au système de laisser un utilisateur se connecter même s’il n’a pas exécuté la commande google-authentator pour configurer l’authentification à deux facteurs. S'ils l'ont configuré, ils devront entrer un code temporel, sinon ils ne le feront pas. Supprimez les «nullok» et les comptes d’utilisateur qui n’ont pas configuré de code Google Authenticator ne pourront plus se connecter graphiquement.
Si vous utilisez le cryptage du répertoire personnel
Les anciennes versions d'Ubuntu offraient une option simple de «cryptage de dossiers de base» permettant de chiffrer l'intégralité de votre répertoire personnel jusqu'à la saisie de votre mot de passe. Plus précisément, cela utilise ecryptfs. Cependant, comme le logiciel PAM dépend d'un fichier Google Authenticator stocké par défaut dans votre répertoire personnel, le cryptage interfère avec la lecture du fichier par PAM, à moins que vous ne vous assuriez qu'il est disponible sous forme non cryptée pour le système avant de vous connecter. informations sur la façon d'éviter ce problème si vous utilisez toujours les options de chiffrement du répertoire de base obsolète.
Les versions modernes d'Ubuntu offrent à la place un cryptage sur disque complet, ce qui fonctionnera parfaitement avec les options ci-dessus. Vous n'avez rien de spécial à faire
Au secours, ça s'est cassé!
Comme nous venons de l'activer pour les connexions graphiques, il devrait être facile de le désactiver s'il pose un problème. Appuyez sur une combinaison de touches telle que Ctrl + Alt + F2 pour accéder à un terminal virtuel et connectez-vous avec votre nom d'utilisateur et votre mot de passe. Vous pouvez ensuite utiliser une commande telle que sudo nano /etc/pam.d/lightdm pour ouvrir le fichier en vue de son édition dans un éditeur de texte de terminal. Utilisez notre guide sur Nano pour supprimer la ligne et enregistrer le fichier. Vous pourrez vous reconnecter normalement.
Vous trouverez une documentation supplémentaire sur l’utilisation et la configuration de ce module PAM dans le fichier README du logiciel sur GitHub.