web-dev-qa-db-fra.com

Comment définir une limite pour les tentatives de mot de passe incorrectes pour l'écran de verrouillage GDM avant qu'une action ne soit entreprise?

Je travaille actuellement sous Ubuntu GNOME 15.10 avec GNOME 3.18, bien que j’ai utilisé (il ya très longtemps) Windows 7, et même si Ubuntu est meilleur à bien des égards, il manque toujours une fonctionnalité ou du moins une fonctionnalité que je n’ai pas encore trouvée. trouvé encore ...

Y a-t-il moyen de faire en sorte que sur l'écran de verrouillage/connexion après un certain nombre (défini par moi) de tentatives de mot de passe incorrectes, l'utilisateur ne puisse pas entrer son mot de passe pendant un certain temps (défini par moi) et enregistre également cela dans un journal?

Ainsi, par exemple, si un utilisateur entre 3 fois un mot de passe incorrect, il n'est pas autorisé à réessayer pendant 5 minutes supplémentaires. Ce dernier est également enregistré dans un journal défini par moi.

Ce serait également utile si je pouvais aussi éventuellement faire en sorte que l’utilisateur essaie de saisir son mot de passe et se trompe 2 fois. Si, dans les 5 prochaines minutes, il essaie à nouveau, il les bloque pendant 5 minutes, mais s’ils essaient à nouveau après 5 minutes, le compteur des tentatives de mot de passe incorrectes est réinitialisé à 0.

Existe-t-il déjà une telle fonctionnalité? Ou peut-être un moyen de l'implémenter manuellement avec un script ou quelque chose?

2
user364819

Quelques informations de fond:

Les connexions utilisateur sont gérées par le système PAM (module d’authentification enfichable) et, dans ce cas particulier, par le sous-système pam_tally (to compiler les comptes d’utilisateur).

Comme pam_tally lui-même sera obsolète , vous devez utiliser pam_tally2, qui se compose de deux parties:

  1. pam_tally2.so étant le module qui effectue l'authentification lui-même et que vous devez ajouter au système PAM
  2. pam_tally2 étant un programme autonome dont vous aurez besoin pour afficher, modifier et effacer des comptes individuels

Les paramètres de pam_tally2 qui vous intéressent sont:

deny=n
    Deny access if tally for this user exceeds n.
lock_time=n
    Always deny for n seconds after failed attempt.
unlock_time=n
    Allow access after n seconds after failed attempt. If this
    option is used the user will be locked out for the specified
    amount of time after he exceeded his maximum allowed attempts.
    Otherwise the account is locked until the lock is removed by a
    manual intervention of the system administrator.
magic_root
    If the module is invoked by a user with uid=0 the counter is
    not incremented. 
even_deny_root
    Root account can become unavailable.

La configuration:

Ajoutez les lignes suivantes à /etc/pam.d/login pour verrouiller le compte après 3 connexions échouées (également pour le compte root) et le déverrouiller automatiquement au bout de 50 minutes.

auth     required       pam_securetty.so
auth     required       pam_tally2.so deny=3 even_deny_root lock_time=60 unlock_time=3000
auth     required       pam_env.so
auth     required       pam_unix.so
auth     required       pam_nologin.so
account  required       pam_unix.so
password required       pam_unix.so
session  required       pam_limits.so
session  required       pam_unix.so
session  required       pam_lastlog.so nowtmp
session  optional       pam_mail.so standard

Après avoir ajouté la configuration ci-dessus, testez-la et déconnectez-vous et essayez de vous connecter 3 fois avec un faux mot de passe : 60 secondes à attendre après la première et la deuxième tentative et 50 minutes après la troisième tentative.

2
Fabby