Comment se connecter à votre bureau Linux avec Google Authenticator
Pour plus de sécurité, vous pouvez exiger un jeton d'authentification basé sur le temps ainsi qu'un mot de passe pour vous connecter à votre PC Linux. Cette solution utilise Google Authenticator et d'autres applications TOTP..
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 avions 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 pour un accès SSH, nous devrons d’abord installer le logiciel PAM («module d’authentification enfichable») approprié. PAM est un système qui nous permet de connecter différents types de méthodes d’authentification à 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 installez libpam-google-authenticator
Espérons que les autres distributions Linux devraient avoir ce paquet disponible pour une installation facile - ouvrez les référentiels de logiciels de votre distribution Linux et effectuez une recherche. Dans le pire des cas, vous pouvez trouver le code source du module PAM sur GitHub et le compiler vous-même..
Comme nous l’avons déjà signalé, cette solution ne dépend pas de «téléphoner chez soi» aux serveurs de Google. Il implémente l'algorithme TOTP standard 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..
Vous serez également guidé dans le processus d'obtention de ce code de vérification à deux facteurs dans un Google Authenticator ou une application TOTP similaire sur votre smartphone. Votre système peut générer un code QR que vous pouvez scanner ou vous pouvez le saisir manuellement..
Assurez-vous de noter vos codes de grattage d'urgence, avec lesquels vous pouvez vous connecter si vous perdez votre téléphone..
Suivez cette procédure pour chaque compte d'utilisateur utilisant votre ordinateur. Par exemple, si vous êtes la seule personne à utiliser votre ordinateur, vous pouvez le faire une fois sur votre compte d'utilisateur normal. Si vous avez quelqu'un d'autre qui utilise votre ordinateur, vous voudrez qu'il se connecte à son propre compte et génère un code à deux facteurs approprié pour son propre compte afin qu'il puisse se connecter..
Activer l'authentification
Voici où les choses deviennent un peu glacées. Lorsque nous avons expliqué comment activer les connexions à deux facteurs pour les connexions SSH, nous ne l’avions demandé que pour les connexions SSH. Cela vous permettait de vous connecter localement si vous perdiez votre application d'authentification ou en cas de problème..
Étant donné que nous allons activer l'authentification à deux facteurs pour les connexions locales, il y a 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 similaire à 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.)
Ajoutez la ligne suivante à la fin du fichier, puis enregistrez-le:
auth requis 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 encore exécuté la commande google-authentator pour configurer une authentification à deux facteurs. S'ils l'ont configuré, ils devront entrer un code temporel, sinon ils ne le feront pas. Supprimez le «nullok» et les comptes d'utilisateurs qui n'ont pas configuré de code Google Authenticator ne pourront tout simplement pas se connecter graphiquement.
La prochaine fois qu'un utilisateur se connectera graphiquement, il lui sera demandé son mot de passe, puis le code de vérification actuel affiché sur son téléphone. S'ils n'entrent pas le code de vérification, ils ne seront pas autorisés à se connecter.
Le processus devrait être assez similaire pour les autres distributions et bureaux Linux, car la plupart des gestionnaires de session de bureau Linux utilisent PAM. Il vous suffira probablement de modifier un fichier différent avec quelque chose de similaire pour activer le module PAM approprié..
Si vous utilisez le cryptage du répertoire personnel
Les anciennes versions d'Ubuntu offraient une option simple de «cryptage de dossiers de base» qui chiffrait tout votre répertoire personnel jusqu'à la saisie de votre mot de passe. Plus précisément, cela utilise ecryptfs. Toutefois, étant donné que 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 plutôt un cryptage sur disque complet, ce qui fonctionnera parfaitement avec les options ci-dessus. Tu n'as rien à faire de spécial
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 vous y connecter 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 connecter à nouveau normalement..
Vous pouvez également obliger Google Authenticator à être requis pour d'autres types de connexions, voire même à toutes les connexions système, en ajoutant la ligne "autorisation requise pam_google_authenticator.so" à d'autres fichiers de configuration de PAM. Soyez prudent si vous faites cela. Et souvenez-vous que vous voudrez peut-être ajouter «nullok» afin que les utilisateurs n'ayant pas suivi le processus d'installation puissent toujours se connecter..
Vous trouverez une documentation supplémentaire sur l'utilisation et la configuration de ce module PAM dans le fichier README du logiciel sur GitHub..