Como habilito o bloqueio de conta usando pam_tally?

Como habilito o bloqueio de conta usando pam_tally?

Estou tentando implementar o bloqueio de conta no Ubuntu usando pam_tally. Eu tentei adicionar as seguintes linhas em /etc/pam.d/common-auth

auth required pam_tally.so deny=3
account     required  pam_tally.so

As falhas estão sendo registradas, mas a conta não está sendo bloqueada mesmo ao atingir o máximo de falhas. Estou tentando fazer login diretamente (tela de login do GNOME).

Algum conselho? Preciso adicionar pam.d/gdm ou arquivo de login também?

Responder1

Explicação por trás do common-auth

Se você está apenas procurando uma solução rápida, vá abaixo paraComo configurar a autenticação comum para bloquear.


Esperamos que isso ajude a entender como /etc/pam.d/common-authconfigurar o bloqueio.

Se você retirar todos os comentários em /etc/pam.d/common-auth, ficará com o seguinte:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

Vamos dar uma olhada em cada linha deste arquivo e como ela é usada.


auth    [success=1 default=ignore]      pam_unix.so nullok_secure

Lê a entrada de senha.Se a senha estiver correta, a próxima linha do arquivo será ignorada (aquela com pam_deny.so). Você pode alterar quantas linhas são ignoradas definindo o valor em success=1.

auth    requisite                       pam_deny.so

Falha imediatamente na tentativa de login.A palavra requisiteaqui diz à autenticação para encerrar imediatamente após falha. As outras linhas utilizam requiredem vez disso, que espera até o final do módulo para sinalizar uma falha.

auth    required                        pam_permit.so

Permite tentativa de login.Isso é feito usando pam_permit.so.


Uma vez estabelecido isso, a configuração do módulo para bloquear o usuário pode ser melhor compreendida.

Como configurar a autenticação comum para bloquear

Para Ubuntu:

Adicione a seguinte linhadepois de pam_deny.so e antes de pam_permit.so:

auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800

Altere a linha pam_deny.so para o seguinte:

auth    required                        pam_deny.so

O arquivo inteiro ficaria assim:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    required                        pam_deny.so
auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800
auth    required                        pam_permit.so

Você pode configurar as seguintes opções para atender às suas necessidades:

  • deny=3- O número de tentativas permitidas antes de você ser bloqueado.
  • unlock_time=1800- O número de segundos antes de você poder tentar fazer login novamente.(Observação adicional: se o sistema for desbloqueado após uma série de falhas e você não conseguir autenticar novamente, você não terá mais duas tentativas de autenticação. O sistema faz você esperar o unlock-time de novo.)

A maioria dos recursos recomenda que esta linha seja adicionada no topo do arquivo, enfatizando a importância da ordem; entretanto, em sistemas desktop Ubuntu, esta configuração pode bloquear você na tela de login da GUI.

Por que isso acontece? Parece que quando você seleciona um usuário na tela de login do Ubuntu, o módulo PAM inicia imediatamente e aguarda na pam_unix.solinha (a linha de entrada de senha) antes de prosseguir. Se você colocar a pam_tally2.solinha antes deste “ponto de parada”, o bloqueio se torna imediatamente ativo, e se você navegar para longe do usuário pressionando as teclas de seta, o módulo sinaliza uma falha no login e pam_tally2incrementa. Sem sequer digitar uma senha, você logo ficará preso em uma situação semelhante à abaixo:

Uma tela de login típica do Ubuntu com um arquivo de autenticação comum configurado incorretamente.

Colocar a pam_tally2.solinha na parte inferior do arquivo corrige esse problema. A ordem adequada é mantida nesta configuração; a primeira linha salta para pam_deny.soou pam_permit.socom base na validade da senha e, quando o tempo pam_tally2.sofor atingido, quaisquer entradas de senha incorretas já terão sido indicadas.

Mesmo que pam_permit.soseja alcançado independentemente da senha inserida, o módulo sempre falhará se pam_deny.sotambém tiver sido alcançado. Isso ocorre porque a pam_deny.solinha contém required; permitirá que o restante das linhas seja executado, mas o próprio módulo falhará no final.

Para obter mais informações sobre como o PAM funciona, você pode pesquisar no Google "Como funciona o PAM" ou simplesmente acessar aqui:http://www.tuxradar.com/content/how-pam-works


Isso deve resolver!

Responder2

Já faz um tempo desde que olhei para isso, mas

acho que você precisa editar/etc/pam.d/common-auth

Adicione isso noprincipaldo arquivo (a ordem das regras é importante).

auth required pam_tally.so per_user magic_root onerr=fail

Você então define o número de tentativas permitidas

sudo faillog -m 3

Para desbloquear uma conta

faillog -u login_name -r

para detalhes adicionais consulte

Meu bloghttp://blog.bodhizazen.com/linux/ubuntu-how-to-faillog/

oucara pam_tally

Responder3

Você também pode tentar o faillock para bloquear as contas de usuário após n tentativas de login malsucedidas.

Consegui fazê-lo funcionar seguindo as instruções no link abaixo que usa pam_faillock.so, que acho que funciona tanto no Ubuntu quanto no CentOS.

No CentOS e derivados semelhantes:

/etc/pam.d/system-auth

/etc/pam.d/password-auth

No Ubuntu/Debian e derivados semelhantes:

/etc/pam.d/common-auth

/etc/pam.d/common-account

Bloquear conta de usuário do Linux após várias tentativas de login malsucedidas

espero que isso ajude alguém também.

informação relacionada