quarta-feira, 18 de junho de 2014

Evitando ataques de força-bruta com Fail2Ban

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 ssh2
Jun 24 07:11:52 fpasrv053 sshd[13331]: Failed password for root from 193.104.68.200 port 50149 ssh2
Jun 24 07:11:56 fpasrv053 sshd[13334]: Failed password for root from 193.104.68.200 port 52343 ssh2
Jun 24 07:12:01 fpasrv053 sshd[13336]: Failed password for root from 193.104.68.200 port 53371 ssh2
Jun 24 07:12:05 fpasrv053 sshd[13374]: Failed password for root from 193.104.68.200 port 54521 ssh2
Jun 24 07:12:09 fpasrv053 sshd[13376]: Failed password for root from 193.104.68.200 port 55599 ssh2
Jun 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/