Fail2ban


Fail2ban es una aplicación escrita en Python para la prevención de intrusos en un sistema, que se basa en la penalización de conexión (bloquear conexión) a los orígenes que intentan accesos por fuerza bruta. Se distribuye bajo la licencia GNU y típicamente funciona en todos los sistemas POSIX que tengan interfaz con un sistema de control de paquetes o un firewall local.


Habitualmente las computadoras sufren ataques de fuerza bruta (especialmente servidores SSH, FTP, etc) con el fin de descifrar las contraseñas y acceder a ellas. En este punto es que una buena política de contraseñas es importante. Sin embargo, los ataques por fuerza bruta consumen demasiado ancho de banda, hacen crecer los archivos de logs de nuestro sistema y los ciclos de CPU se ven desperdiciados en procesamiento que podría ser utilizado para otras actividades pertinentes.

Funcionamiento


Fail2ban se encarga de buscar en los registros (logs) de los programas que se especifiquen, las reglas que el usuario decida para poder aplicarle una penalización. La penalización puede ser bloquear la aplicación que ha fallado en un determinado puerto, bloquearla para todos los puertos, etc. Las penalizaciones así como las reglas, son definidas por el usuario.
Habitualmente si las IPs de ataque son prohibidas por un lapso prudencial de tiempo, la sobrecarga de red provocada por los ataques baja, y también se baja la probabilidad de que un ataque de fuerza bruta basada en diccionarios tenga éxito.
Ante una cantidad predefinida (por el usuario) de intentos fallidos, fail2ban determina la acción a tomar sobre la IP que provocó ello. Puede simplemente notificar por e-mail del suceso, denegar el acceso a la IP atacante, denegarla en determinado puerto y habilitarla en otros (mediante la modificación de las entradas en iptables, o el firewall local que corresponda), etc. Puede también levantar las prohibiciones después de un determinado período, en particular por si la prohibición realizada no se tratara de un ataque sino de errores del usuario intentando loguearse. Las acciones son configurables mediante scripts de python.

Soporte


fail2ban establece filtros para Apache, sshd, qmail, vsftpd, lighttpd, Postfix y Courier Mail Server. Los filtros son escritos con expresiones regulares de Python que establecen la regla que hará disparar una determinada acción sobre la IP que origina el hecho. La tupla (regla, acción) o (filtro, acción) es llamado “Jail” o “prisión”, y es lo que determina la penalización a un host maligno.


No hay comentarios:

Publicar un comentario