SSH est un «Secure Shell Protocol» utilisé pour connecter et gérer des systèmes Linux distants en toute sécurité sur un réseau non sécurisé. Il est très utile pour les administrateurs système d'effectuer des tâches quotidiennes sur le serveur distant. La sécurisation d'un serveur SSH est donc une partie essentielle de tout administrateur système.
Par défaut, vous pouvez vous connecter en SSH avec un mot de passe ou en utilisant la clé privée. Cela signifie qu'il ne s'agit que d'une authentification à un seul facteur. C'est donc une bonne idée d'implémenter une authentification multifacteur dans le serveur SSH pour ajouter une couche de sécurité supplémentaire. Dans l'authentification multifacteur, vous devrez fournir votre mot de passe d'utilisateur système et un autre mot de passe généré sur un appareil mobile. Cela améliorera considérablement la sécurité de votre serveur.
Dans ce didacticiel, nous allons vous montrer comment configurer l'authentification multifacteur pour SSH sur Ubuntu 20.04 VPS.
Prérequis
- Un VPS Ubuntu 20.04 (nous utiliserons notre plan SSD 2 VPS)
- Accès au compte utilisateur root (ou accès à un compte administrateur avec privilèges root)
Étape 1 :Connectez-vous au serveur et mettez à jour les packages du système d'exploitation du serveur
Tout d'abord, connectez-vous à votre serveur Ubuntu 20.04 via SSH en tant qu'utilisateur root :
ssh root@IP_Address -p Port_number
Vous devrez remplacer "IP_Address" et "Port_number" par l'adresse IP et le numéro de port SSH respectifs de votre serveur. De plus, remplacez "root" par le nom d'utilisateur du compte administrateur si nécessaire.
Avant de commencer, vous devez vous assurer que tous les packages du système d'exploitation Ubuntu installés sur le serveur sont à jour. Vous pouvez le faire en exécutant les commandes suivantes :
apt-get update -y apt-get upgrade -y
Étape 2 :Installer Google Authenticator
Nous utiliserons Google Authenticator pour l'authentification multifacteur. Vous devrez donc installer le module Google Authenticator PAM sur votre système. Vous pouvez l'installer en exécutant la commande suivante :
apt-get install libpam-google-authenticator -y
Une fois le package installé, lancez Google Authenticator à l'aide de la commande suivante :
google-authenticator
Lors de l'installation, la question suivante vous sera posée :
Do you want authentication tokens to be time-based (y/n) y Warning: pasting the following URL into your browser exposes the OTP secret to Google: https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@ubuntu2004%3Fsecret%3D4XXQ2QA6FRV72SDM2JWSZTQJE4%26issuer%3D
Appuyez sur y et appuyez sur Entrée continuer. Vous devriez voir un code QR dans l'écran suivant :
Répondez à toutes les questions et appuyez sur Entrée pour terminer le processus comme indiqué ci-dessous :
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 By default, a new token is generated every 30 seconds by the mobile app. 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. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) y 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) 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
Étape 3 :Installer l'application Google Authenticator
Ensuite, vous devrez installer l'application Google Authenticator sur votre smartphone. Une fois installé, ouvrez Google Authenticator sur votre mobile et scannez le code QR ci-dessus. Une fois le code QR scanné, vous devriez voir un mot de passe à usage unique à six chiffres sur votre téléphone, comme indiqué ci-dessous :
Ce mot de passe expirera dans les 30 secondes. Vous devrez donc ouvrir l'application Google Authenticator et voir un nouveau mot de passe pour vous connecter au serveur Ubuntu via SSH.
Vous pouvez également voir la clé secrète, le code de vérification et le code à gratter d'urgence dans la sortie ci-dessus. Il est recommandé de le conserver dans un endroit sûr pour une utilisation ultérieure.
Your new secret key is: 4XXQ2QA6FRV72SDM2JWSZTQJE4 Your verification code is 423832 Your emergency scratch codes are: 96469497 84504151 61871048 79931657 71052210
Étape 4 :Configurer SSH pour utiliser Google Authenticator
Ensuite, vous devrez également configurer SSH pour utiliser Google Authenticator. Vous pouvez le configurer en éditant le fichier /etc/ssh/sshd_config :
nano /etc/ssh/sshd_config
Modifiez les lignes suivantes :
UsePAM yes ChallengeResponseAuthentication yes
Enregistrez et fermez le fichier lorsque vous avez terminé. Redémarrez ensuite le service SSH pour appliquer la configuration :
systemctl restart sshd
Ensuite, vous devrez éditer le fichier /etc/pam.d/sshd et définir les règles PAM pour le service SSH :
nano /etc/pam.d/sshd
Ajoutez la ligne suivante après @include common-auth :
auth required pam_google_authenticator.so
Enregistrez et fermez le fichier.
Étape :5 Tester l'authentification à deux facteurs
À ce stade, votre serveur SSH est maintenant configuré avec une authentification multifacteur. Il est temps de le connecter et de le tester.
Sur le système distant, ouvrez votre terminal et connectez-vous à votre serveur via SSH comme indiqué ci-dessous :
ssh root@ssh-server-ip
Il vous sera demandé de fournir votre mot de passe système et le code de vérification généré par Google Authenticator. Fournissez votre mot de passe système affiché dans l'application Google Authenticator et appuyez sur Entrée pour vous connecter au serveur comme indiqué ci-dessous :
Toutes nos félicitations! votre serveur SSH est maintenant sécurisé avec une authentification multi-facteurs..
Bien sûr, vous n'avez pas besoin de configurer l'authentification multi-facteurs pour SSH sur Ubuntu VPS si vous utilisez l'un de nos services d'hébergement géré, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de configurer l'authentification multi-facteurs pour SSH. sur Ubuntu, pour vous. 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 configuration de l'authentification multifacteur pour SSH sur Ubuntu, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.