Image

Base de connaissances → Configuration de l'authentification à deux facteurs en SSH à l'aide de Google Authenticator sur Centos 7

[Serveurs virtuels]
Date de publication: 29.11.2022

Le service SSH représente le plus grand nombre d'attaques par devinette de mot de passe, vous venez de démarrer votre serveur et après quelques heures dans les journaux, vous pouvez voir les tentatives de connexion à partir d'adresses IP inconnues. Pour réduire le nombre de tentatives, nous vous recommandons immédiatement de modifier le numéro de port dans les paramètres sshd. Bien sûr, vous devez spécifier un mot de passe d'une bonne complexité en utilisant des lettres, des symboles et des chiffres, sensibles à la casse. Pour les serveurs Linux, en règle générale, vous devrez vous souvenir de 2 mots de passe, 1 pour un utilisateur normal, le second pour root. S'il y a plusieurs serveurs, ils recourent généralement à diverses applications qui stockeront les paramètres de session (hôte, identifiant et mot de passe), ce qui est tout à fait normal jusqu'à ce qu'un attaquant accède à votre poste de travail. Dans tous les cas, il existe des sites infectés, des logiciels, etc. Il s'avère que vous ne pouvez pas être complètement sûr que ces données sont sûres et disponibles uniquement pour vous. Il existe une solution pour ce cas.

Autorisation à deux facteurs - une application sur votre téléphone est ajoutée au login et au mot de passe, qui, en fonction de l'heure et d'une clé unique, génère une question et une réponse à la question sous forme de chiffres. Après avoir entré votre identifiant et votre mot de passe, vous serez invité à entrer un code de vérification, accessible dans l'application Google Authenticator.

Installez les packages nécessaires

yum install pam pam-devel google-authenticator 

Installer l'application mobile

 

Paramètre

Par défaut, il est préférable de désactiver la connexion de l'utilisateur dans les paramètres sshd, donc si vous venez de commencer à configurer un nouveau serveur, créez un utilisateur. définissez-lui un mot de passe et connectez-vous avec la commande:

adduser username
passwd username
su username


Exécutez la commande sous l'utilisateur pour lequel vous configurez l'authentification à deux facteurs:

google-authenticator

Appuyez sur "y" dans le premier message, où il vous sera demandé si vous souhaitez mettre à jour le fichier ./google_authenticator. Lorsque vous êtes invité à empêcher une utilisation multiple, appuyez à nouveau sur "y" pour empêcher un autre utilisateur d'utiliser votre code. Pour le reste des options, appuyez sur 'y' car elles améliorent toutes les performances de ce logiciel.

Assurez-vous d'avoir copié la clé secrète et les codes de récupération d'urgence sur une feuille de papier. Gardez ces informations hors ligne, car même si quelqu'un trouve ces informations, vous devez toujours connaître l'hôte, le nom d'utilisateur et le mot de passe pour entrer.

Configurons maintenant PAM pour appliquer tous nos paramètres au service SSH, ces actions doivent déjà être effectuées par l'utilisateur root

vi /etc/pam.d/sshd

Ajoutez des lignes au tout début du fichier pour qu'il ressemble à ceci:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so

Les lignes restantes qui étaient dans le fichier sont laissées, elles vont en dessous sans modifications. Enregistrons le fichier et passons à la configuration du service SSH.

vi /etc/ssh/sshd_config

Recherchez le paramètre "ChallengeResponseAuthentication no" et remplacez "no" par "yes". Enregistrez les modifications et redémarrez le service.

service sshd restart

Configurez maintenant l'application sur votre appareil mobile. Trouvez l'option "entrer manuellement la clé" et cliquez dessus. Entrez la clé secrète que vous avez notée précédemment et enregistrez. Maintenant, un code apparaîtra que vous devrez entrer dans le champ Code de vérification après avoir entré le mot de passe.

Modifications:

  • Modification de la séquence d'entrée :

Nous définissons spécifiquement la séquence login - mot de passe, puis le code de vérification. Si vous souhaitez saisir d'abord le code de l'application, puis le mot de passe, supprimez simplement la première ligne pour que le fichier ressemble à ceci:

#%PAM-1.0
auth required pam_google_authenticator.so
  • Authentification à deux facteurs lorsque vous êtes connecté en tant que root

Par exemple, vous souhaitez vous connecter au serveur en tant qu'utilisateur normal avec un identifiant et un mot de passe, et lorsque vous entrez la commande su - entrez le mot de passe root et le code de l'application. Exécutez l'application ./google_authenticator en tant que root comme vous l'avez fait auparavant. Configurez l'application mobile avec le nouveau code et ajoutez au fichier:

vi /etc/pam.d/su

au tout début de la ligne:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so


Terminé, le service n'a pas besoin d'être redémarré. Désormais, lorsque vous essayez de vous connecter en tant que root, la commande nécessitera un code de vérification de l'application.


PS Nous vous recommandons de vérifier dans une autre session ssh pour éviter les erreurs, vous aurez la possibilité de revenir en arrière et de le réparer.





Aucun commentaire pour l'instant