Não digo que com estas regras vocês nunca receberão uma tentativa de invasão, porém irá diminuir em praticamente 99% as tentativas de
brute force. As regras funcionam da seguinte forma, quando alguém realizar uma conexão SSH para seu servidor irá aparecer o prompt de usuário e senha normalmente. Quando a pessoa errar a usuário/senha algumas vezes (se não me engano são 6 tentativas) a sessão atual irá fechar, o mesmo não ira mais chegar até o servidor dentro do tempo que iremos determinar no firewall.
Agora vamos ao que interessa.
Caso você tenha um determinado lugar que você sempre acesse o servidor, é bom adicionar a regra abaixo para que não passe pelas regras de bloqueio.
/usr/sbin/iptables -A INPUT -p tcp -s $IPDEORIGEM -d $IPSERVER --dport ssh -j ACCEPT
Agora vamos as regras que no nosso caso irão determinar um tempo de 180 segundos que o IP ficará bloqueado até poder realizar uma nova tentativa de acesso ao server
/usr/sbin/iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp --dport ssh -m recent --update --seconds 180 -j DROP
/usr/sbin/iptables -A INPUT -p tcp --dport ssh --tcp-flags syn,ack,rst syn -m recent --set -j ACCEPT
Depois que adicionei esta regras no meu firewall nunca mais peguei nenhuma tentativa de brute force.
Até mais! Espero ter ajudado...
Bom dia!
Ricardo, porque você definiu 180 segundos? Somente esse valor é suficiente para bloquear os ataques? Ou eu posso utilizar outros?
Desde já, grato.
Matheus Cascalho