Protegiendo SSH con fail2ban¶
Fail2Ban es una aplicación escrita en Python para sistemas Unix, bajo licencia GPL v2, que permite establecer filtros para evitar ataques del tipo “brute force”, Overflow o DDOS para determinadas aplicaciones como Apache, SSH, Vsftpd, etc. Para ello, fail2ban analiza ficheros de log en busca de patrones correspondientes a fallos de inicio de sesión u otra expresión de interés para nuestro propósito y establece bloqueos (reglas en nuestro IPtables) frente a un nº máximo de intentos que nosotros definamos.
Instalación¶
$ sudo apt-get install fail2ban
Configuración¶
$ sudo nano /etc/fail2ban/jail.conf
ignoreip = 127.0.0.1/8 # Ignoramos los intentos fallidos desde localhost.
bantime = 18000 # Tiempo de baneo por defecto en segundos.
maxretry = 3 # Máximo de intentos fallidos por defecto.
action = %(action_mwl)s # acción por defecto con la opción "wl" que enviará un mail de #alerta.
destemail = usuario@gmail.com # Email al que se mandará las notificaciones de alerta.
Por defecto vienen 600 segundos, que son 10 minutos, a mi juicio es poco tiempo, ya que le baneamos, que sea por un tiempo razonable y se canse, así que yo he optado por poner 36000 que son 10 horas.
Reiniciamos el servidor tras los cambios en la configuración:
$ sudo service fail2ban restart
Pasado un tiempo podrás ver qué está haciendo examinando el log de fail2ban…
$ cat /var/log/fail2ban.log
Puedes comprobar cómo ha intoducido las reglas en el iptables con
$ sudo iptables -L