Como controlar tentativas de autenticação no PAM?

3

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

    
por Sravani 07.10.2013 / 15:09

2 respostas

4

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
    
por 07.10.2013 / 15:44
3

Se você estiver tentando controlar quantas vezes alguém será solicitado, em vez de quantas vezes eles podem falhar na autenticação, você 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.
    
por 07.10.2013 / 17:03