Protegiendo SSH con fail2ban ======================================== .. image:: _images/Fail2ban.png :align: right 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 ----------- .. code:: shell $ sudo apt-get install fail2ban Configuración ------------- .. code:: shell $ sudo nano /etc/fail2ban/jail.conf .. code-block:: shell 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: .. code:: shell $ sudo service fail2ban restart Pasado un tiempo podrás ver qué está haciendo examinando el log de fail2ban... .. code:: shell $ cat /var/log/fail2ban.log Puedes comprobar cómo ha intoducido las reglas en el iptables con .. code:: shell $ sudo iptables -L