Proteger Linux contra fuerza bruta con Fail2ban
Fail2ban es una herramienta de seguridad que protege sistemas Linux frente a ataques de fuerza bruta. Analiza los registros del sistema y bloquea automáticamente direcciones IP que generan intentos de acceso sospechosos.
Es especialmente útil en servidores expuestos a Internet, donde servicios como SSH, FTP o paneles web son objetivos habituales de ataques automatizados.
Explicación técnica clara
Fail2ban funciona monitorizando archivos de log (por ejemplo, /var/log/auth.log).
Cuando detecta varios intentos fallidos desde una misma IP en un periodo de tiempo determinado, aplica una sanción automática mediante reglas del firewall (iptables, nftables o UFW).
Este mecanismo reduce drásticamente el número de intentos de acceso no autorizados y el ruido en los logs del sistema.
Sintaxis
El servicio Fail2ban se gestiona mediante systemctl y se configura usando ficheros .conf y .local.
Comandos básicos:
systemctl start fail2ban
systemctl stop fail2ban
systemctl status fail2ban
Ejemplos prácticos reales
Instalar Fail2ban en Debian / Ubuntu
sudo apt update
sudo apt install fail2ban -y
Comprobar que el servicio está activo
sudo systemctl status fail2ban
Crear configuración personalizada
Nunca edites jail.conf directamente. Crea un archivo local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Proteger el servicio SSH
Edita el archivo:
sudo nano /etc/fail2ban/jail.local
Ejemplo de configuración mínima para SSH:
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 1h
findtime = 10m
Reinicia el servicio:
sudo systemctl restart fail2ban
Ver IPs bloqueadas
sudo fail2ban-client status sshd
Errores comunes
- Editar directamente
jail.confy perder cambios tras una actualización. - Configurar tiempos de bloqueo demasiado bajos.
- No revisar los logs para validar que Fail2ban funciona correctamente.
- Pensar que Fail2ban sustituye a un firewall.
Buenas prácticas / Seguridad
-
Usar Fail2ban junto a UFW o nftables.
-
Cambiar el puerto SSH solo como medida adicional, no como única protección.
-
Ajustar
bantimeprogresivo en servidores críticos. -
Revisar periódicamente los logs de Fail2ban:
/var/log/fail2ban.log
-
Combinar con autenticación por clave SSH.
Preguntas frecuentes (FAQ)
¿Fail2ban bloquea ataques automáticamente?
Sí. Una vez configurado, actúa de forma automática sin intervención del administrador.
¿Consume muchos recursos?
No. Su consumo de CPU y memoria es muy bajo.
¿Funciona con servicios web?
Sí. Puede proteger Apache, Nginx, Postfix, FTP y muchos otros servicios.
¿Fail2ban es obligatorio en un servidor?
No es obligatorio, pero sí altamente recomendable en sistemas accesibles desde Internet.