Comment activer SSH 2FA sur Ubuntu Server 22.04

Image : tete_escape/Adobe Stock

Lorsque vous ouvrez vos serveurs Linux pour une connexion SSH, il y a toujours une chance que quelqu’un puisse pénétrer dans ce serveur et faire de mauvaises choses. Vous ne voulez pas cela, mais comment empêcher une telle réalité ? Une façon consiste à activer l’authentification à deux facteurs sur le serveur. Une fois activé, seuls ceux qui ont les codes 2FA correctement générés (ainsi que leurs informations d’identification habituelles) auront accès.

Comment configurez-vous SSH 2FA sur votre serveur Ubuntu ? Laisse moi te montrer.

VOIR : Plus de 40 termes open source et Linux que vous devez connaître (TechRepublic Premium)

Ce dont vous aurez besoin

Les seules choses dont vous aurez besoin pour que cela fonctionne sont :

  • Une instance en cours d’exécution d’Ubuntu Server 22.04.
  • Un utilisateur avec des privilèges sudo.

C’est tout – faisons de la magie 2FA.

Comment installer le logiciel nécessaire

La première chose à faire est d’installer un seul package : Google Authenticator. Il s’agit d’un outil en ligne de commande qui permet d’ajouter une authentification 2FA sur votre serveur.

Connectez-vous à votre instance Ubuntu et lancez la commande :

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

Vous devrez ensuite exécuter la commande pour créer une clé secrète. Cette commande est :

google-authenticator

Il vous sera demandé si vous souhaitez que les jetons d’authentification soient basés sur le temps, ce que vous souhaitez. Taper y et appuyez sur Entrée sur votre clavier. Il vous sera alors présenté un code QR qui pourra être scanné par votre application 2FA.

Il y a un hic avec ceci : si vous êtes connecté directement au terminal de la machine physique en question, vous ne pourrez peut-être pas voir l’intégralité du code. Votre meilleur pari est de vous connecter via SSH, afin de pouvoir redimensionner le terminal pour afficher l’intégralité du code QR (Figure A

Figure A

Un code QR (flou) généré par l’application google-authenticator.

Scannez le code QR avec votre application 2FA (telle que Authy) ou tapez la clé secrète si le code est trop long pour que l’application puisse le scanner et appuyez sur Entrée. Vous serez ensuite invité à saisir le code de l’application afin que le compte puisse être confirmé. Une fois confirmé, vous verrez les codes d’urgence pour 2FA. Assurez-vous de les copier et de les enregistrer dans un endroit sûr tel qu’un gestionnaire de mots de passe, puis tapez y lorsque vous êtes invité à mettre à jour le fichier ~/.google_authenticator. Ensuite, vous serez invité à interdire plusieurs utilisations du même jeton d’authentification. allez-y et tapez y accepter cela, car cela peut aider à prévenir les attaques de l’homme du milieu. Lorsque vous y êtes invité, tapez y pour la dernière question pour autoriser jusqu’à 30 secondes de décalage temporel entre le serveur d’authentification et le client.

Vous souhaiterez également activer la limitation du débit lorsque vous y serez invité en tapant y, ce qui limite les attaquants à pas plus de trois tentatives de connexion toutes les 30 secondes.

Comment configurer le démon SSH pour 2FA

Maintenant que 2FA est installé et configuré, nous devons également configurer le démon SSH pour l’utiliser. Ouvrez le fichier de configuration du démon SSH avec :

sudo nano /etc/ssh/sshd_config

Tout d’abord, localisez la ligne suivante et assurez-vous qu’elle est définie sur oui :

UsePAM yes

Ensuite, localisez la ligne suivante et remplacez non par oui :

KbdInteractiveAuthentication no

Enregistrez et fermez le fichier.

Remarque : dans les versions d’Ubuntu antérieures à la 22.04, la ligne ci-dessus sera :

ChallengeResponseAuthentication yes

Ensuite, ouvrez le fichier de configuration PAM avec :

sudo nano /etc/pam.d/sshd

Sous la ligne @include common-auth, ajoutez la ligne suivante :

auth   required   pam_google_authenticator.so

Enregistrez et fermez le fichier.

Redémarrez le démon SSH avec :

sudo systemctl restart sshd

Ensuite, ouvrez une nouvelle fenêtre de terminal et essayez de vous connecter à la machine distante. Vous serez d’abord invité à saisir votre mot de passe utilisateur, puis le code 2FA. Après avoir tapé avec succès le code 2FA, vous devriez être autorisé à accéder au serveur.

Comment activer 2FA avec l’authentification par clé SSH

Si vous utilisez l’authentification par clé SSH (et vous devriez le faire), vous devez franchir une étape supplémentaire. Sur le serveur, ouvrez le fichier de configuration du démon SSH avec :

sudo nano /etc/ssh/sshd_config

Au bas de ce fichier, ajoutez la ligne suivante :

AuthenticationMethods publickey,keyboard-interactive

Enregistrez et fermez le fichier.

Redémarrez SSH avec :

sudo systemctl restart sshd

Une fois que vous avez vérifié que l’authentification par clé SSH fonctionne, vous pouvez désactiver l’authentification par mot de passe en ouvrant la configuration SSH avec :

sudo nano /etc/ssh/sshd_config

Localisez la ligne suivante :

PasswordAuthentication yes

change ça en :

PasswordAuthentication no

Redémarrez SSH avec :

sudo systemctl restart sshd

Félicitations, vous venez de configurer Ubuntu Server 22.04 pour un processus de connexion SSH beaucoup plus sécurisé. Assurez-vous simplement que vous testez via une deuxième fenêtre de terminal, afin que vous puissiez rester connecté à l’original en cas de problème (et vous pouvez réinitialiser les configurations). Profitez de cette couche de sécurité supplémentaire.

Abonnez-vous à TechRepublic’s How To Make Tech Work sur YouTube pour tous les derniers conseils techniques pour les professionnels de Jack Wallen.