Fail2ban es un módulo de servidor que se puede utilizar para sistemas Linux y POSIX, escrito en el lenguaje de programación de Python, y que sirve como framework de seguridad del tipo de un cortafuegos o filtro de paquetes. Fail2ban detecta aquellas direcciones IP cuyo comportamiento resulta inusual, por ejemplo, las que han intentado acceder varias veces con una contraseña incorrecta a los archivos de registro del servidor. Un cierto número de intentos fallidos, asegurará automáticamente que ese usuario sea "baneado", es decir, que su IP sea bloqueada durante un periodo determinado de tiempo. El administrador también puede configurar Fail2ban para recibir notificaciones de este tipo de accesos por correo electrónico.
Por defecto, Fail2ban cuenta con una serie de filtros, por ejemplo para Apache, Postfix o Courier Mail Server, con los que se pueden reconocer cadenas específicas en los archivos de registro. Con la ayuda de estos filtros es posible desencadenar las así llamadas acciones, comandos que se ejecutan en un tiempo predeterminado. La combinación de un filtro con una acción es conocida bajo el nombre de "cárcel" (del inglés Jail). Fail2ban puede programar estas "cárceles" para cualquier software que cree archivos de registro. Debido a que Fail2ban es un framework de código abierto con licencia GPL2, su uso y expansión no tienen ningún coste.