web-dev-qa-db-fra.com

Comment verrouiller les utilisateurs après 5 minutes de connexion infructueuse?

Comment verrouiller les utilisateurs après 5 minutes de connexion infructueuse?

J'ai rassemblé quelques distributions/versions sur la façon de le faire, mais je ne peux pas le tester.

rhel4: En ajoutant le:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

à:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

rhel4: ???

SLES9: En ajoutant le:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

à:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 ou SLES1: En ajoutant le:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

à:

/etc/pam.d/common-auth

Et en ajoutant le:

account required pam_tally.so

à:

/etc/pam.d/common-account

QUESTION : Quelqu'un peut-il s'il vous plaît confirmer que c'est le bon moyen de verrouiller les utilisateurs après 5 minutes de connexion infructueuse? OR comment faire cela?

p.s.:

/sbin/pam_tally --user USERNAME --reset

est une chose utile à faire avant de faire cela? Puis-je verrouiller l'utilisateur root avec ceux-ci? La modification PAM est une chose très sensible, car les gens pouvaient se bloquer du serveur (je sens ex.: L'utilisateur root). Toute astuce quand ce faisait ça?

12
gasko peter

Vous voudrez peut-être jeter un coup d'œil à Fail2Ban. Il peut être configuré pour verrouiller un compte après un nombre défini de tentatives infructueuses, puis déverrouillez après une période de temps définie.

http://www.fail2ban.org/wiki/index.php/downloads

Si vous êtes vraiment sérieux pour utiliser pam_tally, vous voulez probablement utiliser pam_tally2 au lieu. Doit être installé avec n'importe quel paquet PAM qui est actuel. Vous pouvez faire un Man PAM_TALLY2 pour voir comment l'utiliser.

Voici un exemple pour vous aider à démarrer. Ajoutez ce qui suit au début de la section Auth Section dans le fichier PAM, /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

Dans le même fichier, ajoutez ceci à la section Compte:

account     required      pam_tally2.so

Les paramètres ci-dessus sont les suivants:

  • file=/var/log/tallylog - Le fichier journal par défaut est utilisé pour conserver les comptes de connexion.
  • deny=3 - Refuser l'accès après 3 tentatives et verrouille l'utilisateur.
  • even_deny_root - La politique s'applique également à l'utilisateur root.
  • unlock_time=1200 - 20 min. (60 sec. * 20 min. = 1200 secondes)

Si vous ne voulez pas verrouiller le changement de racine même_deny_root à Magic_root .

Il est douteux que vous souhaitiez verrouiller le compte root. Vous voudrez peut-être faire quelque chose comme ça, où le compte root peut être verrouillé, mais uniquement pour une durée plus courte que les autres comptes:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

Cela ne fera que verrouiller le compte root pendant une minute, tout le monde normal 1200 secondes.

Un exemple de fichier journal serait comme suit:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

Vous pouvez vous renseigner sur les comptes verrouillés à l'aide de la commande PAM_TALLY2:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

Vous pouvez déverrouiller la restriction comme si:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

Maintenant, le compte apparaît à PAM_TALLY2.

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

Les références

17
slm

pam_tally2 Initialement me confondre, mais je l'ai compris après avoir suivi man pam_tally2 -

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

le libellé ci-dessus est un peu déroutant, car vous n'ajoutez que le pam_tally2.so ligne.

donc, vous pouvez éditer /etc/pam.d/login et ajoutez-le sous toutes les autres auth lignes:

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

ou si vous avez /etc/pam.d/system-auth Vous pouvez l'ajouter là-bas.

aucun redémarrage ou rechargement d'aucun service n'est requis - il devient immédiatement actif pour de nouvelles connexions locales.

remarque: si vous voulez pam_tally2 Pour appliquer à sshd ou d'autres services distants ASWELL, vous devrez également ajouter la ligne à /etc/pam.d/sshd et/ou /etc/pam.d/password-auth


pour vérifier que cela fonctionne, faites une tentative de connexion échouée avec un utilisateur valide, puis exécutez pam_tally2

par exemple, pour un utilisateur nommé jacob exécuter:

  $ Sudo pam_tally2 -u jacob

et cela donnera quelque chose comme:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

si trop de tentatives de connexion échouent et que le compte est verrouillé, vous pouvez déverrouiller manuellement le compte:

  $ Sudo pam_tally2 -u jacob --reset
2
infinite-etcetera