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?
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
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