31Aug
Pour plus de sécurité, vous pouvez avoir besoin d'un jeton d'authentification basé sur le temps ainsi que d'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 Unity standard et le gestionnaire de connexion LightDM, mais les principes sont les mêmes sur la plupart des distributions et 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 toute application compatible qui implémente le système 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( "pluggable-authentication module") approprié.PAM est un système qui nous permet de brancher différents types de méthodes d'authentification dans un système Linux et de les exiger.
Sur Ubuntu, la commande suivante va installer le 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 dépôts logiciels de votre distribution Linux et l'installera:
sudo apt-get install libpam-google-authenticator
D'autres distributions Linux devraient avoir ce paquet disponible pour une installation facile - ouvrez les dépôts de logiciels de votre distribution Linux eteffectuez une recherche pour cela. 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à souligné, cette solution ne dépend pas de la "phoning home" des 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 devrez maintenant créer une clé d'authentification secrète et l'entrer dans l'application Google Authenticator( ou une application similaire) sur votre téléphone. Tout d'abord, connectez-vous en tant que votre compte utilisateur sur votre système Linux. Ouvrez une fenêtre de terminal et exécutez la commande
google-authenticator. Tapez et et suivez les instructions ici. Cela crée un fichier spécial dans le répertoire du compte d'utilisateur actuel avec les informations Google Authenticator.
Vous découvrirez également que le code de vérification à deux facteurs est intégré à Google Authenticator ou à une application TOTP similaire sur votre smartphone. Votre système peut générer un code QR que vous pouvez numériser ou vous pouvez le saisir manuellement.
Assurez-vous de noter vos codes d'urgence, que vous pouvez utiliser pour vous connecter si vous perdez votre téléphone.
Suivez ce processus pour chaque compte d'utilisateur qui utilise votre ordinateur. Par exemple, si vous êtes la seule personne qui utilise votre ordinateur, vous pouvez le faire une seule fois sur votre compte utilisateur normal. Si vous avez quelqu'un d'autre qui utilise votre ordinateur, vous devez les laisser se connecter à leur propre compte et générer un code à deux facteurs approprié pour leur propre compte afin qu'ils puissent se connecter.

Activer l'authentification
Voici oùles choses deviennent un peu glaciales. Lorsque nous avons expliqué comment activer deux facteurs pour les connexions SSH, nous l'avons requis uniquement pour les connexions SSH.Cela vous permet de vous connecter localement si vous avez perdu votre application d'authentification ou si quelque chose s'est mal passé.
Puisque 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. En gardant cela à l'esprit, nous vous guiderons en l'activant uniquement pour les connexions graphiques. Cela vous donne une trappe d'évacuation si vous en avez besoin.
Activer Google Authenticator pour les connexions graphiques sous Ubuntu
Vous pouvez toujours activer l'authentification en deux étapes pour les connexions graphiques uniquement, 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 brèche dans votre système d'authentification, mais un attaquant avec un accès physique à votre système peut déjà l'exploiter de toute façon. C'est pourquoi l'authentification à deux facteurs est particulièrement efficace pour les connexions distantes via SSH.
Voici comment faire pour Ubuntu, qui utilise le gestionnaire de connexion LightDM.Ouvrez le fichier LightDM pour l'éditer avec une commande comme suit:
sudo gedit /etc/pam.d/ lightdm
( Rappelez-vous, ces étapes spécifiques ne fonctionneront que si votre distribution Linux et votre bureau utilisent le gestionnaire de connexion LightDM.)
Ajoutez la ligne suivante à la fin dele fichier, puis enregistrez-le:
auth requis pam_google_authenticator.so nullok
Le bit "nullok" à la fin dit au système de laisser un utilisateur se connecter même s'il n'a pas exécuté la commande google-authenticator pour configurer deux-l'authentification par facteur. 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 pas se connecter graphiquement.
La prochaine fois qu'un utilisateur se connecte graphiquement, il lui sera demandé son mot de passe, puis invité à entrer le code de vérification affiché sur son téléphone. S'ils n'entrent pas dans 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 sessions Linux utilisent PAM.Vous devrez probablement éditer un fichier différent avec quelque chose de similaire pour activer le module PAM approprié.
Si vous utilisez le cryptage du répertoire de base
Les anciennes versions d'Ubuntu offraient une option de cryptage de dossier de base qui chiffrait l'intégralité de votre répertoire personnel jusqu'à ce que vous entriez votre mot de passe. Plus précisément, cela utilise ecryptfs. Toutefois, comme le logiciel PAM dépend d'un fichier Google Authenticator stocké dans votre répertoire personnel par défaut, le chiffrement interfère avec le PAM qui lit le fichier, sauf si vous vous assurez qu'il est disponible sous forme non chiffrée avant de vous connecter. Informations sur l'évitement de ce problème si vous utilisez toujours les options de chiffrement du répertoire personnel dépréciées.
Les versions modernes d'Ubuntu offrent à la place un cryptage complet, ce qui fonctionne bien avec les options ci-dessus. Vous n'avez rien à faire de spécial
Help, It Broke!
Parce que nous venons de l'activer pour les connexions graphiques, il devrait être facile de le désactiver si cela cause un problème. Appuyez sur une combinaison de touches comme 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 comme sudo nano /etc/pam.d/ lightdm pour ouvrir le fichier à éditer dans un éditeur de texte du terminal. Utilisez notre guide pour Nano pour supprimer la ligne et enregistrer le fichier, et vous serez en mesure de vous connecter normalement à nouveau.

Vous pouvez également forcer Google Authenticator à être requis pour d'autres types de connexion, voire même pour toutes les connexions système, en ajoutant la ligne «auth required pam_google_authenticator.so» à d'autres fichiers de configuration PAM.Soyez prudent si vous faites cela. Et souvenez-vous, vous pouvez ajouter "nullok" pour que les utilisateurs qui n'ont pas encore passé le processus d'installation puissent se connecter.
Vous trouverez d'autres documentations sur l'utilisation et la configuration de ce module PAM dans le fichier README du logiciel sur GitHub.