Dans ce didacticiel, nous décrirons les étapes nécessaires pour configurer l'authentification à deux facteurs (2FA) à l'aide de l'authentificateur Google sur un VPS Ubuntu 16.04. Cette application comprend des implémentations de générateurs de codes d'accès uniques pour plusieurs plates-formes mobiles. Cette méthode ajoute une autre couche de protection à votre serveur en ajoutant une étape supplémentaire à la procédure de connexion de base.
1. Connectez-vous via SSH
Connectez-vous à votre serveur via SSH en tant qu'utilisateur root
ssh root@IP_Address
2. Mettre à jour les packages système
Mettez à jour tous les packages installés :
apt-get update && apt-get upgrade
3. Installer Google Authenticator
Installez Google Authenticator paquet.
apt-get install libpam-google-authenticator
Une fois le package installé, exécutez le programme google-authenticator pour créer une clé pour l'utilisateur avec lequel vous vous connecterez. Le programme peut générer deux types de jetons d'authentification - basés sur le temps et jetons à usage unique . Les mots de passe temporels changent de manière aléatoire à un certain moment, et les mots de passe à usage unique sont valides pour une seule authentification.
4. Exécutez Google Authenticator
Dans notre cas, nous utiliserons des mots de passe temporels. Exécutez le programme pour créer les clés
google-authenticator
Il vous sera demandé si vous souhaitez que l'authentification soit basée sur le temps.
Do you want authentication tokens to be time-based (y/n) y
Un grand code QR sera généré dans votre terminal. Vous pouvez scanner le code avec l'application d'authentification sur votre téléphone ou tablette Android/iOS/Windows ou saisir la clé secrète générée à l'écran.
Des codes à gratter d'urgence seront également générés. Vous pouvez utiliser ces codes pour vous authentifier au cas où vous perdriez votre appareil mobile.
Your emergency scratch codes are: 80463533 68335920 89221348 12489672 11144603
Enregistrez les paramètres d'authentification pour l'utilisateur root en répondant OUI à la question suivante
Do you want me to update your "/root/.google_authenticator" file (y/n) y
5. Configurez l'authentificateur pour générer des mots de passe à usage unique.
Ensuite, vous pouvez configurer l'authentificateur pour générer des mots de passe à usage unique. Comme ils durent 30 secondes, tous les mots de passe générés peuvent être utilisés une seule fois.
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
Vous pouvez utiliser le paramètre suivant si vous rencontrez des problèmes de synchronisation de l'heure sur vos appareils. Nous n'utiliserons donc pas cette option
By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n
Le paramètre suivant empêche les attaques par force brute. Vous n'aurez que trois chances toutes les 30 secondes d'entrer le bon mot de passe.
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
L'application Google Authenticator est maintenant configurée et l'étape suivante consiste à configurer les paramètres d'authentification dans openSSH. Pour cela, ouvrez le fichier « /etc/pam.d/sshd » et ajoutez la ligne suivante à la fin du fichier :
# vim /etc/pam.d/sshd auth required pam_google_authenticator.so
Enregistrez les modifications, ouvrez le fichier "/etc/ssh/sshd_config" et activez l'authentification Challenge Response.
# vim /etc/ssh/sshd_config ChallengeResponseAuthentication yes
6. Redémarrez le serveur SSH
Enregistrez le fichier et redémarrez le serveur SSH pour que les modifications prennent effet.
systemctl restart ssh
Si vous avez suivi attentivement ce tutoriel, l'authentification à deux facteurs est activée sur votre serveur et chaque fois que vous essayez de vous connecter à votre VPS Ubuntu via SSH, vous devrez entrer votre mot de passe d'utilisateur et le code de vérification généré par l'application Google Authentication sur votre appareil mobile. .
Bien sûr, vous n'êtes pas obligé de sécuriser SSH en utilisant l'authentification à deux facteurs sur Ubuntu 16.04, si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de sécuriser SSH en utilisant l'authentification à deux facteurs. sur Ubuntu 16.04. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS. Si vous avez aimé cet article sur la sécurisation de SSH à l'aide de l'authentification à deux facteurs sur Ubuntu 16.04, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons ci-dessous ou laissez une réponse dans la section des commentaires. Merci.
Une nouvelle version est disponible ici :Configurer l'authentification multifacteur pour SSH sur Ubuntu 20.04.