Cómo instalar y configurar Fail2Ban en Linux
9 min de lectura - 14 de mayo de 2026

Guía paso a paso para instalar, configurar y probar Fail2Ban en servidores Linux basados en Ubuntu, Debian y RHEL.
Cómo instalar y configurar Fail2Ban en Linux
Fail2Ban supervisa los registros de su servidor en busca de actividad sospechosa y prohíbe automáticamente las IP infractoras mediante la actualización de las reglas de su cortafuegos. Detiene los ataques de fuerza bruta, reduce el ruido de los registros y se ejecuta silenciosamente en segundo plano una vez configurado. Esta guía cubre la instalación en Ubuntu/Debian, la configuración del núcleo, la configuración de la jaula y algunas opciones avanzadas que vale la pena conocer.
Requisitos previos
Fail2Ban funciona en la mayoría de las distribuciones de Linux: Ubuntu, Debian, AlmaLinux, CentOS, RHEL, Rocky Linux y Fedora. Necesitarás
- Python 3 instalado en el sistema
- Acceso root o sudo para la instalación de paquetes y cambios en el cortafuegos
- Un cortafuegos activo (iptables, nftables, ufw, o firewalld)
- Archivos de registro que capturen los intentos fallidos de inicio de sesión
(/var/log/auth.logen sistemas basados en Debian,/var/log/secureen sistemas basados en RHEL)
En los sistemas basados en RHEL, active primero el repositorio EPEL. Antes de instalar Fail2Ban, confirme que su cortafuegos está funcionando con ufw status o systemctl status firewalld.
Instalación de Fail2Ban en Ubuntu/Debian
Actualice sus paquetes e instale Fail2Ban:
sudo apt update && sudo apt upgrade -y
sudo apt install fail2banHabilite el servicio para que se inicie en el arranque, a continuación, iniciarlo:
sudo systemctl enable fail2ban
sudo systemctl start fail2banCopia la configuración por defecto a un archivo local. Edita siempre jail.local, no jail.conf, para que las actualizaciones de paquetes no sobrescriban tu configuración:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localComprueba que todo funciona:
sudo systemctl status fail2ban
sudo fail2ban-client statusEl primer comando debería mostrar "Active: active (running)". El segundo muestra las jaulas activas. Confirme que Fail2Ban está habilitado en el arranque con sudo systemctl is-enabled fail2ban.
Configuración de las jaulas
Configuración por defecto
Abra /etc/fail2ban/jail.local y ajuste la sección [DEFAULT]. Estos ajustes se aplican a todas las jaulas a menos que se anulen:
| Parámetro | Valor recomendado | Qué hace |
|---|---|---|
bantime | 3600 | Bloquea una IP durante 1 hora |
findtime | 600 | Cuenta los fallos dentro de una ventana de 10 minutos |
maxretry | de3 a 5 | Fallos antes de que se active un bloqueo |
ignoreip | 127.0.0.1/8 ::1 | IPs que nunca son baneadas |
Añade tu propia IP de gestión a ignoreip para no bloquearte a ti mismo. Ejemplo: ignoreip = 127.0.0.1/8 ::1 203.0.113.50.
Protección SSH
Habilite la jaula SSH en jail.local:
[sshd]
enabled = trueCompruebe que logpath apunta al archivo de registro correcto para su distro. Si has movido SSH a un puerto no estándar (por ejemplo, 2222), actualiza el parámetro de puerto para que coincida.
Protección del servidor web
Habilita la jaula que corresponda a tu servidor web:
- Nginx:
[nginx-http-auth]para fallos de autenticación,[nginx-botsearch]para bots maliciosos - Apache:
[apache-auth]para autenticación,[apache-badbots]para bots
Cárcel de recirculación
La jaula [recidive ] atrapa IPs que siguen siendo baneadas a través de otras jaulas y aplica una penalización más larga, normalmente una semana (604.800 segundos). Es útil para atacantes persistentes que rotan su enfoque.
Después de hacer cambios, recarga:
sudo systemctl restart fail2ban
sudo fail2ban-client statusPruebas y supervisión
Probar las prohibiciones
Antes de confiar en Fail2Ban en producción, pruébelo. Desde una máquina remota (no su IP de administrador), intente iniciar sesión SSH hasta superar el número máximo de intentos. Usted debe ser bloqueado. Confirme con:
sudo fail2ban-client status sshdVea cómo se producen los bloqueos en tiempo real:
tail -f /var/log/fail2ban.logSi baneas accidentalmente una IP legítima, desbanéala:
sudo fail2ban-client set sshd unbanip 203.0.113.50Control diario
Revisa el historial de baneos consultando el registro:
grep "Ban\|Unban" /var/log/fail2ban.logComandos de gestión útiles:
| Comando | Propósito |
|---|---|
fail2ban-client status | Lista todas las jaulas activas |
fail2ban-client prohibido | Mostrar todas las IPs actualmente baneadas |
fail2ban-client set <cárcel> unbanip <IP> | Desbanear una IP específica |
fail2ban-client unban --all | Borrar todos los bans |
fail2ban-client set <jail> banip <IP> | Banea manualmente una IP |
Los bans persisten a través de reinicios. Fail2Ban los almacena en una base de datos SQLite en /var/lib/fail2ban/fail2ban.sqlite3.
Configuración avanzada
Cambiar a nftables
nftables es el sustituto moderno de iptables. Maneja IPv4 e IPv6 en una sola estructura, escala mejor con grandes listas de prohibición, y tiene limitación de velocidad incorporada. Si estás en Ubuntu 22.04+, Debian 11+, o cualquier distribución reciente, es la mejor opción.
Configúralo en jail.local:
[DEFAULT]
banaction = nftables-multiportReinicie Fail2Ban, luego verifique con sudo nft list ruleset. Debería ver f2b-table y f2b-chain en la salida. Utiliza iptables sólo si estás en un sistema antiguo o tienes requisitos de compatibilidad.
Notificaciones por correo electrónico
Por defecto, Fail2Ban banea silenciosamente. Para recibir alertas por correo electrónico, añada lo siguiente a la sección [DEFAULT] de jail.local:
[DEFAULT]
destemail = [email protected]
sender = [email protected]
mta = sendmail
action = %(action_mwl)sLa acción action_mwl envía un correo electrónico con los detalles del ban, datos WHOIS, y las líneas de registro que activaron el ban. Usa action_mw si sólo quieres los datos de WHOIS. Necesitarás un agente de transferencia de correo como sendmail instalado, o una retransmisión SMTP configurada a través de algo como msmtp.
Para alertas de Slack o Discord, crea un script que envíe un webhook y conéctalo a través de un archivo de acción personalizado en /etc/fail2ban/action.d/.
Si usted está buscando un servidor con acceso root completo y ancho de banda no medido para ejecutar Fail2Ban, echa un vistazo a los servidores dedicados de FDC.

¿Cansado de despliegues lentos o límites de ancho de banda? FDC Servers ofrece potencia dedicada instantánea, alcance global y planes flexibles diseñados para cualquier escala. ¿Listo para actualizar?
Libere el rendimiento ahora
Lista de comprobación para el refuerzo de servidores Linux
Lista de comprobación paso a paso para reforzar un servidor Linux. Cubre SSH, cortafuegos, parches, permisos de archivos, SELinux/AppArmor y registro de auditorías
15 min de lectura - 8 de mayo de 2026
tutorial de iperf3: Prueba de velocidad de red en Linux y Windows
10 min de lectura - 7 de mayo de 2026