Coisas que você pode fazer:
-
É possível configurar regras iptables para bloquear ataques ssh, essas regras permitirão no máximo 3 conexões por minuto de qualquer host e bloquearão o host por mais um minuto se essa taxa for excedida.
iptables -A ENTRADA -p tcp --dport 22 -m estado --state NOVO -m recente --set --name SSH -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefixo "SSH_brute_force" iptables -A INPUT -p tcp --dport 22 -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
-
Bloquear via syslogs
2.1 sshdfilter : usa o iptables para bloquear (isto é, adiciona dinamicamente regras de firewall personalizadas para bloquear um atacante específico).
2.2 Fail2Ban : é um script Python que adiciona regras de firewall personalizadas para bloquear um invasor.
2.3 DenyHosts : não usa regras de firewall para bloquear um ataque. Em vez disso, ele escreve regras de bloqueio para /etc/hosts.deny.
-
Use o Port Knocking (como o knockd )
-
A melhor solução, use a AUTENTICAÇÃO DA RSA:
Se você não usar senhas, mas apenas chaves RSA para autenticação, uma busca por força bruta por uma senha válida obviamente será inútil.
Nota: Você pode combinar algumas dessas dicas, mas o simples Rsa auth + port knocking é uma solução sólida.