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 POSIXque tengan interfaz con un sistema de control de paquetes o un firewall local.
Funcionamiento de Fail2ban
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.