Como controlar as tentativas de autenticação no PAM?

Como controlar as tentativas de autenticação no PAM?

Eu gostaria de configurar o não. muitas vezes o usuário será solicitado a fornecer a senha (tentativas de autenticação) para login, antes de encerrar a sessão. O PAM suporta este caso? Se sim, você pode me ajudar com a configuração necessária para isso?

Responder1

Existe um módulo de contador de login para PAM chamadopam_tallyque pode ser usado para manter uma contagem de tentativas de login e bloquear tentativas adicionais se um determinado número de tentativas de login falhar.

Exemplo:

No Debian você pode adicionar as seguintes linhas para /etc/pam.d/common-authdar 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

Isso no_magic_rootevita que o usuário root seja bloqueado.

ComoPedroapontado, a unlock_timeopção pode ser usada para especificar um número de segundos após os quais uma conta bloqueada será automaticamente desbloqueada. Ao definir esta opção como 1, ou seja, bloquear a conta por um segundo, a tentativa de login pode ser abortada após um número especificado de tentativas, permitindo ao usuário tentar novamente (quase) imediatamente.

Adicionar a seguinte linha /etc/pam.d/common-accountredefinirá 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 ao arquivo /etc/pam.d/system-auth.

O acesso a uma conta bloqueada userpode ser restaurado com o pam_tallyutilitário que o acompanha da seguinte forma:

$ pam_tally --user user --reset=0

Responder2

Se você estiver tentando controlar quantas vezes alguém será avisado, em vez de quantas vezes ele poderá falhar na autenticação, poderá ter problemas para gerenciar isso por meio do PAM. Por exemplo, o ssh tem sua própria configuração para isso:

     NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

informação relacionada