Vous pouvez utiliser le module d'authentification enfichable open source (PAM) créé par Google, connu sous le nom de Google Authenticator . Ce module est disponible dans les référentiels standard, ainsi que dans GitHub afin que vous puissiez construire à partir des sources. Associé à l'application Android, iOS ou Blackberry du même nom, il crée des codes temporels et sensibles au temps pour l'authentification avec votre mot de passe. Puisqu'il s'agit d'un module PAM, il peut être déposé à peu près n'importe où . Commençons!
L'installation
Pour commencer, vous pouvez installer le PAM avec les éléments suivants:
sudo apt-get install libpam-google-authenticator
Facile!
Mise en place:
Une fois installé, vous souhaiterez également installer l'application mobile correspondante pour Android, iOS ou Blackberry (en fonction de votre plate-forme mobile). Chacun est inutile sans l'autre. Une fois que vous avez l'application dont vous avez besoin pour votre appareil mobile, exécutez ce qui suit dans un terminal:
google-authenticator
Cela commencera par vous poser quelques questions. La première est la seule à laquelle vous devez répondre «Oui» et vous demande si vous voulez que les codes soient basés sur le temps. Après cela, lisez chaque question et faites le choix qui vous convient le mieux.
Une fois la configuration initiale terminée, vous verrez un très gros code QR dans votre terminal, ainsi que d'autres informations. La ligne qui dit "Votre nouvelle clé secrète est:" est une ligne indispensable si vous ne voulez pas utiliser le code QR pour coupler votre appareil, alors ne fermez pas cette fenêtre avant d'avoir configuré! Les «codes à gratter» que cela vous donne sont également importants, car ils sont ce que vous utiliserez pour vous connecter si vous perdez votre appareil mobile. Notez-les et conservez-les dans un endroit sûr.
Maintenant, sur votre appareil mobile, ouvrez votre application Google Authenticator et sélectionnez "Configurer un compte". Vous pouvez soit scanner le code QR qui a été généré, soit sélectionner «Utiliser la clé fournie». Si vous scannez le code QR, tout sera automatiquement enregistré sous un compte nommé "your_user @ your_host". Cependant, si vous sélectionnez "Utiliser la clé fournie", vous devrez saisir manuellement un nom, une clé et un type de jeton. Le nom peut être tout ce que vous souhaitez. La clé serait la clé secrète générée précédemment. Le type serait basé sur le temps par défaut. Après l'avoir configuré, vous verrez le compte dans le volet principal de l'application Google Authenticator, ainsi qu'un minuteur en forme de cercle à côté. Ce minuteur s'épuise toutes les 30 secondes et un nouveau code est généré.
L'activer!
Voici la magie. Puisqu'il s'agit d'un module PAM, il peut être utilisé dans une variété d'endroits. Je vais parcourir l'ajout de l'authentification aux sudo
demandes, les connexions SSH et la connexion à lightdm. Cependant, après avoir lu ce tutoriel, vous pourrez l'activer ailleurs sur la base des mêmes techniques.
SSH
Je fais celui-ci en premier car il y a une étape supplémentaire. La première chose que vous devez faire est de modifier votre fichier de configuration SSH:
gksudo gedit /etc/ssh/sshd_config
Recherchez la ligne qui dit:
ChallengeResponseAuthentication no
et changez le «non» en «oui».
Maintenant, vous devez éditer le module PAM pour ssh:
gksudo gedit /etc/pam.d/sshd
À la toute fin de ce fichier, ajoutez la ligne suivante:
auth required pam_google_authenticator.so nullok
L'argument "nullok" indique au système de ne pas demander de code de vérification si un utilisateur n'a pas configuré l'authentification à deux facteurs. Après cette modification, continuez et redémarrez votre service ssh:
sudo service ssh restart
sudo
Demandes
Modifiez le fichier PAM pour sudo
:
gksudo gedit /etc/pam.d/sudo
Ajoutez la ligne suivante à la toute fin:
auth required pam_google_authenticator.so nullok
Désormais, chaque sudo
demande demandera un code de vérification ainsi qu'un mot de passe.
LightDM (connexion à l'interface graphique)
Modifiez le fichier PAM pour LightDM:
gksudo gedit /etc/pam.d/lightdm
Ajoutez la ligne suivante à la toute fin:
auth required pam_google_authenticator.so nullok
C'est ça! Chaque fois que vous vous connectez via l'interface graphique, il vous demandera un code de vérification après votre mot de passe.
Connexion à l'échelle du système et TTY
Même si vous activez les méthodes ci-dessus, il ne demandera toujours pas de code de vérification si vous passez à un ATS avec CTRL+ ALT+ F#. Pour résoudre ce problème, modifiez le common-auth
fichier PAM:
gksudo gedit /etc/pam.d/common-auth
et ajoutez la ligne suivante à la fin:
auth required pam_google_authenticator.so nullok
Remarque: Étant donné que ce fichier d'authentification commune est inclus dans tous les autres fichiers de type d'authentification, vous devez supprimer les lignes d'authentification requises des autres fichiers. Sinon, il vous demandera le code de vérification deux fois et ne vous permettra pas de vous connecter après.
Emballer
Comme vous pouvez le voir, il était assez facile d'ajouter cette authentification. Si vous utilisez un gestionnaire d'affichage autre que LightDM, vous pouvez facilement modifier la ligne lightdm ci-dessus en conséquence. Étant donné que votre appareil mobile et votre système partagent déjà cette clé secrète, ils doivent toujours être synchronisés. Il n'y a aucune interaction avec les serveurs Google ou toute autre ressource Internet pour cette configuration. Même si les deux appareils étaient complètement hors ligne, les codes de vérification qui s'affichent dans votre application seront corrects. Chaque fois que vous devez vous connecter via l'une des méthodes que vous avez activées, assurez-vous simplement d'ouvrir votre application mobile et de saisir le code de vérification actuel.
S'amuser!!
FreeOTP est une alternative open source à l'application Android Google Authenticator sur Google Play (dont le code actuel n'est pas open source). FreeOTP est disponible sur F-Droid (et Google Play ).
la source