En un artículo hace meses os mencionamos este script de Python, Fail2ban, que se usa como una de las medidas básicas de protección ante ataques de fuerza bruta en muchos servidores. Si gestionas un servidor, deberías instalar este script. Sólo tienes que mirar en el log la cantidad de intentos fallidos a tu servidor que tienes en unas horas sin el script…y que pasa después 😀 Uno se queda más tranquilo, no es infalible, pero si una primera medida de precaución básica.
Fail2ban te permite tomar decisiones sobre ciertas IPs basadas en intentos fallidos de acceso. Lo que hace es modificar el firewall bloqueando o penalizando intentos fallidos. Por lo tanto uno de los primeros sitios en los que nosotros lo ponemos es para ssh. Aunque fail2ban ya se ha desarrollado para la mayoría de los servidores (Apache, ssh, vsftp, qmail, postfix….). También para la mayoría de sistemas.
Por ejemplo para instalarlo en ssh sobre un Debian debemos:
- Instalar fail2ban: apt-get install fail2ban
- Copiar el fichero de configuración ejemplo: cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Editarlo con nuestra configuración: nano /etc/fail2ban/jail.local
Los parámetros son bastante sencillos. Hay algunos que definen lo que es un intento fallido (maxretry, bantime, ignoreip) , y luego la acción a tomar (banaction y action). Podemos hasta decir que nos mande un email.
Después tenemos un listado de servicios con su configuración específica. Debemos ir en este caso a [ssh-iptables] y asegurarnos que está activo por ejemplo con:
enabled = true
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 5
Después de eso guardamos el fichero, reiniciamos fail2ban y comprobamos si está funcionando:
service fail2ban status
Aquí podéis ver ejemplos de fail2ban para Apache, Dovecot y postfix.
Os recomendamos los siguientes productos relacionados con la informática: