Introdução
O aplicativo
fail2ban, é um agente que monitora os logs, e verifica a quantidade de tentativas de conexão sem sucesso, bloqueando o IP suspeito, após
determinado número de insucessos.
O fail2ban pode monitorar a tentativa de login nos serviços ssh, pam, xinetd, apache, vsftpd, proftpd, wuftpd, postfix, couriersmtp, courierauth, sasl e
named, e em uma ação pró-ativa bloquear o possível ataque, adicionando uma regra no firewall.
O fail2ban é eficaz em parar ataques de força bruta (brute force), que são comum a hosts conectados à Internet, de maneira elegante, confiável e funcional,
sem causar prejuízos aos usuários autênticos dos sistemas e serviços oferecidos.
Este aplicativo pode ser encontrado em sua página oficial
http://www.fail2ban.org, ele é desenvolvido na linguagem python, que o torna portável para praticamente todo sistema operacional.
Em seu site oficial, na seção de downloads (
http://www.fail2ban.org/wiki/index.php/Downloads), encontra-se a lista de distribuições que já possuem pacotes para seus fontes. No momento em que este artigo foi escrito, as distribuições eram:
Gentoo,
Debian,
Ubuntu,
Fedora,
Red Hat/CentOS,
Gral Linux,
Ipcop,
Mandriva,
SUSE,
openSUSE,
ArchLinux,
Slackware,
FreeBSD e
Mac OS X.
Instalação do fail2ban
Requisitos: python-2.3 ou superior (
http://www.python.org).
Requisitos Opcionais: gamin-0.0.21 ou superior (
http://www.gnome.org/~veillard/gamin).
Instalação pelos fontes:
wget http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2
tar xvfj fail2ban-0.8.4.tar.bz2 -C /tmp
cd /tmp/fail2ban-0.8.4
# python setup.py install
Instalação em Debian-like:
# aptitude install fail2ban
Instalação em RedHat-like:
1º baixe o rpm adequando para versão Enterprise
Linux(EL) utilizada:
2º Considerando Centos 5.5, proceda com o comando abaixo para configurar o repositório EPEL:
wget http://mirrors.ucr.ac.cr/epel/5/i386/epel-release-5-3.noarch.rpm
# rpm -ivh epel-release-5-3.noarch.rpm
3º e ultimo passo, instalar o fail2ban:
# yum install fail2ban