Souvent, une exigence dans un environnement sécurisé consiste à verrouiller les utilisateurs après qu'ils aient saisi un mot de passe erroné un certain nombre de fois. Cela rend le système à nouveau protégé. Le message décrit comment verrouiller un compte après N tentatives de connexion incorrectes à l'aide de fichiers pam.d . Le pam_faillock prend en charge le verrouillage temporaire des comptes d'utilisateurs en cas de plusieurs tentatives d'authentification infructueuses. Ce nouveau module améliore les fonctionnalités par rapport au module pam_tally2 existant, car il permet également un verrouillage temporaire lorsque les tentatives d'authentification sont effectuées via un économiseur d'écran.
Verrouiller l'utilisateur après N connexions incorrectes
1. Tout d'abord, effectuez une sauvegarde du fichier /etc/pam.d/password-auth et /etc/pam.d/system-auth . Ajoutez ensuite les lignes surlignées en rouge aux deux fichiers.
auth required pam_env.so 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 auth sufficient pam_faillock.so authsucc audit deny=3 auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_faillock.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so The above configuration file would lock out users after 3 unsuccessful login attempts and unlock them after 10 minutes.
Ici,
refuser - nous permet de définir la valeur N (nombre de tentatives) après laquelle le compte utilisateur doit être verrouillé.
unlock_time - est la durée pendant laquelle le compte doit rester verrouillé [Facultatif]
even_deny_root – s'assure que la même règle s'applique également à l'utilisateur root. Pour exclure l'utilisateur root de cette stratégie, supprimez simplement le paramètre de la ligne [Facultatif].
Remarque :La séquence des lignes dans les fichiers est importante et tout changement de séquence finirait par bloquer tous les utilisateurs, y compris l'utilisateur root lorsque vous utilisez l'option even_deny_root.
2. Pour verrouiller l'utilisateur root, auth requis pam_faillock.so la ligne doit être ajoutée dans /etc/pam.d/system-auth et /etc/pam.d/password-auth comme suit :
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 root_unlock_time=600
3. Pour empêcher un utilisateur de se verrouiller même après plusieurs échecs de connexion, ajoutez la ligne ci-dessous juste au-dessus de pam_faillock dans /etc/pam.d/system-auth et /etc/pam.d/password-auth et remplacez user1, user2 par les noms d'utilisateur réels.
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
4. Redémarrez le service sshd.
# systemctl restart sshd
Réinitialiser le mot de passe utilisateur verrouillé
1. Pour afficher les enregistrements d'échec d'authentification :
# faillock --user [username]
2. Pour réinitialiser les enregistrements d'échec d'authentification :
# faillock --user [username] --reset