Você pode querer dar uma olhada no fail2ban. Ele pode ser configurado para bloquear uma conta após um número definido de tentativas mal-sucedidas e depois desbloquear após um período de tempo definido.
Se você realmente quiser usar pam_tally , provavelmente desejará usar pam_tally2 . Deve ser instalado com qualquer pacote PAM que esteja atualizado. Você pode fazer um man pam_tally2 para ver como usá-lo.
Aqui está um exemplo para você começar. Adicione o seguinte ao início da seção auth no arquivo pam, /etc/pam.d/password-auth :
auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200
No mesmo arquivo, adicione isso à seção da conta:
account required pam_tally2.so
Os parâmetros acima são os seguintes:
-
file=/var/log/tallylog- O arquivo de log padrão é usado para manter as contagens de login. -
deny=3- Negar acesso após 3 tentativas e bloquear usuário. -
even_deny_root- A política também se aplica ao usuário root. -
unlock_time=1200- 20 min. (60 seg. * 20 min. = 1200 seg.)
Se você não quiser bloquear a raiz, altere even_deny_root para magic_root .
É questionável se você deseja bloquear a conta root. Você pode querer fazer algo assim em vez disso, em que a conta raiz pode ser bloqueada, mas apenas por um período mais curto do que outras contas:
auth required pam_tally2.so file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60
Isso só irá bloquear a conta root por um minuto, todos os 1200 segundos normais.
Um arquivo de log de amostra teria a seguinte aparência:
$ 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
Você pode perguntar sobre contas bloqueadas usando o comando pam_tally2:
$ pam_tally2 --user=me
Login Failures Latest failure From
me 5 06/04/13 21:21:06 someothermachine
Você pode desbloquear a restrição assim:
pam_tally2 --user=me --reset
Login Failures Latest failure From
me 5 06/04/13 21:21:06 someothermachine
Agora, a conta aparece em pam_tally2 assim:
$ pam_tally2 --user=me
Login Failures Latest failure From
me 0