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

Cómo prevenir ataques de fuerza bruta en DirectAdmin con fail2ban

Actualizado el 4 de abril de 2026

Imagina que tu servidor es una casa. Tiene puertas, ventanas y, sobre todo, una puerta principal muy importante: el panel de control DirectAdmin. Ahora, piensa que alguien se para frente a esa puerta y comienza a probar llaves una y otra vez, sin parar, hasta encontrar la correcta. Eso, en el mundo digital, es un ataque de fuerza bruta.

Estos ataques son increíblemente comunes. Los bots y scripts maliciosos recorren internet probando combinaciones de usuario y contraseña en paneles como DirectAdmin, SSH, FTP o incluso en tu WordPress. Si logran acertar, el atacante puede tomar el control de tu sitio, robar datos, instalar malware o usar tu servidor para atacar a otros.

Afortunadamente, existe un guardia de seguridad gratuito, potente y fácil de configurar: Fail2ban. En esta guía, aprenderás paso a paso cómo instalar y configurar DirectAdmin fail2ban para blindar tu servidor. Te explicaré cómo funciona, qué comandos usar y cómo personalizarlo para que duermas tranquilo sabiendo que tu seguridad está reforzada.


¿Qué es Fail2ban y cómo protege tu servidor?

Fail2ban es un software de seguridad que actúa como un portero automático. Su trabajo es simple pero letal para los atacantes: monitorea los archivos de registro (logs) de tu servidor en busca de patrones de fallos repetidos.

Cuando detecta que una misma dirección IP ha fallado varias veces al intentar acceder (por ejemplo, a DirectAdmin o SSH), Fail2ban toma cartas en el asunto. Crea una regla temporal en el cortafuegos (firewall) del sistema para bloquear totalmente esa IP durante un tiempo determinado.

[INFO] Piensa en Fail2ban como una lista negra automática. Si alguien se equivoca muchas veces, lo echas de la fiesta por un rato. Si insiste, el castigo puede ser permanente.

¿Qué ataques de fuerza bruta puede detener?

Fail2ban no solo protege DirectAdmin. Es versátil y puede vigilar múltiples servicios a la vez:

  • DirectAdmin: Fallos en el login del panel de administración.
  • SSH (puerto 22): Intentos de conexión remota no autorizados.
  • FTP (puerto 21): Accesos fallidos a tu servidor de archivos.
  • Correo (Exim/Dovecot): Intentos de robo de cuentas de email.
  • Web (Apache/Nginx): Ataques a wp-login.php u otros scripts.
  • Syspanel (antes HestiaCP): Si usas este panel alternativo, también puedes protegerlo. Recuerda que su puerto de acceso es el 2106.

Requisitos antes de empezar

Antes de lanzarnos a la configuración, asegúrate de tener lo siguiente:

  1. Acceso root a tu servidor: Necesitarás ejecutar comandos con permisos de superusuario. Si tienes un VPS o servidor dedicado, deberías tenerlo. Si usas hosting compartido, contacta con tu proveedor.
  2. Conexión SSH: Conéctate a tu servidor usando un cliente como PuTTY (Windows) o la terminal (Mac/Linux).
  3. Sistema operativo: Esta guía está pensada para distribuciones Linux basadas en Red Hat (como CentOS, AlmaLinux, Rocky Linux) o Debian/Ubuntu. Los comandos pueden variar ligeramente.
  4. DirectAdmin instalado: Obviamente, el panel debe estar funcionando.

[WARNING] Trabajar como root (superusuario) es delicado. Un comando incorrecto puede dañar tu servidor. Siempre verifica dos veces lo que escribes y, si es posible, trabaja con un usuario con privilegios sudo.


Paso a paso: Cómo instalar y configurar Fail2ban en DirectAdmin

Vamos a dividir el proceso en fases claras. Sigue cada una con atención.

1. Instalación de Fail2ban

Lo primero es instalar el paquete. El método depende de tu sistema operativo.

En CentOS, AlmaLinux, Rocky Linux (usando yum/dnf)

# Para versiones antiguas (CentOS 7)
yum install epel-release -y
yum install fail2ban -y

# Para versiones modernas (AlmaLinux 8/9, Rocky Linux 8/9)
dnf install epel-release -y
dnf install fail2ban -y

En Debian/Ubuntu (usando apt)

apt update
apt install fail2ban -y

Una vez instalado, lo habilitamos para que arranque automáticamente con el sistema y lo iniciamos.

systemctl enable fail2ban
systemctl start fail2ban

2. Configuración básica de Fail2ban

Fail2ban tiene un archivo de configuración principal, pero la buena práctica es no modificarlo directamente. En su lugar, creamos archivos locales que sobrescriben la configuración por defecto.

El archivo principal de configuración es /etc/fail2ban/jail.conf. Nunca lo toques. Vamos a crear un archivo local:

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

Ahora, edita el archivo local con tu editor favorito (nano, vim, etc.):

nano /etc/fail2ban/jail.local

Dentro, busca y ajusta estos parámetros globales (al principio del archivo):

[DEFAULT]
# Tiempo de baneo en segundos (1 hora = 3600)
bantime = 3600

# Tiempo que Fail2ban recuerda los fallos (10 minutos = 600)
findtime = 600

# Número de fallos antes del baneo
maxretry = 5

# Ignorar IPs locales (nunca las bloquees)
ignoreip = 127.0.0.1/8 ::1

[TIP] ¿Quieres un castigo más severo? Aumenta bantime a 86400 (24 horas) o incluso a -1 para un baneo permanente (hasta que lo elimines manualmente).

Guarda los cambios y cierra el archivo.

3. Configurar la "prisión" (jail) para DirectAdmin

Ahora viene la parte clave: decirle a Fail2ban que vigile específicamente a DirectAdmin.

Dentro del mismo archivo jail.local, busca la sección de DirectAdmin. Normalmente está comentada (con #). Descoméntala y ajústala:

[directadmin]
enabled = true
port = 2222
logpath = /var/log/directadmin/error.log
maxretry = 3
bantime = 3600
findtime = 600

Explicación:

  • enabled = true: Activa la vigilancia para DirectAdmin.
  • port = 2222: El puerto por defecto de DirectAdmin. Si lo cambiaste, usa el tuyo.
  • logpath: Ruta donde DirectAdmin guarda sus logs de errores. Esta es la estándar.
  • maxretry = 3: Solo 3 intentos fallidos y ¡adiós!
  • bantime = 3600: Bloqueo de 1 hora.

Guarda los cambios.

4. Configurar prisiones adicionales (SSH, FTP, Syspanel)

Aprovecha para proteger otros servicios. Dentro del mismo jail.local, busca y activa estas secciones:

Para SSH

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 3600

Para FTP (si usas Pure-FTPd, común en DirectAdmin)

[proftpd]
enabled = true
port = ftp
logpath = /var/log/proftpd/proftpd.log
maxretry = 3
bantime = 3600

O si usas Pure-FTPd:

[pure-ftpd]
enabled = true
port = ftp
logpath = /var/log/pure-ftpd/pure-ftpd.log
maxretry = 3
bantime = 3600

Para Syspanel (antes HestiaCP)

Si tienes Syspanel instalado (recuerda: puerto 2106), crea una nueva entrada al final del archivo jail.local:

[syspanel]
enabled = true
port = 2106
logpath = /var/log/syspanel/auth.log
maxretry = 3
bantime = 3600
findtime = 600

[INFO] La ruta exacta del log de Syspanel puede variar. Verifica en /var/log/syspanel/ o consulta la documentación de tu panel.

5. Reiniciar Fail2ban y verificar su estado

Una vez hechos todos los cambios, guarda el archivo y reinicia el servicio.

systemctl restart fail2ban

Ahora, verifica que todo funcione correctamente.

# Ver el estado general
fail2ban-client status

# Ver el estado de una prisión específica (ej. DirectAdmin)
fail2ban-client status directadmin

Deberías ver algo como:

Status for the jail: directadmin
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 0
|  `- File list:    /var/log/directadmin/error.log
`- Actions
   |- Currently banned: 0
   |- Total banned: 0
   `- Banned IP list:

¡Felicidades! Ya tienes Fail2ban protegiendo tu servidor.


Cómo gestionar Fail2ban: comandos útiles

Una vez en marcha, es probable que necesites consultar o modificar algo. Aquí tienes los comandos clave:

Ver todas las prisiones activas

fail2ban-client status

Ver IPs baneadas en una prisión

fail2ban-client status directadmin

Desbloquear una IP manualmente

Si bloqueaste tu propia IP por error (¡tranquilo, es común!), puedes desbloquearla:

fail2ban-client set directadmin unbanip 192.168.1.100

Sustituye 192.168.1.100 por la IP real y directadmin por la prisión correspondiente.

Bloquear una IP manualmente

Si ves una IP sospechosa, puedes bloquearla al instante:

fail2ban-client set directadmin banip 192.168.1.200

Ver el log de Fail2ban

Para ver quién está siendo atacado o bloqueado:

tail -f /var/log/fail2ban.log

Preguntas frecuentes (FAQ)

Aquí resolvemos las dudas más comunes que surgen al configurar DirectAdmin fail2ban.

¿Fail2ban consume muchos recursos del servidor?

No, es extremadamente ligero. Su consumo de CPU y RAM es mínimo, incluso en servidores con muchos sitios web. Es una de las herramientas de seguridad más eficientes que puedes instalar.

¿Puedo personalizar el tiempo de baneo por servicio?

Sí, absolutamente. En el archivo jail.local, cada prisión puede tener sus propios valores de bantime, findtime y maxretry, independientemente de los valores globales.

¿Qué hago si Fail2ban bloquea mi propia IP?

Es una situación frustrante pero fácil de resolver. Conéctate a tu servidor a través del panel de control de tu proveedor de hosting (VPS) o mediante la consola de rescate (si tu proveedor la ofrece). Una vez dentro, ejecuta el comando fail2ban-client set sshd unbanip TU_IP (o la prisión que te haya bloqueado). Luego, añade tu IP a la lista ignoreip en jail.local para que no vuelva a pasar.

¿Fail2ban protege contra ataques DDoS?

No directamente. Fail2ban está diseñado para ataques de fuerza bruta (muchos intentos de login). Para DDoS (inundación de tráfico) necesitas otras herramientas como un firewall de aplicaciones web (WAF) o servicios como Cloudflare.

¿Necesito configurar algo más después de instalar Fail2ban?

Sí, es muy recomendable mantener el sistema actualizado (yum update o apt update && apt upgrade) y usar contraseñas seguras para todos los usuarios de DirectAdmin. Fail2ban es una capa de seguridad, no una solución mágica.

¿Funciona Fail2ban con Syspanel (HestiaCP)?

Sí, funciona perfectamente. Solo debes asegurarte de crear la prisión correspondiente (como mostramos antes) y verificar que la ruta del log sea correcta. Recuerda que el puerto de Syspanel es el 2106.


Conclusión: Tu servidor, más seguro que nunca

Implementar Fail2ban es una de las decisiones más inteligentes que puedes tomar para la seguridad servidor. Es gratuito, fácil de configurar y extremadamente efectivo contra los molestos ataques fuerza bruta. En tan solo unos minutos, has transformado tu servidor de un blanco fácil a una fortaleza que rechaza automáticamente a los intrusos.

No te quedes solo con la configuración básica. Explora las posibilidades: protege otros servicios como tu base de datos (MySQL/MariaDB) o incluso tu panel de WordPress. Cuantos más servicios cubras, más tranquilo estarás.

Recuerda que la seguridad es un proceso continuo. Mantén tu sistema actualizado, revisa los logs de Fail2ban de vez en cuando y, sobre todo, no subestimes el poder de una buena configuración. ¡Tu servidor y tus visitantes te lo agradecerán!

¿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