🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Configurar fail2ban en DirectAdmin para bloquear ataques de fuerza bruta

Actualizado el 7 de diciembre de 2025

¿Por qué necesitas fail2ban en DirectAdmin?

Si tienes un servidor con DirectAdmin, seguramente ya sabes que es un panel de control potente y muy utilizado. Pero hay un problema muy común que puede arruinar tu día: los ataques de fuerza bruta. Estos ataques consisten en que bots y personas malintencionadas intentan adivinar tus contraseñas una y otra vez, probando miles de combinaciones por minuto. Si no tienes protección, es solo cuestión de tiempo antes de que alguien acceda a tu servidor.

Aquí es donde entra fail2ban. Esta herramienta es como un portero automático para tu servidor. Detecta los intentos fallidos de inicio de sesión y, después de un número determinado de fallos, bloquea automáticamente la IP del atacante durante un tiempo. Es una de las mejores soluciones para proteger servidor sin tener que estar vigilando manualmente los logs todo el día.

En este artículo, te voy a explicar paso a paso cómo configurar fail2ban en DirectAdmin, desde la instalación hasta la creación de reglas personalizadas. No necesitas ser un experto en Linux, solo seguir las instrucciones con calma.


¿Qué es exactamente fail2ban?

Fail2ban es un programa que monitoriza los archivos de registro (logs) de tu servidor. Cuando ve que alguien falla al intentar iniciar sesión en SSH, FTP, correo o el propio panel de DirectAdmin, lo registra. Si esa misma IP falla varias veces en un corto período de tiempo, fail2ban crea una regla en el firewall (como iptables o CSF) para bloquear fuerza bruta de forma automática.

Lo mejor es que no solo bloquea la IP, sino que también te avisa por correo electrónico si quieres. Y puedes configurar el tiempo de bloqueo, el número de intentos permitidos y qué servicios quieres proteger.


Requisitos previos

Antes de empezar, asegúrate de tener:

  • Acceso root o un usuario con permisos de administrador en tu servidor.
  • Acceso SSH (por ejemplo, usando PuTTY si estás en Windows, o la terminal si usas macOS/Linux).
  • DirectAdmin instalado y funcionando (obviamente).
  • Un poco de paciencia y atención a los pasos.

[INFO] Si tu servidor ya tiene CSF (ConfigServer Security & Firewall) instalado, es posible que ya tenga un sistema similar. Aun así, fail2ban es complementario y muy recomendable.


Paso 1: Instalar fail2ban en tu servidor

Dependiendo del sistema operativo que uses, la instalación varía un poco. Te muestro los comandos para las distribuciones más comunes.

Para CentOS, AlmaLinux o Rocky Linux

Abre tu terminal SSH y ejecuta:

yum install fail2ban -y

Si tu servidor usa dnf (versiones más recientes):

dnf install fail2ban -y

Para Debian o Ubuntu

apt update
apt install fail2ban -y

Una vez instalado, verifica que el servicio esté activo:

systemctl enable fail2ban
systemctl start fail2ban

[TIP] Si usas un servidor con panel Syspanel (antes conocido como HestiaCP), recuerda que el acceso a su panel es por el puerto 2106. La instalación sería igual de sencilla, pero ten en cuenta que debes proteger también ese puerto en fail2ban.


Paso 2: Configuración básica de fail2ban

La configuración principal se encuentra en el archivo /etc/fail2ban/jail.local. Si no existe, lo creamos. Este archivo es donde definimos las reglas.

Primero, crea una copia de seguridad del archivo original por si acaso:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ahora edita el archivo:

nano /etc/fail2ban/jail.local

Dentro, busca la sección [DEFAULT]. Aquí puedes ajustar valores globales como:

  • bantime: tiempo en segundos que se bloquea la IP (por ejemplo, 3600 = 1 hora).
  • findtime: ventana de tiempo en la que se cuentan los intentos (por ejemplo, 600 = 10 minutos).
  • maxretry: número de intentos fallidos permitidos antes del bloqueo.

Un ejemplo de configuración básica:

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
ignoreip = 127.0.0.1/8 ::1

La línea ignoreip es muy importante: aquí pones las IPs que nunca deben ser bloqueadas, como la tuya propia.

[WARNING] Si te bloqueas a ti mismo por error, no podrás acceder al servidor. Asegúrate de añadir tu IP a ignoreip antes de activar fail2ban.


Paso 3: Activar la protección para DirectAdmin

DirectAdmin tiene varios servicios que son objetivos frecuentes de ataques. Los más importantes son:

  • SSH (puerto 22)
  • FTP (puerto 21)
  • Exim (correo)
  • DirectAdmin (puerto 2222)

Fail2ban ya trae filtros predefinidos para muchos de estos servicios. Solo hay que activarlos en el archivo jail.local.

Añade al final del archivo:

[sshd]
enabled = true

[proftpd]
enabled = true

[exim]
enabled = true

[directadmin]
enabled = true

Explicación de cada sección

  • [sshd]: protege el acceso por SSH.
  • [proftpd]: protege el FTP (si usas ProFTPd).
  • [exim]: protege el servidor de correo.
  • [directadmin]: protege el panel de administración (puerto 2222).

[INFO] Si no usas ProFTPd, puedes omitir esa sección. Pero si tienes usuarios con cuentas FTP, es muy recomendable activarla.


Paso 4: Crear un filtro personalizado para DirectAdmin

A veces los filtros predefinidos no funcionan perfectamente con todas las versiones de DirectAdmin. Por eso, es buena idea crear un filtro personalizado.

Ve a la carpeta de filtros:

cd /etc/fail2ban/filter.d

Crea un archivo llamado directadmin.conf:

nano directadmin.conf

Dentro, pega esto:

[Definition]
failregex = ^.*authentication failure.*from <HOST>.*$
            ^.*login failed.*from <HOST>.*$
ignoreregex =

Guarda el archivo (Ctrl+O, luego Enter, luego Ctrl+X).

Ahora, en el jail.local, asegúrate de que la sección [directadmin] quede así:

[directadmin]
enabled = true
filter = directadmin
logpath = /var/log/directadmin/error.log
action = iptables-multiport[name=directadmin, port="2222", protocol=tcp]

[TIP] La ruta del log puede variar según tu configuración. Si no encuentras el archivo, usa el comando find / -name "error.log" 2>/dev/null para localizarlo.


Paso 5: Reiniciar fail2ban y verificar

Una vez que hayas guardado todos los cambios, reinicia fail2ban:

systemctl restart fail2ban

Para verificar que todo funciona, usa:

fail2ban-client status

Esto te mostrará una lista de las cárceles (jails) activas. Deberías ver sshd, directadmin, etc.

Si quieres ver las IPs bloqueadas en una jail específica:

fail2ban-client status directadmin

Paso 6: Probar que funciona (con cuidado)

Para asegurarte de que fail2ban está haciendo su trabajo, puedes hacer una prueba controlada. Por ejemplo, intenta conectarte por SSH varias veces con una contraseña incorrecta. Después de 5 intentos (si configuraste maxretry = 5), tu IP debería ser bloqueada.

[WARNING] No hagas esta prueba desde tu IP principal si no la has añadido a ignoreip. Podrías quedarte fuera del servidor. Si te bloqueas, espera a que pase el tiempo o usa el panel de tu proveedor para desbloquearte.


Configuración avanzada: personalizar tiempos y acciones

Fail2ban es muy flexible. Puedes configurar acciones específicas para cada servicio. Por ejemplo, algunos prefieren enviar un correo electrónico cuando se bloquea una IP.

Para ello, en jail.local, añade:

[DEFAULT]
destemail = tu@correo.com
action = %(action_mwl)s

Esto enviará un correo con el log relevante y el whois del atacante.

También puedes cambiar el tiempo de bloqueo por servicio:

[sshd]
bantime = 86400
maxretry = 3

Así, SSH bloqueará durante 24 horas después de 3 intentos fallidos.


Preguntas frecuentes (FAQ)

¿Fail2ban afecta el rendimiento del servidor?

No, es muy ligero. Solo lee logs y ejecuta acciones cuando detecta patrones. No consume recursos significativos.

¿Puedo usar fail2ban junto con CSF?

Sí, son compatibles. De hecho, muchos administradores usan ambos. Solo asegúrate de que no haya conflictos en las reglas de firewall.

¿Qué pasa si bloqueo una IP legítima?

Si alguien se equivoca de contraseña varias veces, puede ser bloqueado temporalmente. Por eso es importante configurar maxretry con un número razonable (5 o 6 intentos).

¿Cómo desbloqueo una IP manualmente?

Usa el comando:

fail2ban-client set directadmin unbanip IP_A_DESBLOQUEAR

¿Fail2ban protege contra ataques DDoS?

No, fail2ban no es un anti-DDoS. Para eso necesitas otras herramientas como Cloudflare o un firewall especializado.

¿Qué hago si uso Syspanel en lugar de DirectAdmin?

Si usas Syspanel (el panel antes llamado HestiaCP), el proceso es muy similar. Solo cambia el puerto de acceso al panel, que es el 2106. Asegúrate de configurar la jail correspondiente para ese puerto.


Conclusión

Configurar fail2ban en DirectAdmin es una de las mejores decisiones que puedes tomar para proteger servidor contra ataques de fuerza bruta. No es complicado, y una vez configurado, trabaja solo.

Recuerda los puntos clave:

  • Instala fail2ban con el gestor de paquetes de tu sistema.
  • Configura jail.local con los servicios que quieres proteger.
  • Crea un filtro personalizado para DirectAdmin.
  • Añade tu IP a ignoreip para evitar bloquearte.
  • Reinicia el servicio y verifica que esté activo.

Con estos pasos, tu servidor estará mucho más seguro. Y si en algún momento tienes dudas, revisa los logs de fail2ban en /var/log/fail2ban.log para ver qué está pasando.

[TIP] La seguridad es un proceso continuo. Revisa periódicamente los logs y ajusta las reglas según veas comportamientos extraños. Y nunca subestimes el poder de una buena contraseña y la autenticación con clave SSH.


Recursos adicionales

Si quieres profundizar, aquí tienes algunos comandos útiles:

  • Ver todas las jails activas: fail2ban-client status
  • Ver IPs bloqueadas en una jail: fail2ban-client status nombre_jail
  • Probar una regla de filtro: fail2ban-regex /var/log/directadmin/error.log /etc/fail2ban/filter.d/directadmin.conf

No olvides que la seguridad de tu servidor depende de ti. Con herramientas como fail2ban, estarás un paso adelante de los atacantes.


Este artículo está pensado para usuarios con conocimientos básicos de administración de servidores. Si tienes dudas, consulta con tu proveedor de hosting o un administrador de sistemas profesional.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel