Pour configurer l'authentification à deux facteurs pour l'utilisateur root, nous utiliserons Google Authenticator. Cette application est disponible sur toutes les plateformes et dépend du temps. Ainsi, même si l'accès aux services Google est impossible, l'essentiel est que l'heure soit synchronisée, alors tout fonctionnera correctement.
Dans notre exemple, nous veillerons à ce qu'un utilisateur standard se connecte à ssh en utilisant un mot de passe comme d'habitude, mais lorsque vous essayez d'élever les privilèges vers l'utilisateur root à l'aide de la commande su -, le mot de passe est d'abord requis, puis le code de Google Authenticator. application.
Dans le même temps, nous interdirons la connexion à ssh en tant qu'utilisateur root afin de forcer l'utilisation de l'authentification à deux facteurs pour cet utilisateur.
1. Installons les packages nécessaires :
apt install libpam-google-authenticator
2. Faisons la première configuration :
./google-authenticator
2.1 En conséquence, vous serez invité à saisir le code de l'application, comme alternative à l'application Google, vous pouvez utiliser FreeOTP .
2.2 Configurer le service SSH :
nano /etc/ssh/sshd_config
PermitRootLogin no
UsePAM yes
ChallengeResponseAuthentication yes
Redémarrons le service pour que les paramètres prennent effet :
systemctl restart ssh
2.3 Configurer une demande de code après avoir entré un mot de passe pour la commande su -
Ajoutons des lignes pour que le fichier ressemble à ceci :
nano /etc/pam.d/su
...
auth sufficient pam_rootok.so
...
auth required pam_unix.so no_warn try_first_pass
auth required pam_google_authenticator.so
...
3. Terminé, vous pouvez vérifier le fonctionnement, après vous être connecté en tant qu'utilisateur normal et avoir essayé de passer en root à l'aide de la commande su, après avoir entré le mot de passe, vous serez invité à saisir un code de l'application.
Aussi:
3.1 Si vous souhaitez demander du code lorsque vous essayez de vous connecter à ssh, vous devrez alors ajouter ces lignes au fichier :
nano /etc/pam.d/sshd
...
@include common-auth
...
auth required pam_unix.so no_warn try_first_pass
auth required pam_google_authenticator.so
...
Si vous utilisez l'utilisateur root, autorisez la connexion dans les paramètres ssh ; si vous utilisez un autre utilisateur, exécutez la commande :
./google-authenticator
en tant qu'utilisateur régulier et configurez-le de la même manière que nous avons décrit pour l'utilisateur root.