Fail2ban: bloqueo automático de atacantes de fuerza bruta
Dedicated & VPS
2

Fail2ban: bloqueo automático de atacantes de fuerza bruta

Si expones tu servidor a internet, vas a recibir intentos de login fallidos a cada hora. Fail2ban es una herramienta sencilla pero muy efectiva que lee tus logs, detecta patrones de ataque y bloquea automáticamente la IP del atacante en el firewall por un tiempo determinado. En Oxira lo recomendamos como primera línea de defensa en cualquier VPS o servidor dedicado.

Instalación

En distribuciones basadas en Debian o Ubuntu:

sudo apt update
sudo apt install fail2ban -y

En AlmaLinux, Rocky o CentOS Stream:

sudo dnf install epel-release -y
sudo dnf install fail2ban -y
sudo systemctl enable --now fail2ban

Configurar jail.local

Nunca edites jail.conf directamente. En su lugar, crea un archivo /etc/fail2ban/jail.local donde defines tus ajustes. Esto evita que una actualización sobrescriba tu configuración.

[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5
backend  = systemd
ignoreip = 127.0.0.1/8 ::1 TU_IP_FIJA

[sshd]
enabled = true
port    = 22

bantime es cuánto dura el bloqueo, findtime es la ventana en la que se cuentan los intentos y maxretry es cuántos fallos tolera antes de banear.

Jails útiles para hosting

  • sshd: protege el acceso SSH.
  • apache-auth / nginx-http-auth: bloquea fuerza bruta contra paneles protegidos con autenticación HTTP básica.
  • wordpress: requiere instalar el filtro, pero es ideal si tus clientes usan WP y sufren ataques a wp-login.php.
  • postfix / dovecot: esencial si corres correo en el servidor.

Operación del día a día

Para ver qué jails tienes activos:

sudo fail2ban-client status

Para ver qué IPs están baneadas en un jail concreto:

sudo fail2ban-client status sshd

Si necesitas desbloquear una IP (por ejemplo, si te baneaste a ti mismo):

sudo fail2ban-client set sshd unbanip 203.0.113.45

Recomendaciones

Empieza con valores suaves (maxretry 5, bantime 1h) y ve endureciendo según lo que veas en los logs. Si un mismo rango te ataca repetidas veces, sube el bantime a 24h o incluso a una semana. Combina Fail2ban con SSH por clave pública y habrás eliminado el 99% del ruido de fondo que recibe tu servidor.