Sécurité SSH : verrouiller les tentatives de connexion échouées avec pam_faillock
Le module pam_tally2
, autrefois utilisé pour verrouiller les comptes d’utilisateurs après un certain nombre de tentatives de connexion SSH infructueuses, a été déprécié et remplacé par pam_faillock
dans les distributions basées sur RHEL et d’autres distributions Linux modernes, en raison de plus de flexibilité et d’options de sécurité.
Auparavant, le module pam_tally2
était chargé de comptabiliser les tentatives de connexion infructueuses et de verrouiller les comptes. Cependant, dans le cadre des améliorations de la sécurité, pam_faillock
est devenu la norme pour la gestion des tentatives de connexion infructueuses dans les nouvelles versions de Linux en offrant une meilleure intégration et plus d’options de configuration.
Passage de l’pam_tally2 à l’pam_faillock
Bien que pam_tally2
se composait de deux parties – pam_tally2.so
et la commande pam_tally2
– elle a été progressivement supprimée au profit de pam_faillock
, qui est conçue pour gérer les tentatives de connexion de manière plus sûre et plus flexible.
pam_faillock
offre des fonctionnalités similaires, mais avec des améliorations telles que :
- Amélioration de la journalisation et du signalement des tentatives infructueuses.
- Meilleure gestion des politiques de verrouillage de compte.
- Prise en charge des limites configurables en cas d’échec de connexion et du déverrouillage automatique du compte après un délai d’expiration.
Cet article explique comment configurer les verrouillages de compte SSH à l’aide du module pam_faillock
après un certain nombre de tentatives de connexion infructueuses.
Comment verrouiller et déverrouiller des comptes d’utilisateurs avec pam_faillock
Ouvrez les deux fichiers de configuration PAM /etc/pam.d/password-auth
et /etc/pam.d/sshd
, en fonction de votre système et du service que vous configurez.
sudo vi /etc/pam.d/password-auth
sudo vi /etc/pam.d/sshd
Ajoutez les lignes suivantes au début de la section d’authentification
pour configurer les stratégies de tentative de connexion échouée :
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200
auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=1200
Ajoutez la ligne suivante à la section du compte
pour activer la gestion du compte en cas d’échec de connexion :
account required pam_faillock.so
Explication des paramètres :
deny=3
: Refuser l’accès après 3 tentatives infructueuses.even_deny_root
: Appliquez également la stratégie à l’utilisateur racine.unlock_time=1200
: Déverrouille automatiquement le compte après 20 minutes (1200 secondes). Supprimez cette option si vous souhaitez que le compte reste verrouillé jusqu’à ce qu’il soit réinitialisé manuellement.audit
: consigne les tentatives de connexion ayant échoué dans le journal d’audit du système.
Ouvrez maintenant le fichier /etc/security/faillock.conf
et spécifiez le nombre de tentatives infructueuses qui déclencheront un verrouillage et la durée de la période de verrouillage.
# Number of allowed failures before lockout
deny = 5
Lockout duration in minutes
unlock_time = 15
Path to the faillock database
Optional: You can specify where to store faillock information
faillock_path = /var/lib/faillock
Ensuite, ouvrez le fichier /etc/ssh/sshd_config
et activez le paramètre suivant pour utiliser PAM pour l’authentification SSH.
UsePAM yes
Pour appliquer les modifications, redémarrez le service SSH :
sudo systemctl restart sshd
Comment tester la fonctionnalité de verrouillage de compte SSH
Après avoir enregistré la configuration ci-dessus, vous pouvez tester le mécanisme de verrouillage de connexion en effectuant 3 tentatives de connexion infructueuses au serveur SSH.
ssh [email
[email 's password:
Permission denied, please try again.
[email 's password:
Permission denied, please try again.
[email 's password:
Account locked due to 3 failed logins
Comment vérifier les échecs de connexion SSH de l’utilisateur
Pour vérifier les tentatives de connexion infructueuses d’un utilisateur spécifique, utilisez la commande suivante :
sudo faillock --user username
Exemple de sortie :
Login Failures Latest failure From
user 3 10/17/2024 14:15 192.168.0.5
Comment réinitialiser ou déverrouiller un compte utilisateur
Pour réinitialiser les tentatives infructueuses et déverrouiller le compte utilisateur, utilisez la commande suivante :
sudo faillock --user username --reset
Cette commande efface le nombre de tentatives infructueuses et déverrouille l’utilisateur.
Vérification du déverrouillage du compte utilisateur
Vous pouvez vérifier que le compte est déverrouillé en exécutant à nouveau la commande faillock :
sudo faillock --user username
S’il n’y a pas d’échec de tentative de connexion, la sortie sera vide, indiquant que le compte utilisateur est déverrouillé.
Conclusion
En conclusion, le module pam_faillock
offre un moyen amélioré et plus sécurisé de gérer les tentatives de connexion infructueuses, remplaçant le pam_tally2
désormais obsolète. Assurez-vous de mettre à jour vos fichiers de configuration PAM pour utiliser pam_faillock
afin de rester à jour avec les meilleures pratiques et les normes de sécurité.
Pour plus d’informations, vous pouvez utiliser le man pam_faillock
à partir de la ligne de commande.
man pam_faillock