Recherche de site Web

Comment configurer l'authentification à deux facteurs pour SSH sur Fedora


Chaque jour, de nombreuses failles de sécurité sont signalées et mettent nos données en danger. Bien que SSH soit un moyen sécurisé d'établir une connexion à distance à un système Linux, un utilisateur inconnu peut néanmoins accéder à votre machine Linux s'il vole vos clés SSH, même si vous désactivez les mots de passe ou autorisez uniquement les connexions SSH via clés publiques et privées.

Dans cet article, nous expliquerons comment configurer l'authentification à deux facteurs (2FA) pour SSH sur la distribution Fedora Linux en utilisant Google Authenticator pour accéder un système Linux distant de manière plus sécurisée en fournissant un numéro TOTP (The Time-based One-time Password) généré aléatoirement par une application d'authentification sur un appareil mobile.

Lire aussi : Comment configurer l'authentification à deux facteurs pour les connexions SSH dans CentOS et Debian

Notez que vous pouvez utiliser n'importe quelle application d'authentification bidirectionnelle pour votre appareil mobile compatible avec l'algorithme TOTP. Il existe de nombreuses applications gratuites disponibles pour Android ou IOS qui prennent en charge TOTP et Google Authenticator, mais cet article utilise Google Authenticator comme exemple.

Installer Google Authenticator sur Fedora

Tout d'abord, installez l'application Google Authenticator sur votre serveur Fedora à l'aide de la commande dnf suivante.

sudo dnf install -y google-authenticator

Une fois Google Authenticator installé, vous pouvez désormais exécuter l'application.

google-authenticator

L'application vous pose un certain nombre de questions. Les extraits suivants vous montrent comment répondre pour une configuration raisonnablement sécurisée.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

L'application vous fournit une clé secrète, un code de vérification et des codes de récupération. Conservez ces clés dans un endroit sûr, car ces clés sont le seul moyen d'accéder à votre serveur si vous perdez votre appareil mobile.

Configuration de l'authentification du téléphone mobile

Sur votre téléphone mobile, accédez à la boutique d'applications Google Play ou iTunes, recherchez Google Authenticator et installez l'application.

Ouvrez maintenant l'application Google Authenticator sur votre téléphone mobile et scannez le code QR affiché sur l'écran du terminal Fedora. Une fois l'analyse du code QR terminée, vous obtiendrez un numéro généré aléatoirement par l'application d'authentification et utiliserez ce numéro à chaque fois que vous vous connecterez à distance à votre serveur Fedora.

Terminer la configuration de Google Authenticator

L'application Google Authenticator pose d'autres questions et l'exemple suivant montre comment y répondre pour configurer une configuration sécurisée.

Vous devez maintenant configurer SSH pour utiliser la nouvelle authentification bidirectionnelle comme expliqué ci-dessous.

Configurer SSH pour utiliser Google Authenticator

Pour configurer SSH afin d'utiliser l'application authentificateur, vous devez d'abord disposer d'une connexion SSH fonctionnelle utilisant des clés SSH publiques, car nous désactiverons les connexions par mot de passe.

Ouvrez le fichier /etc/pam.d/sshd sur votre serveur.

sudo vi /etc/pam.d/sshd

Commentez la ligne auth substack password-auth dans le fichier.

#auth       substack     password-auth

Ensuite, placez la ligne suivante à la fin du fichier.

auth sufficient pam_google_authenticator.so

Enregistrez et fermez le fichier.

Ensuite, ouvrez et modifiez le fichier /etc/ssh/sshd_config.

sudo vi /etc/ssh/sshd_config

Recherchez la ligne ChallengeResponseAuthentication et remplacez-la par oui.

ChallengeResponseAuthentication yes

Recherchez la ligne PasswordAuthentication et remplacez-la par no.

PasswordAuthentication no

Ensuite, placez la ligne suivante à la fin du fichier.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Enregistrez et fermez le fichier, puis redémarrez SSH.

sudo systemctl restart sshd

Test de l'authentification à deux facteurs sur Fedora

Essayez maintenant de vous connecter à votre serveur à distance, il vous demandera de saisir un code de vérification.

ssh [email 

Verification code:

Le code de vérification est généré aléatoirement sur votre téléphone mobile par votre application d'authentification. Étant donné que le code généré change toutes les quelques secondes, vous devez le saisir rapidement avant d'en créer un nouveau.

Si vous entrez un code de vérification incorrect, vous ne pourrez pas vous connecter au système et vous obtiendrez une erreur d'autorisation refusée suivante.

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
Conclusion

En mettant en œuvre cette authentification bidirectionnelle simple, vous avez ajouté une couche de sécurité supplémentaire à votre système, ce qui rend plus difficile pour un utilisateur inconnu d'accéder à votre serveur.