Il existe plusieurs façons de se connecter à un serveur via SSH. Les méthodes incluent la connexion par mot de passe, la connexion par clé et l'authentification à deux facteurs.
L'authentification à deux facteurs est un bien meilleur type de protection. Dans le cas où votre ordinateur serait compromis, l'attaquant aurait toujours besoin d'un code d'accès pour se connecter.
Dans ce tutoriel, vous apprendrez comment configurer l'authentification à deux facteurs sur Debian 9 à l'aide de Google Authenticator et SSH.
Conditions préalables
- Un serveur Debian 9 (ou plus récent).
- Un utilisateur non root avec accès sudo.
- Un téléphone intelligent (Android ou iOS) avec l'application Google Authenticator installée. Vous pouvez également utiliser Authy ou toute autre application prenant en charge les connexions à mot de passe unique basé sur le temps (TOTP).
Étape 1: installation de la bibliothèque Google Authenticator
Nous devons installer le module Google Authenticator Library disponible pour Debian, qui permettra au serveur de lire et de valider les codes.
sudo apt update
sudo apt install libpam-google-authenticator -y
Configurez le module.
google-authenticator
Une fois la commande exécutée, certaines questions vous seront posées. La première question seraDo you want authentication tokens to be time-based (y/n)
Appuyez sur Yet vous obtiendrez un code QR, une clé secrète, un code de vérification et des codes de sauvegarde d'urgence.
Retirez votre téléphone et ouvrez l'application Google Authenticator. Vous pouvez soit scanner le code QR, soit ajouter la clé secrète pour ajouter une nouvelle entrée. Une fois que vous avez fait cela, notez les codes de sauvegarde et conservez-les quelque part. Si votre téléphone est égaré ou endommagé, vous pouvez utiliser ces codes pour vous connecter.
Pour les autres questions, appuyez sur Ylorsque vous êtes invité à mettre à jour le .google_authenticatorfichier, Yà interdire plusieurs utilisations du même jeton, Nà augmenter la fenêtre de temps et Yà activer la limitation de débit.
Vous devrez répéter cette étape pour tous les utilisateurs de votre machine, sinon ils ne pourront pas se connecter une fois que vous aurez terminé ce didacticiel.
Maintenant que tous les utilisateurs de votre machine ont configuré leur application d'authentification Google, il est temps de configurer le SSH pour utiliser cette méthode d'authentification par rapport à la méthode actuelle.
Entrez la commande suivante pour modifier le sshdfichier.
sudo nano /etc/pam.d/sshd
Trouvez la ligne @include common-authet commentez-la, comme ce qui est illustré ci-dessous.
# Standard Un*x authentication.
#@include common-auth
Ajoutez la ligne suivante au bas de ce fichier.
auth required pam_google_authenticator.so
Appuyez sur CTRL+ Xpour enregistrer et quitter.
Ensuite, entrez la commande suivante pour modifier le sshd_configfichier.
sudo nano /etc/ssh/sshd_config
Recherchez le terme ChallengeResponseAuthenticationet définissez sa valeur sur yes. Recherchez également le terme PasswordAuthentication, supprimez-le et modifiez sa valeur en no.
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
L'étape suivante consiste à ajouter la ligne suivante au bas du fichier.
AuthenticationMethods publickey,keyboard-interactive
Enregistrez et fermez le fichier en appuyant sur CTRL+ X. Maintenant que nous avons configuré le serveur SSH pour utiliser Google Authenticator, il est temps de le redémarrer.
sudo service ssh restart
Essayez de vous reconnecter au serveur. Cette fois, il vous sera demandé votre code d'authentification.
ssh user@serverip
Authenticated with partial success.
Verification code:
Entrez le code que votre application génère et vous serez connecté avec succès.
Remarque
Si vous perdez votre téléphone, utilisez les codes de sauvegarde de l'étape 2. Si vous avez perdu vos codes de sauvegarde, vous pouvez toujours les trouver dans le .google_authenticatorfichier sous le répertoire personnel de l'utilisateur après vous être connecté via la console Vultr.
Conclusion
Une authentification à deux facteurs améliore considérablement la sécurité de votre serveur et vous permet de contrecarrer les attaques par force brute courantes.