Tutoriel Linux configurer le MFA avec SSH

Linux : comment activer le MFA sur un accès SSH ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à configurer l’authentification multi-facteurs (MFA) sur l’accès SSH d’un serveur Linux afin de renforcer l’authentification : en complément de l’identifiant et du mot de passe, un code de vérification à usage unique devra être saisi pour s’authentifier sur le serveur.

Le MFA est compatible avec l’authentification par identifiants (utilisateur / mot de passe), mais aussi avec l’authentification par clés.

Sur le serveur Linux, nous allons devoir installer et configurer Google PAM Authenticator, correspondant au paquet « libpam-google-authenticator » (page du projet). Du côté de votre smartphone, vous pouvez utiliser l’application de génération de code de votre choix : FreeOTP, Microsoft Authenticator, Google Authenticator, etc… Il y a du choix !

Cette configuration s’applique à différentes distributions, notamment Debian, Ubuntu, Fedora, Rocky Linux, etc… Pour ma part, j’utilise une machine Debian 11 pour cette démonstration.

II. Installation et configuration de Google PAM Authenticator

Connectez-vous sur votre serveur Linux, mettez à jour le cache des paquets et installez le paquet mentionné en introduction :

sudo apt-get update
sudo apt-get install libpam-google-authenticator

Une fois l’installation effectuée, nous pouvons attaquer la configuration du module. Ceci va nécessiter d’utiliser votre smartphone avec votre application OTP. Exécutez cette commande :

google-authenticator

Répondez « y » à la première question pour qu’un QR code soit généré. Ce code doit être scanné avec votre application OTP, à partir de votre smartphone.

SSH MFA - QR Code de Google

Sous le QR code, il y a la question « Enter code from app » : saisissez le code affiché sur votre smartphone, et validez, afin de vérifier que cela fonctionne correctement. Notez également les codes d’urgence en lieu sûr, dans votre gestionnaire de mots de passe préféré, par exemple. Ces codes sont à utiliser uniquement si vous avez un problème avec l’application OTP sur votre smartphone.

SSH MFA - Code de secours

Ensuite, il faut répondre à 4 questions pour affiner la configuration. Pour que la configuration soit sécurisée (protection contre certaines attaques), il est nécessaire de répondre « y » donc « oui » à l’ensemble de ces questions. Par exemple, cela va imposer une limite pour les tentatives de connexion : 3 tentatives toutes les 30 secondes.

SSH MFA - Configuration de Google PAM Authenticator

La configuration de Google PAM est terminée ! Passons à la suite.

III. Activer le MFA sur la connexion SSH

Maintenant, nous devons configurer le module d’authentification de Linux et SSH pour qu’ils s’appuient sur Google PAM afin d’activer le MFA. Commencez par modifiez ce fichier :

sudo nano /etc/pam.d/sshd

Ajoutez cette ligne à la fin du fichier et enregistrez :

auth required pam_google_authenticator.so

SSH MFA - Configuration de PAM

Si vous souhaitez autoriser la connexion sans MFA, par exemple pour un utilisateur pour lequel le MFA n’est pas configuré, ajoutez  cette option :

auth required pam_google_authenticator.so nullok

Ensuite, c’est le serveur SSH en lui-même qu’il faut configurer. Ouvrez le fichier de configuration de SSH :

sudo nano /etc/ssh/sshd_config

Recherchez l’option « ChallengeResponseAuthentication » est définissez là sur « yes » à la place de « no ».

ChallengeResponseAuthentication yes

Linux - Activer le MFA dans SSH

Pour utiliser le MFA avec l’authentification par clés (ce qui suit n’est pas utile pour une authentification par login et mot de passe), la configuration est un peu différente… Car, en plus de l’option que nous venons d’activer, il faut ajouter cette option :

AuthenticationMethods publickey,keyboard-interactive

Bien sûr, cela vient s’ajouter aux lignes pour désactiver l’authentification par mot de passe et pour activer la méthode basée sur une clé publique :

PubkeyAuthentication yes
PasswordAuthentication no

Fermez le fichier et redémarrez le service SSH pour appliquer les changements :

sudo systemctl restart sshd

Il est temps de tester !

IV. SSH : tester la connexion MFA

À partir d’une machine distante, initiez une connexion SSH vers votre serveur sur lequel le MFA est actif, et connectez-vous avec l’utilisateur pour lequel nous venons d’activer le MFA. Et là, surprise, une nouvelle étape nommée « Verification code » s’affiche ! C’est à ce moment-là qu’il faut ouvrir l’application de génération de code sur votre smartphone pour obtenir un code et le saisir.

Linux - Tester la connexion SSH avec le MFA

Suite à cette connexion, dans le journal « /var/log/auth.log« , vous verrez une ligne comme celle-ci :

sshd(pam_google_authenticator)(1192687): Accepted google_authenticator for flo

Dans le cas où un mauvais code est saisi, il y aura également une entrée dans les logs pour notifier cette tentative. Cet événement est intéressant et peut indiquer un signe de compromission, car il indique que quelqu’un connaît le nom d’utilisateur et le mot de passe, mais qu’il bloque sur le second facteur d’authentification.

Maintenant, c’est à vous de configurer vos serveurs !

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Linux : configuration d’un espace de stockage sécurisé avec SFTP

Linux : configuration d’un espace de stockage sécurisé avec SFTP

Table de Matieres1 I. Présentation2 II. Préparation du serveur2.1 A. Configuration du réseau2.2 B. Vérification …

Linux : comment éviter d’entrer sa passphrase à chaque utilisation d’une clé SSH ?

Linux : comment éviter d’entrer sa passphrase à chaque utilisation d’une clé SSH ?

Table de Matieres1 I. Présentation2 II. Prérequis3 III. Vérifier la présence de la clé SSH4 …

Utilisation des montages SSHFS sécurisés sur GNU/Linux

Utilisation des montages SSHFS sécurisés sur GNU/Linux

Table de Matieres1 I. Présentation2 II. Installation de SSHFS3 III. Utilisation de SSHFS4 IV. Conclusion …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.