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

Secure Shell, ou SSH, est un protocole réseau cryptographique qui permet un accès sécurisé aux appareils sur un réseau non sécurisé. Il trouve ses 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 puisse ne pas sembler alarmant au départ, cela laisse le système exposé à 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 aborderons en détail l'authentification à deux facteurs, ainsi qu'un guide complet sur la façon d'activer 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 multifacteur (MFA) qui nécessite un deuxième facteur d'authentification, en plus du premier facteur, pour authentifier votre connexion et protéger votre compte contre tout accès non autorisé.

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

Lorsque vous créez un compte sur n'importe quel service en ligne, vous créez un mot de passe pour le sécuriser. Ce mot de passe agit comme votre 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 2FA pour SSH?

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

En général, cette configuration fonctionne parfaitement et vous pouvez vous en tirer dans la plupart des cas. Cependant, lorsque vous vous connectez à un périphérique/serveur contenant 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 procéder consiste à activer l'authentification à deux facteurs sur l'ordinateur serveur/hôte, ce qui protège son accès via SSH et nécessite un deuxième facteur d'authentification pour authentifier la connexion client.

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

Connexe : Comment configurer SSH sur Linux et tester votre configuration

Comment configurer 2FA pour SSH sous Linux

La mise en service de 2FA pour SSH sous Linux implique une série d'étapes. Voici une ventilation de chaque étape pour vous guider tout au long du processus.

Conditions préalables

Il va sans dire que vous avez besoin d'un programme serveur SSH installé sur le système sur lequel vous souhaitez activer 2FA. Pour le vérifier, 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, saisissez :

 sudo systemctl status ssh

Si votre statut indique Actif : actif (en cours d'exécution) , vous pouvez continuer. Mais au cas où cela indiquerait 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 devrez peut-être émettre la commande ci-dessous pour activer le serveur SSH sur votre système.

 sudo ufw allow ssh

Étape 1: Installation de Google Authenticator PAM

Avec le serveur OpenSSH opérationnel sur votre machine hôte, la toute première chose à faire est d'installer un module d'authentification enfichable (PAM), qui offre l'infrastructure nécessaire pour intégrer l'authentification multifacteur 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 à l'aide de codes TOTP (Time-based One-time Password) et dispose d'applications génératrices de code 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 éditer quelques fichiers de configuration.

Nous vous recommandons d'effectuer une sauvegarde de ces fichiers pour éviter de rencontrer des problèmes en cas de problème pendant le processus. Une fois terminé, continuez avec les étapes suivantes:

  1. Ouvrez le fichier de configuration PAM à l'aide de nano . N'hésitez pas à utiliser n'importe quel 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 des fichiers.
  4. Redémarrez le service sshd à l'aide de systemctl.
     sudo systemctl restart sshd.service

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

  1. Ouvrez le fichier à l'aide de nano.
     sudo nano /etc/ssh/sshd_config
  2. Dans ce fichier, recherchez la ligne ChallengeResonseAuthentication no et changez son statut de " no " à " yes ". Cela demandera à SSH de demander un code d'authentification chaque fois que quelqu'un tentera 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 d'Authenticator sous 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 va maintenant vous présenter 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 oui, sauf si vous choisissez de sélectionner une option autre que celle 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 (y/n) : y
  • Mettez à jour votre fichier " ~ / .google_authenticator " (y / n): y
  • Interdire les utilisations multiples du même jeton d'authentification ? : y
  • Augmenter la fréquence de génération de code (y / n): n
  • Activer la limitation de débit (y / n): y

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

Dès que vous répondez à la première question d'authentification Google par un oui, Google PAM génère 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 signe Plus ( + ) et sélectionnez Scanner un code dans les options du menu.
  2. Dirigez l'appareil photo de votre appareil vers le code QR sur l'écran de votre ordinateur pour créer automatiquement une entrée sur l'application.
  3. Vous pouvez également sélectionner Entrer une clé de configuration dans le menu Plus (+) et remplir les entrées requises. Pour cela, d'abord, donnez un nom à votre entrée – cela devrait être quelque chose que vous pouvez facilement reconnaître – puis, tapez 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.

Connexe: Comment passer de Google Authenticator à un nouveau téléphone

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

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

Désormais, chaque fois que vous souhaitez accéder à ce serveur / appareil via SSH, vous devez 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.