Fail2Ban es una herramienta fundamental para proteger servidores Linux contra ataques de fuerza bruta, escaneos de puertos y accesos no autorizados. Esta guía avanzada está orientada a administradores que ya conocen la configuración básica de Fail2Ban y quieren sacarle el máximo provecho mediante comandos útiles, personalización de jails y gestión de eventos en tiempo real.
Consultar el estado general del sistema
Verifica el estado global de Fail2Ban y el listado de jails activos:
sudo fail2ban-client status
Ver el estado detallado de un jail específico
Muestra información del jail (servicio protegido): intentos, IPs bloqueadas y estadísticas.
sudo fail2ban-client status <nombre_del_jail>
Ejemplo para SSH:
sudo fail2ban-client status sshd
Listar las IPs actualmente bloqueadas
Consulta las IPs baneadas activamente en un jail:
sudo fail2ban-client status <nombre_del_jail> | grep "Banned IP list"
Desbloquear una IP manualmente
Desbanea una IP que haya sido bloqueada, por ejemplo, por un falso positivo:
sudo fail2ban-client set <nombre_del_jail> unbanip <IP>
Ejemplo:
sudo fail2ban-client set sshd unbanip 192.168.0.10
Monitorizar eventos en tiempo real (logs)
Observa en vivo qué eventos detecta Fail2Ban:
sudo tail -f /var/log/fail2ban.log
Reiniciar un jail individual
Reinicia un jail específico sin afectar otros servicios:
sudo fail2ban-client restart <nombre_del_jail>
Ver configuración interna de Fail2Ban
Revela la configuración activa: filtros, acciones, rutas de logs y parámetros aplicados.
sudo fail2ban-client -d
Ver la lista de jails habilitados
Consulta qué jails están activos y protegidos:
sudo fail2ban-client status
Bloquear o desbloquear IPs manualmente
Ban manual:
sudo fail2ban-client set <nombre_del_jail> banip <IP>
Unban manual:
sudo fail2ban-client set <nombre_del_jail> unbanip <IP>
Proteger servicios en puertos personalizados
Si el servicio corre en un puerto no estándar, puedes definir un jail personalizado.
Paso 1: Editar jail.local
sudo nano /etc/fail2ban/jail.local
Paso 2: Agregar configuración
[mi_servicio]
enabled = true
port = 12345
filter = mi_servicio
logpath = /var/log/mi_servicio.log
maxretry = 3
bantime = 3600
Paso 3: Reiniciar Fail2Ban
sudo systemctl restart fail2ban
Nota: Asegúrate de tener un filtro válido en /etc/fail2ban/filter.d/mi_servicio.conf.
BONUS: Consejos prácticos
- Incrementa
findtimeybantimepara entornos públicos. - Prueba expresiones regulares con
fail2ban-regex. - Integra con
ipsetsi manejas muchas IPs bloqueadas.
Una base sólida de protección
Con este conjunto de comandos y configuraciones avanzadas, puedes adaptar Fail2Ban a casi cualquier servicio o necesidad. Desde monitorear eventos hasta definir filtros personalizados, Fail2Ban ofrece una base sólida para proteger tu infraestructura Linux contra ataques automatizados y persistentes.
¿Quieres una guía específica para crear filtros personalizados (fail2ban-regex, filter.d) o integrar con ipset y firewalld? Pídelo y la añadimos como siguiente entrega.









