Protegendo servidor SSH com fail2ban

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

##
 
ignoreip = 127.0.0.1 10.8.1.0/24
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