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-auth
configurar 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 requisite
aqui diz à autenticação para encerrar imediatamente após falha. As outras linhas utilizam required
em 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 ounlock-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.so
linha (a linha de entrada de senha) antes de prosseguir. Se você colocar a pam_tally2.so
linha 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_tally2
incrementa. 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.so
linha na parte inferior do arquivo corrige esse problema. A ordem adequada é mantida nesta configuração; a primeira linha salta para pam_deny.so
ou pam_permit.so
com base na validade da senha e, quando o tempo pam_tally2.so
for atingido, quaisquer entradas de senha incorretas já terão sido indicadas.
Mesmo que pam_permit.so
seja alcançado independentemente da senha inserida, o módulo sempre falhará se pam_deny.so
também tiver sido alcançado. Isso ocorre porque a pam_deny.so
linha 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/
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.