Recherche de site Web

Comment configurer l'authentification à deux facteurs pour SSH sous Linux


Vous souhaitez renforcer la sécurité de votre SSH ? Voici comment vous pouvez mettre en place une authentification à deux facteurs pour SSH sous Linux.

Le Shell Sécurisé, ou SSH, est un protocole réseau cryptographique qui permet un accès sécurisé aux dispositifs via un réseau non sécurisé. Il trouve des applications dans divers cas d'utilisation, tels que la connexion à distance, l'accès à la ligne de commande à distance et l'exécution de commandes à distance.

Si vous avez utilisé SSH, vous savez déjà qu'il utilise un mécanisme d'authentification à facteur unique qui nécessite soit une clé SSH, soit un mot de passe pour l'authentification. Bien que cela ne semble pas alarmant au départ, cela expose néanmoins le système à plusieurs vulnérabilités ouvertes.

Il est donc souvent recommandé d'activer l'authentification à deux facteurs (2FA) pour SSH afin de renforcer sa sécurité. Dans cet article, nous discuterons de l'authentification à deux facteurs en détail, ainsi qu'un guide complet sur la façon d'activer la 2FA pour SSH.

Qu'est-ce que l'authentification à deux facteurs ?

L'authentification à deux facteurs, ou 2FA, est une forme de mécanisme d'authentification multi-facteurs (MFA) qui nécessite un second facteur d'authentification, en plus du premier facteur, pour authentifier votre connexion et protéger votre compte contre les accès non autorisés.

Vous pouvez considérer l'authentification à deux facteurs (2FA) comme un code de vérification généré soit par une application de génération de codes, soit par un générateur de jetons matériel, que vous devez fournir au moment de la connexion, après avoir entré votre mot de passe, pour accéder à votre compte.

Lorsque vous vous inscrivez à un compte sur un service en ligne, vous créez un mot de passe pour le sécuriser. Ce mot de passe sert de premier facteur d'authentification, et il est requis par le service pour vous authentifier chaque fois que vous vous connectez à votre compte.

Pourquoi devriez-vous activer la 2FA pour SSH ?

SSH, par défaut, vous authentifie soit avec une clé publique, soit avec un mot de passe avant d'établir une connexion entre vous et l'autre appareil/serveur.

En général, cette configuration fonctionne très bien et vous pouvez vous en tirer dans la plupart des cas. Cependant, pour les moments où vous vous connectez à un appareil/serveur qui détient des informations sensibles ou personnelles via SSH, vous avez besoin d'une couche de protection supplémentaire sur ce système.

Une façon de le faire est d'activer l'authentification à deux facteurs sur le serveur/ordinateur hôte, ce qui protège son accès via SSH et nécessite un deuxième facteur d'authentification pour authentifier la connexion du client.

En conséquence, même si quelqu'un parvient à obtenir le mot de passe du client/de l'hôte, il ne peut toujours pas accéder au système via SSH à moins qu'il ne fournisse également le code 2FA.

Comment configurer l'authentification à deux facteurs (2FA) pour SSH sous Linux

Mettre en place l'authentification à deux facteurs (2FA) pour SSH sur Linux implique une série d'étapes. Voici un aperçu de chaque étape pour vous guider tout au long du processus.

Conditions préalables

Il va sans dire que vous devez avoir un programme serveur SSH installé sur le système sur lequel vous souhaitez activer la 2FA. Pour vérifier cela, ouvrez le terminal et tapez :

ssh -V

Si vous avez un serveur SSH installé, passez à l'étape suivante. Sinon, entrez la commande suivante pour l'installer :

sudo apt install openssh-server

Une fois l'installation terminée, vérifiez si SSH est activé sur le système. Pour ce faire, entrez :

sudo systemctl status ssh

Si votre statut indique Actif : actif (en cours), vous pouvez continuer. Mais si cela indique le contraire, entrez la commande suivante :

sudo systemctl enable ssh

Dans certains cas, la configuration du pare-feu peut interférer avec SSH et vous pourriez avoir besoin de saisir la commande ci-dessous pour activer le serveur SSH sur votre système.

sudo ufw allow ssh

Étape 1 : Installer Google Authenticator PAM

Avec le serveur OpenSSH en cours d'exécution sur votre machine hôte, la toute première chose que vous devez faire est d'installer un module d'authentification pluggable (PAM), qui offre l'infrastructure nécessaire pour intégrer l'authentification multi-facteur pour SSH sous Linux.

Google Authenticator PAM est le choix le plus populaire à cet égard, car il est plus facile à mettre en œuvre et à utiliser que certains des autres modules d'authentification. Il offre toute l'infrastructure nécessaire pour authentifier les utilisateurs en utilisant des codes de mot de passe à usage unique basés sur le temps (TOTP) et dispose d'applications génératrices de codes disponibles sur Android et iOS.

Pour installer Google Authenticator PAM, ouvrez une fenêtre de terminal et exécutez la commande suivante :

sudo apt install libpam-google-authenticator

Entrez y à l'invite d'installation pour confirmer le processus.

Étape 2 : Configuration de SSH

Avec Google Authenticator PAM maintenant installé sur votre système, il est temps de faire en sorte que SSH utilise ce module pour l'authentification. Pour cela, vous devez modifier quelques fichiers de configuration.

Nous vous recommandons de créer une sauvegarde de ces fichiers pour éviter de rencontrer des problèmes si quelque chose ne va pas pendant le processus. Une fois terminé, continuez avec les étapes suivantes :

  1. Ouvrez le fichier de configuration PAM en utilisant nano. N'hésitez pas à utiliser tout autre éditeur de texte Linux.

    sudo nano /etc/pam.d/sshd
  2. Ajoutez la ligne suivante au fichier.

    auth required pam_google_authenticator.so
  3. Enregistrez et quittez la fenêtre d'édition de fichier.
  4. Redémarrez le service sshd en utilisant systemctl.

    sudo systemctl restart sshd.service

Ensuite, modifiez le fichier de configuration SSH, qui est responsable de la configuration SSH.

  1. Ouvrez le fichier en utilisant nano.

    sudo nano /etc/ssh/sshd_config
  2. Dans ce fichier, trouvez la ligne ChallengeResponseAuthentication no et changez son statut de "no" à "yes". Cela indiquera à SSH de demander un code d'authentification chaque fois que quelqu'un essaie de se connecter au système.
  3. Enregistrez le fichier et redémarrez le démon SSH.

    sudo systemctl restart sshd.service

Étape 3 : Configuration de l'authentificateur sur Linux

Maintenant que vous avez installé et configuré SSH, vous devez configurer Google Authenticator pour générer des codes TOTP.

Pour cela, ouvrez le terminal et lancez Google Authenticator avec la commande suivante :

google-authenticator

Google Authenticator vous posera désormais une série de questions. Répondez à ces questions par un oui (y) ou un non (n). Pour la plupart des questions, la réponse par défaut est un oui à moins que vous choisissiez de sélectionner une option non par défaut.

Voici une liste de questions, sous forme abrégée, que l'application vous posera :

  • Rendre les jetons d'authentification basés sur le temps (o/n) : o
  • Mettez à jour votre fichier "~/.google_authenticator" (o/n) : o
  • Interdire les utilisations multiples du même jeton d'authentification ? : oui
  • Augmenter la fréquence de génération de code (o/n) : n
  • Activer la limitation de taux (o/n) : o

Étape 4 : Configurer l'authentificateur sur le téléphone

Dès que vous répondez à la première question d'authentification Google par oui, Google PAM générera un code QR sur votre écran ainsi qu'une clé secrète et quelques codes de récupération. Suivez les étapes ci-dessous pour enregistrer Google Authenticator sur votre téléphone.

Mais d'abord, vous devez télécharger l'application Google Authenticator sur votre smartphone.

Télécharger : Google Authenticator pour Android | iOS (Gratuit)

  1. Cliquez sur le Plus (+) et sélectionnez Scanner un code dans les options du menu.
  2. Pointez la caméra de votre appareil vers le code QR sur l'écran de votre ordinateur pour créer automatiquement une entrée dans l'application.
  3. Alternativement, sélectionnez Entrer une clé de configuration dans le menu Plus (+) et remplissez les champs requis. Pour cela, commencez par donner un nom à votre entrée — ce doit être quelque chose que vous pouvez reconnaître facilement — puis, saisissez la clé secrète affichée sous le code QR sur votre écran.
  4. Enfin, appuyez sur Ajouter pour enregistrer l'entrée.

Par mesure de précaution, copiez tous les codes de récupération affichés sous le code QR et enregistrez-les dans un endroit sûr. Vous pourriez en avoir besoin si vous ne pouvez pas accéder à Google Authenticator sur votre téléphone ou si vous perdez son accès.

Sécuriser l'accès SSH sur Linux avec 2FA

Si vous avez suivi correctement les instructions ci-dessus, vous devriez avoir l'authentification à deux facteurs pour SSH activée sur votre système Linux.

Maintenant, chaque fois que vous souhaitez accéder à ce serveur/appareil via SSH, vous devrez d'abord entrer le mot de passe SSH (premier facteur), puis entrer le code TOTP (deuxième facteur) de l'application Google Authenticator pour authentifier votre connexion. C'est un excellent moyen de gérer et de sécuriser vos connexions SSH à distance contre les intrus sur Internet.