SSH sécurisé via TOTP¶
1. Mise à jour du système¶
Avant de commencer, assurez-vous que votre système est à jour :
2. Nettoyer l’ancienne configuration¶
Supprimez l’ancien fichier de secrets s’il existe :
3. Installer les outils nécessaires¶
Description des paquets :
- libpam-oath : permet l’authentification OTP via PAM
- oathtool : génère et vérifie les codes OTP
- qrencode : crée un QR code pour l’application d’authentification
Information
Qrencode doit être utilisé sur une machine possédant une interface graphique. Pas forcément le serveur.
4. Créer un nouveau secret pour l’utilisateur "etudiant"¶
sudo -i
openssl rand -hex 20 > /etc/security/users.oath
echo "HOTP/T30/6 etudiant - $(cat /etc/security/users.oath)" > /etc/security/users.oath
5. Sécuriser le fichier de secrets¶
6. Configurer PAM pour SSH¶
Éditez le fichier PAM de SSH :
Ajoutez ou modifiez les lignes suivantes :
#@include common-auth
auth required pam_unix.so nullok_secure
auth required pam_oath.so usersfile=/etc/security/users.oath window=30 digits=6
Bastion
Pour exclure un utilisateur du système TOTP, ajoutez cette ligne avant les précédentes :
Sécurité
Cet utilisateur pourra donc se connecter sans TOTP, il faut donc le sécurisé avec un mot de passe fort ou une clef SSH.
7. Configurer SSH pour utiliser TOTP¶
Éditez le fichier de configuration SSH :
Modifiez ou ajoutez ces lignes :
Redémarrez ensuite le service SSH :
8. Récupérer la clé OTP pour l’application¶
- Cette commande permet de vérifier que le code OTP fonctionne correctement.
9. Générer un QR code à scanner¶
Remplacez TA_CLE_BASE32
par la clé affichée précédemment :
- Scannez le QR code avec une application OTP comme Google Authenticator ou FreeOTP.
10. Vérifier la synchronisation de l’heure¶
Désyncronisation
Les OTP dépendent de l’heure : vérifiez que le serveur et votre téléphone sont bien synchronisés.
11. Tester la connexion SSH¶
- Vous serez invité à saisir votre mot de passe puis le code OTP affiché dans votre application d’authentification.