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 didacticiel, vous apprendrez à configurer l'authentification à deux facteurs sur un serveur Ubuntu à l'aide de Google Authenticator et SSH.
Étape 1: Prérequis
- Un serveur Ubuntu 14.04 (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 basées sur TOTP.
Étape 2: installation de la bibliothèque Google Authenticator
Nous devons installer le module Google Authenticator Library disponible pour Ubuntu qui permettra au serveur de lire et de valider les codes. Exécutez les commandes suivantes.
sudo apt-get update
sudo apt-get install libpam-google-authenticator
Pour configurer le module, exécutez simplement la commande suivante.
google-authenticator
Une fois la commande exécutée, certaines questions vous seront posées. La première question serait:
Do you want authentication tokens to be time-based (y/n)
Appuyez sur y
et 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 y
lorsque vous êtes invité à mettre à jour le .google_authenticator
fichier, 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 l'étape 3 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 sshd
fichier.
sudo nano /etc/pam.d/sshd
Trouvez la ligne @include common-auth
et commentez-la comme 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 + X
pour enregistrer et quitter.
Ensuite, entrez la commande suivante pour modifier le sshd_config
fichier.
sudo nano /etc/ssh/sshd_config
Recherchez le terme ChallengeResponseAuthentication
et 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_authenticator
fichier sous le répertoire personnel de l'utilisateur après vous être connecté via la console Vultr.
Conclusion
Une authentification à plusieurs facteurs améliore considérablement la sécurité de votre serveur et vous permet de contrecarrer les attaques par force brute courantes.
Autres versions