pam_tally2 não conta fail over ssh

pam_tally2 não conta fail over ssh

Eu adicionei a linha

auth required pam_tally2.so deny=3 unlock_time=180

para o meu /etc/pam.d/loginarquivo, e tudo bem em tty, após 3 tentativas testuseré suspenso.

No entanto, essa mesma linha /etc/pam.d/sshdnão produz efeito.

xieerqi:$ ssh testuser@localhost
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).

xieerqi:$ ssh testuser@localhost                                                                                           
Password: 
Password: 
Password: 
Permission denied (publickey,keyboard-interactive).

Como você pode ver, após três tentativas malsucedidas, o usuário ainda pode tentar inserir a senha.

Como faço para sshbanir um usuário após 3 strikes?

Responder1

Para SSH talvez seja melhor usar algo diferente do pam, existe uma ótima solução feita através do iptables e do sshd_configarquivo. Esta é apenas uma maneira de conseguir o que você deseja, também com base na documentação, geralmente é recomendado usar chaves SSH em vez de uma verificação do método de autenticação de senhahttps://help.ubuntu.com/community/SSH/OpenSSH/Configurando.

  1. Você precisaria alterar a /etc/ssh/sshd_configadição da linha

    MaxAuthTries 1
    
  2. Você precisa criar as seguintes regras de firewall

    • Crie uma nova cadeia

      iptables -N SSHATTACK   
      iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7  
      iptables -A SSHATACK -j DROP  
      
    • Bloqueie por 120 segundos cada endereço IP que estabeleça mais de três conexões em 120 segundos. No caso da quarta tentativa de conexão, a solicitação é delegada à cadeia SSHATTACK, que é responsável por registrar o possível ataque ssh e finalmente descarta a solicitação.

      iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set     
      iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK    
      
  3. Você pode verificar as tentativas feitas no arquivo /var/log/syslog.

Responder2

A prática comum é usar fail2bano que funciona no nível da rede em vez do nível pam e que economiza seus recursos para toda a criptografia feita pelo sshd.

De qualquer forma, você tentou depois daquela falha na autenticação inserir a senha correta? É aceito? O que está logado /var/log/auth.log?

sshdO servidor sempre executa toda a pilha pam mesmo que o usuário não exista, esteja suspenso ou bloqueado para eliminar ataques usando canais laterais (identificação de usuários existentes, por exemplo). Este é o problema que você parece estar enfrentando. Pode funcionar, mas você não pode ver sshpor causa da segurança.

Responder3

Tente alterar a ordem das linhas, o PAM execute-as 1 por 1.
Por exemplo:
/etc/pam.d/common-auth

auth    required                        pam_tally2.so deny=3 onerr=fail unlock_time=300 debug
auth    [success=1 default=ignore]      pam_unix.so nullok
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

funciona para mim.

informação relacionada