Explicação Por trás da autenticação comum
Se você está apenas procurando uma solução rápida, vá abaixo para Como configurar a autenticação comum para bloquear .
Espero que isso ajude a entender como /etc/pam.d/common-auth
configura 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 ele é usado.
auth [success=1 default=ignore] pam_unix.so nullok_secure
Lê a entrada da 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 imediata na tentativa de login. A palavra requisite
aqui informa a autenticação para ser encerrada imediatamente após a falha. As outras linhas usam required
, que espera até o final do módulo para sinalizar uma falha.
auth required pam_permit.so
Permite a tentativa de login. Isso é feito usando pam_permit.so
.
Depois de estabelecida, a configuração do módulo para bloquear o usuário pode ser melhor compreendida.
Como configurar a autenticação comum para bloquear
Para o Ubuntu:
Adicione a seguinte linha depois do pam_deny.so e antes do 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 que você tenha permissão para efetuar login novamente. (Nota adicional: se o sistema desbloquear após uma série de falhas, e você não autenticar novamente, você não tem mais duas tentativas para autenticar. O sistema faz você esperar o unlock-time
novamente.)
A maioria dos recursos recomenda que essa linha seja adicionada na parte superior do arquivo, enfatizando a importância do pedido; no entanto, nos sistemas de desktop Ubuntu, essa 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 começa imediatamente, e aguarda na linha pam_unix.so
(a linha de entrada da senha) antes de prosseguir. Se você colocar a linha pam_tally2.so
antes deste "ponto de parada", o bloqueio se tornará imediatamente ativo e, se você sair do usuário pressionando as teclas de seta, o módulo sinalizará uma falha no login e pam_tally2
incrementos. Mesmo sem digitar uma senha, você logo fica preso em uma situação semelhante à seguinte:
Uma tela de login típica do Ubuntu com um arquivo de autenticação comum incorretamente configurado.
Colocar a linha pam_tally2.so
na parte inferior do arquivo corrige esse problema. A ordem correta é mantida nesta configuração; a primeira linha salta para pam_deny.so
ou pam_permit.so
com base na validade da senha, e no momento em que pam_tally2.so
for atingido, qualquer entrada de senha incorreta já foi indicada.
Mesmo que pam_permit.so
seja atingido, independentemente da senha digitada, o módulo sempre falhará se pam_deny.so
tiver sido atingido também. Isso ocorre porque a linha pam_deny.so
contém required
; ele permitirá que o restante das linhas seja executado, mas o próprio módulo falhará no final.
Para mais informações sobre como o PAM funciona, você pode pesquisar no Google "Como o PAM funciona" ou simplesmente clicar aqui: link
Isso deve ser feito!