Recherche de site Web

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

Articles connexes: