Quem administra um servidor na Internet, como um
servidor web ou de e-mail, já deve ter reparado que constantemente esse
servidor é vítima de uma tentativa de invasão através de um ataque de
força bruta. Se você, que administra esse tipo de servidor, nunca
prestou atenção a isso, ou não sabe o que é um ataque de força-bruta,
então você está mal.
Um ataque de força bruta é a tentativa de descobrir a senha
de um serviço através de tentativa e erro. Em um minuto, é possível
testar centenas de combinações de usuário e senha. Se o teu servidor
possui senhas fáceis, como palavras de um dicionário, em apenas uma
noite é possível descobrir a senha. E sem muito esforço! Basta o
atacante rodar um programa antes de ir dormir e pela manhã a senha já
terá sido descoberta. Uma breve olhada no arquivo /var/log/auth.log
mostra essa tentativa de invasão.
Jun 24 07:11:43 fpasrv053 sshd[13322]: Failed password for root from 193.104.68.200 port 47832 ssh2Jun 24 07:11:52 fpasrv053 sshd[13331]: Failed password for root from 193.104.68.200 port 50149 ssh2Jun 24 07:11:56 fpasrv053 sshd[13334]: Failed password for root from 193.104.68.200 port 52343 ssh2Jun 24 07:12:01 fpasrv053 sshd[13336]: Failed password for root from 193.104.68.200 port 53371 ssh2Jun 24 07:12:05 fpasrv053 sshd[13374]: Failed password for root from 193.104.68.200 port 54521 ssh2Jun 24 07:12:09 fpasrv053 sshd[13376]: Failed password for root from 193.104.68.200 port 55599 ssh2Jun 24 07:12:14 fpasrv053 sshd[13379]: Failed password for root from 193.104.68.200 port 56627 ssh2
Neste exemplo vemos o ip 193.104.68.200 tentando descobrir a
senha do root através de uma conexão ssh. Repare também que ele tenta
uma senha a cada 4 segundos, algo até lento para esse tipo de ataque.
O Fail2Ban trabalha lendo vários arquivos de log, como o
auth.log, o daemon.log, o proftpd.log, e muitos outros, procurando por
evidências de um ataque, e bloqueia o endereço de origem do ataque
através do Iptables. Para instalá-lo, use:
# apt-get install fail2ban
Seus arquivos de configuração estão localizados em /etc/fail2ban, embora sua configuração padrão funcione muito bem.
Um artigo interessante, que foi escrito em 2009 mas ainda é atual, pode ser visto em http://www.vivaolinux.com.br/dica/Evitando-bruteforce-de-SSH-utilizando-o-Fail2ban
Fonte: http://linuxnewmedia.com.br/blogs/rede/2014/03/18/evitando-ataques-de-forca-bruta-com-fail2ban/