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.conf y 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 bantime progresivo 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.

Siguiente Postt Post Anterior