Voici, comment renforcer simplement la sécurité en bloquant les compte utilisateurs après un nombre consécutive d'authentifications échoué.
Cela peut être réalisé par l'utilisation du module pam_faillock
ce qui permet de verrouiller temporairement le compte de l'utilisateur dans le cas de multiples tentatives authentifications et de garder un enregistrement de cette évènement.
pam_faillock
est une partie de Linux PAM (Pluggable Authentication Modules), c'est un mécanisme dynamique pour implémenter des services d'authentification dans les applications et divers services système pour auditer l'activité du shell d'une connexion utilisateur.
Vous pouvez configuré les fonctionnalité ci-dessous dans le fichier /etc/pam.d/system-auth et /etc/pam.d/password-auth, en ajoutant les lignes suivantes:
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600
La section auth
dans les deux fichiers doit être organisé de cette façon :
auth required pam_env.so auth required pam_faillock.so preauth silent audit deny=3 unlock_time=300 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=300 auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so
Maintenant ouvrez les 2 fichiers :
vim /etc/pam.d/system-auth vim /etc/pam.d/password-auth
L'entrée par défaut dans la section auth
des 2 fichiers ressembles à ça:
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet auth required pam_deny.so
Après l'ajout des paramètres ci-dessus, ça devrai ressemblé à ça:
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faillock.so preauth silent audit deny=3 unlock_time=300 auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=300 auth requisite pam_succeed_if.so uid >= 1000 quiet auth required pam_deny.so
Puis ajouter la ligne suivant à la fin de la section account
dans les 2 fichiers du dessus:
account required pam_faillock.so
Pour verrouiller le compte root après l'échec des tentatives d'authentification, ajoutez l'option even_deny_root aux lignes des deux fichiers de la section auth
comme ceci.
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=300 auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=300
Une fois que vous avez tout configuré.
Vous pouvez redémarrer les services d'accès distant comme sshd, pour que la stratégie ci-dessus prenne effet, si les utilisateurs utilisent ssh pour se connecter au serveur.
Vous pouvez voir tous les logs d'authentification ayant échoué à l'aide de l'utilitaire de faillock
, qui est utilisé pour afficher et modifier le log des échecs d'authentification.
Vous pouvez voir les tentatives de connexion échouées pour un utilisateur particulier comme cela.
faillock --user toto
Pour afficher toutes les tentatives de connexion infructueuses, exécutez faillock
sans aucun argument comme ceci:
faillock
Pour effacer les logs d'échec d'authentification d'un utilisateur, exécutez cette commande:
faillock --user toto --reset
Pour effacer tous les logs de l'ensemble des utilisateurs :
faillock --reset
Enfin, pour dire au système de ne pas verrouiller les comptes d'un utilisateur ou de plusieurs utilisateurs après plusieurs tentatives de connexion infructueuses, ajoutez l'entrée suivante, juste au-dessus de l'appel pam_faillock
dans la section auth
des deux ficheirs /etc/pam.d/system-auth
et /etc/pam.d/password-auth
comme ça (Ajoutez simplement les noms utilisateurs séparés par deux points.)
auth [success=1 default=ignore] pam_succeed_if.so user in toto:tata
Vos fichiers devrai ressembler à cela:
auth required pam_env.so auth [success=1 default=ignore] pam_succeed_if.so user in toto:tata auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so
source : tecmint.com