O SSH é um serviço que facilita a vida de todo administrador GNU/Linux pois permitir acesso a um terminal remoto utilizando um canal seguro por meio de chaves criptográficas (RSA/DSA), mas isso não impede que invasores tentem invadir o seu servidor utilizando scripts com dicionários de senhas e usuários. Só a simples instalação do servidor ssh já basta para as tentativas de invasão terem inicio.
O fail2ban analisa o arquivo de log relacionado com a autenticação de usuários e identifica falhas de login e bloqueia hosts com falhas sucessivas de logins mal-sucedidos. É eficaz na contra força bruta e ataques DoS.
Vamos começar instalando o fail2ban:
# apt-get install fail2ban
Conforme diz a documentação do fail2ban todos os arquivos de configuração devem possuir a extensão .local, o fail2ban normalmente vem preparado para proteger a porta tcp/22 (ssh), mas pode ser preparado facilmente para proteger outras portas.
# cd /etc/fail2ban
# cp jail.conf jail.local
Vamos fazer alguns ajustes: Quais IPs não serão afetados, tempo de banimento (segundos), e quantas tentativas permitidas antes de banir
bantime = 1800
maxretry = 3 ## Para qual email enviar as mensagens do fail2ban destemail = seu_usuario@localhost ## O fail2ban cria 2 chains (fail2ban-ssh e fail2ban-ssh-ddos) ligadas a chain INPUT ## e utiliza -m multiport para caso de mais de uma porta ser utilizada. banaction = iptables-multiport ## Na seção JAILS quais serviços serão monitorados pelo fail2ban: [ssh] enable = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6 ##
Alterações realizadas, falta apenas reiniciar o serviço do fail2ban:
# /etc/init.d/fail2ban restart
O arquivo de log do fail2ban é: /var/log/fail2ban.log
Espero que tenham gostado post e não se esqueçam de assinar o portal.
Abraços,
Ricardo Pinheiro