Existe um módulo de contador de login para o PAM chamado pam_tally
que pode ser usado para manter uma contagem de tentativas de login e bloquear novas tentativas se um determinado número de tentativas de login falhar.
Exemplo:
No Debian você pode adicionar as seguintes linhas ao /etc/pam.d/common-auth
para dar aos usuários três tentativas de login antes que a conta seja bloqueada:
auth required pam_tally.so onerr=fail deny=3 no_magic_root
O no_magic_root
impede que o usuário root seja bloqueado.
Como peterph apontou, a opção unlock_time
pode ser usada para especificar um número de segundos após o qual uma conta bloqueada será automaticamente desbloqueada. Ao definir essa opção como 1
, ou seja, bloqueando a conta por um segundo, a tentativa de login pode ser interrompida após um determinado número de tentativas, permitindo ainda que o usuário tente novamente (quase) imediatamente.
Adicionar a seguinte linha a /etc/pam.d/common-account
redefinirá a contagem de login em um login bem-sucedido:
account required pam_tally.so reset no_magic_root
No Fedora, ambas as linhas podem ser adicionadas a /etc/pam.d/system-auth
.
O acesso a uma conta user
bloqueada pode ser restaurado com o utilitário pam_tally
associado da seguinte forma:
$ pam_tally --user user --reset=0