pam_tally2 não conta falha sobre ssh O

5

Adicionei linha

auth required pam_tally2.so deny=3 unlock_time=180

para o meu arquivo /etc/pam.d/login , e tudo bem e ótimo em tty, depois de 3 tentativas testuser foi suspenso.

No entanto, essa mesma linha em /etc/pam.d/sshd nã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 depois de três tentativas sem sucesso, o usuário ainda pode tentar digitar a senha.

Como eu faço ssh banir um usuário depois de 3 avisos?

    
por Sergiy Kolodyazhnyy 29.09.2015 / 20:26

2 respostas

2

Para o SSH, talvez seja melhor usar algo diferente do pam, pois há uma ótima solução feita através do iptables e do arquivo sshd_config . Esta é apenas uma maneira de obter o que você deseja, também com base na documentação, geralmente, é recomendado o uso de chaves SSH em vez de uma verificação de método de autenticação por senha. link .

  1. Você precisaria alterar o /etc/ssh/sshd_config adicionando a 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 cada endereço IP por 120 segundos, o que estabelece 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 .

por Miguel Garcia 29.09.2015 / 21:11
1

A prática comum é usar fail2ban , que funciona no nível de rede, em vez de no nível de pam, e que economiza seus recursos para todo o criptografia feito por sshd .

De qualquer forma, você tentou após a autenticação com falha inserir a senha correta? É aceito? O que está logado em /var/log/auth.log ?

sshd server sempre executa toda a pilha de pam, mesmo que o usuário não exista, esteja suspenso ou bloqueado para eliminar ataques usando canais secundários (identificação de usuários existentes, por exemplo). Esse é o problema que você parece estar atingindo. Pode funcionar, mas você não pode ver mais ssh por causa da segurança.

    
por Jakuje 29.09.2015 / 20:56

Tags