Un bastion SSH sert de point d’entrée sécurisé pour accéder à vos serveurs. En y ajoutant l’authentification à deux facteurs (2FA) via Google Authenticator, vous renforcez significativement la sécurité de vos connexions SSH.
Prérequis
- Serveur Linux (Debian, Ubuntu, RHEL/CentOS) dédié en bastion
- Client SSH avec clavier pour OTP
- Un utilisateur non-root pour l’administration
1. Installation des paquets
sudo apt update
sudo apt install libpam-google-authenticator
2. Configuration d’OTP pour l’utilisateur bastion
Connectez-vous en tant que l’utilisateur :
google-authenticator
Répondez aux questions pour générer le secret, le QR code et configurer le délai de validité des OTP.
3. Activer PAM pour SSH
Éditez /etc/pam.d/sshd
et ajoutez en haut :
auth required pam_google_authenticator.so nullok
4. Configurer SSHD
Ouvrez /etc/ssh/sshd_config
et réglez :
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Assurez-vous que UsePAM yes
est activé.
Rechargez le service SSH :
sudo systemctl reload sshd
5. Tester le bastion
Lors de la connexion :
ssh user@bastion.example.com
Vous devrez fournir votre clé SSH, puis saisir l’OTP généré par Google Authenticator.
6. Bonnes pratiques
- Restreindre l’accès SSH par IP sur le bastion.
- Faire un backup des secrets OTP sous forme chiffrée.
- Désactiver l’accès direct aux serveurs backend, n’autoriser que le bastion.
Conclusion
En combinant un bastion SSH et Google Authenticator, vous bénéficierez d’un accès à votre infrastructure à la fois pratique et hautement sécurisé, réduisant drastiquement le risque d’accès non autorisé.