Mise en place d’une authentification à deux facteurs sur un système Linux

By | September 7, 2017

L’authentification à deux facteurs peut être une bonne solution pour protéger votre système contre les attaques sur les mots de passe. Cette méthode ajoute une couche supplémentaire de sécurité à votre machine.

Dans ce billet, nous verrons comment forcer les utilisateurs d’une machine Linux à s’authentifier à l’aide d’un login et d’un code TOTP.
Nous réaliserons cette démonstration sur un système Ubuntu 16.04.

Sous Linux, PAM ou Pluggable Authentication Module est un système d’authentification qui peut intégrer d’autres méthodes d’authentification.

Pour générer le code TOTP, nous utiliserons le module PAM de Google Authenticator.

Installons tout d’abord Google Authenticator :

$ sudo apt install libpam-google-authenticator -y

installation google authenticator
Il nous faudra ensuite modifier le fichier /etc/pam.d/common-auth pour activer l’authentification avec le code TOTP.

$ sudo gedit /etc/pam.d/common-auth

Tout d’abord, repérez cette ligne dans le fichier:

auth [success=1 default=ignore] pam_unix.so nullok_secure

Puis, ajoutez la ligne suivante au-dessus d’elle:

auth required pam_google_authenticator.so

activation de l'authentification avec google authenticator
Sauvegardez, puis quittez.

La prochaine étape consiste à mettre en place un token google-authenticator pour tous les utilisateurs sinon aucun d’eux ne pourra se connecter au système.
Pour ce faire, chaque utilisateur va devoir lancer la commande suivante dans son terminal:

$ google-authenticator

Pour des raisons de sécurité, vous aurez à repondre à quelques questions. Je vous recommande de répondre à yes (y) à toutes ces questions.
Une fois terminé, un fichier .google-authenticator contenant des informations sur votre code sera créé dans votre Home Directory ($HOME).

création d'un code totp
Copiez l’url fournie et collez-la dans votre navigateur Web. Scannez le code qr qui s’affiche avec des applications mobiles comme FreeOTP ou GoogleAuthenticator.
url fournie

A votre prochaine connexion sur votre système, il vous sera demandé le code de vérification qui s’affichera dans votre application mobile, puis votre password.

nouvelle connexion

De même, vous aurez besoin du code de vérification pour l’utilisation des privilèges du superutilisateur.

mdestroy

4 thoughts on “Mise en place d’une authentification à deux facteurs sur un système Linux

  1. Quentin

    Heu récupérer le QR code depuis un site Internet ça ne me plait pas beaucoup perso.
    Pas moyen de générer un fichier png en local ?

    Reply
  2. Wallace

    Je pense qu’il faut néanmoins préciser que cela ne fonctionne que sur des systèmes connectés au réseau, si pas de réseau pas d’authentification.
    Pour reprendre le cas Ubuntu sur des réseaux où il faut s’authentifier en 802.1x tant que la session n’est pas deverouillėe il n’est pas possible de se connecter en 802.1x. Du coup y a beaucoup de cas où il sera impossible de se connecter à la session.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *