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

Cómo instalar y configurar Fail2ban en DirectAdmin

Actualizado el 7 de mayo de 2026

¿Qué es Fail2ban y por qué lo necesitas en DirectAdmin?

La seguridad de tu servidor es una de las tareas más importantes que debes cuidar, especialmente si gestionas sitios web con acceso SSH o paneles de control como DirectAdmin. Cada día, miles de bots intentan acceder a servidores mediante ataques de fuerza bruta SSH, probando combinaciones de usuario y contraseña sin descanso. Aquí es donde entra en juego Fail2ban DirectAdmin.

Fail2ban es una herramienta de seguridad que actúa como un guardia de tráfico. Su función principal es monitorear los registros (logs) del sistema en busca de patrones sospechosos, como múltiples intentos fallidos de inicio de sesión. Cuando detecta una IP que supera un umbral definido, la bloquea automáticamente a nivel de firewall, impidiendo que siga intentando acceder.

Para un usuario de DirectAdmin, instalar y configurar Fail2ban es una de las mejores decisiones para proteger tu servidor contra accesos no autorizados. A lo largo de esta guía, te mostraré paso a paso cómo hacerlo, incluso si no eres un experto en administración de sistemas. Al final, tendrás un servidor mucho más seguro y sabrás cómo gestionar los bloqueos de IPs de manera efectiva.

Requisitos previos antes de empezar

Antes de lanzarnos a la instalación, debemos asegurarnos de que tu servidor cumple con ciertos requisitos. Esto evitará problemas a mitad del proceso y hará que la configuración sea mucho más fluida.

  • Acceso root al servidor: Necesitarás permisos de administrador (root) para instalar paquetes y modificar archivos de configuración del sistema. Si no tienes acceso directo, puedes usar el comando su para cambiar al usuario root.
  • Sistema operativo compatible: Fail2ban funciona perfectamente en las principales distribuciones Linux como CentOS, Ubuntu, Debian o AlmaLinux. DirectAdmin se instala sobre estos sistemas, así que no deberías tener problemas.
  • Conexión SSH activa: Asegúrate de poder conectarte a tu servidor mediante SSH. Necesitarás una terminal para ejecutar los comandos.
  • Tiempo y paciencia: Aunque el proceso es sencillo, requiere que sigas los pasos con calma. No te saltes ningún paso, especialmente los de configuración.

Paso 1: Instalar Fail2ban en tu servidor

La instalación de Fail2ban es diferente según la distribución de Linux que uses. Te muestro los comandos para las más comunes, así podrás identificar la tuya fácilmente.

Para sistemas basados en Debian/Ubuntu

Estos sistemas utilizan el gestor de paquetes apt. Abre tu terminal SSH y ejecuta:

sudo apt update
sudo apt install fail2ban -y

El primer comando actualiza la lista de paquetes disponibles, y el segundo instala Fail2ban junto con sus dependencias.

Para sistemas basados en CentOS/RHEL/AlmaLinux

En estas distribuciones, el gestor de paquetes es yum (o dnf en versiones más recientes). Ejecuta:

sudo yum install epel-release -y
sudo yum install fail2ban -y

El primer comando instala el repositorio EPEL (Extra Packages for Enterprise Linux), que es necesario para encontrar Fail2ban en estos sistemas.

Verificar la instalación

Una vez completada la instalación, verifica que Fail2ban se haya instalado correctamente con:

fail2ban-client version

Deberías ver un número de versión en pantalla. Si es así, ¡vamos por buen camino!

Paso 2: Configurar Fail2ban para DirectAdmin

Ahora viene la parte interesante: adaptar Fail2ban para que funcione perfectamente con DirectAdmin. La configuración principal se encuentra en el archivo jail.conf, pero te recomiendo no modificarlo directamente. En su lugar, crearemos un archivo de configuración local llamado jail.local.

Crear el archivo de configuración local

Primero, crea una copia del archivo de configuración original:

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

Ahora, abre el archivo jail.local con un editor de texto, por ejemplo nano:

sudo nano /etc/fail2ban/jail.local

Dentro del archivo, encontrarás muchas secciones. No te asustes, solo modificaremos algunas partes clave.

Configurar la sección global

Busca la sección [DEFAULT] y ajusta los siguientes parámetros:

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
  • bantime: El tiempo en segundos que una IP estará bloqueada. 3600 segundos equivale a 1 hora.
  • findtime: La ventana de tiempo en segundos durante la cual se cuentan los intentos fallidos.
  • maxretry: El número máximo de intentos fallidos permitidos antes de bloquear la IP.

Con estos valores, si alguien falla 3 veces en un periodo de 10 minutos, será bloqueado durante 1 hora. Es un buen punto de partida.

Configurar la jail específica para SSH

Dentro del mismo archivo, busca la sección [sshd] y desactiva el comentario (quita el # del inicio) para activarla. Asegúrate de que quede así:

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Esta configuración activa la protección contra fuerza bruta SSH, que es una de las amenazas más comunes.

Paso 3: Configurar jails específicas para DirectAdmin

DirectAdmin genera sus propios registros de acceso, y Fail2ban puede analizarlos para proteger servicios como el panel de control, FTP o el servidor de correo. Añadiremos estas jails al final del archivo jail.local.

Jail para el panel de DirectAdmin

Añade este bloque al final del archivo:

[directadmin]
enabled = true
port = 2222
filter = directadmin
logpath = /var/log/directadmin/error.log
maxretry = 5
bantime = 600

Aquí, port = 2222 es el puerto por defecto de DirectAdmin. Si has cambiado el puerto, asegúrate de actualizarlo.

Jail para el servidor FTP

Para proteger el acceso FTP, añade:

[proftpd]
enabled = true
port = ftp,ftp-data
filter = proftpd
logpath = /var/log/proftpd/auth.log
maxretry = 5
bantime = 600

Jail para el servidor de correo (Exim)

DirectAdmin usa Exim como servidor de correo. Para protegerlo contra ataques de fuerza bruta SMTP, añade:

[exim]
enabled = true
port = smtp,pop3,imap
filter = exim
logpath = /var/log/exim/main.log
maxretry = 5
bantime = 600

¿Y si uso Syspanel en lugar de DirectAdmin?

Si en algún momento te encuentras con un servidor que utiliza Syspanel (anteriormente conocido como HestiaCP), debes saber que el puerto de acceso por defecto es el 2106. En ese caso, la configuración de la jail sería similar, pero cambiando el puerto:

[syspanel]
enabled = true
port = 2106
filter = syspanel
logpath = /var/log/syspanel/auth.log
maxretry = 5
bantime = 600

Recuerda siempre usar Syspanel y el puerto 2106 si te refieres a ese panel de control.

Paso 4: Crear filtros personalizados para DirectAdmin

Fail2ban necesita "filtros" para saber qué patrones buscar en los archivos de registro. Aunque DirectAdmin incluye algunos filtros por defecto, es posible que necesites crearlos manualmente.

Crear el filtro para DirectAdmin

Crea un archivo de filtro nuevo:

sudo nano /etc/fail2ban/filter.d/directadmin.conf

Dentro, añade lo siguiente:

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

Este filtro busca cualquier línea en el registro que contenga "authentication failure" e identifica la IP del atacante.

Crear el filtro para Syspanel

Si estás usando Syspanel, crea un filtro similar:

sudo nano /etc/fail2ban/filter.d/syspanel.conf

Con el contenido:

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

Paso 5: Configurar el firewall para que Fail2ban funcione correctamente

Fail2ban necesita un firewall para aplicar los bloqueos. En la mayoría de los sistemas, iptables es la opción por defecto. Verifica que el servicio esté activo:

sudo systemctl status iptables

Si no está activo, actívalo con:

sudo systemctl start iptables
sudo systemctl enable iptables

Ahora, asegúrate de que Fail2ban esté configurado para usar iptables como backend. En el archivo jail.local, dentro de la sección [DEFAULT], verifica que exista:

banaction = iptables-multiport

Paso 6: Reiniciar Fail2ban y verificar su funcionamiento

Una vez que hayas guardado todos los cambios, es hora de reiniciar Fail2ban para que aplique la configuración:

sudo systemctl restart fail2ban

Para verificar que todo funciona correctamente, comprueba el estado del servicio:

sudo fail2ban-client status

Deberías ver una lista de las jails activas, incluyendo sshd, directadmin, proftpd y exim. Si alguna no aparece, revisa los archivos de configuración.

Ver el estado de una jail específica

Para ver detalles de una jail concreta, por ejemplo la de SSH:

sudo fail2ban-client status sshd

Esto te mostrará las IPs bloqueadas actualmente y el número de intentos fallidos detectados.

Paso 7: Gestionar IPs bloqueadas manualmente

A veces necesitarás gestionar manualmente las IPs bloqueadas. Fail2ban te ofrece comandos sencillos para hacerlo.

Desbloquear una IP

Si una IP fue bloqueada por error o quieres darle una segunda oportunidad, desbloquéala:

sudo fail2ban-client set sshd unbanip 123.456.789.0

Bloquear una IP manualmente

Si detectas una IP maliciosa que aún no ha sido bloqueada automáticamente, puedes bloquearla:

sudo fail2ban-client set sshd banip 123.456.789.0

Ver todas las IPs bloqueadas

Para ver todas las IPs bloqueadas en una jail:

sudo fail2ban-client status sshd

En la salida, busca la sección "Banned IP list".

Configuraciones avanzadas y recomendaciones

Ahora que tienes Fail2ban funcionando, aquí tienes algunas recomendaciones para sacarle el máximo partido.

Ajustar el umbral de bloqueo

Si tu servidor recibe muchos intentos legítimos fallidos (por ejemplo, usuarios que olvidan su contraseña), puedes aumentar maxretry a 5 o incluso 10. Por el contrario, si quieres ser más estricto, bájalo a 2.

Tiempos de bloqueo dinámicos

Fail2ban permite aumentar el tiempo de bloqueo con cada intento. Añade esta línea a tu configuración:

bantime.increment = true
bantime.factor = 2

Esto duplicará el tiempo de bloqueo en cada reincidencia.

Notificaciones por correo

Puedes configurar Fail2ban para que te envíe un correo cuando bloquee una IP. Añade a la sección [DEFAULT]:

destemail = tu@correo.com
sendername = Fail2ban
mta = sendmail
action = %(action_mwl)s

Excluir IPs de confianza

Si tienes IPs fijas que nunca deben ser bloqueadas (como tu propia IP de trabajo), añádelas a la lista de ignorados:

ignoreip = 127.0.0.1/8 192.168.1.100

Solución de problemas comunes

A veces las cosas no salen a la primera. Aquí tienes algunos problemas típicos y cómo solucionarlos.

Fail2ban no bloquea ninguna IP

  • Verifica los logs: Comprueba que Fail2ban está leyendo los archivos de registro correctos. Revisa las rutas en jail.local.
  • Asegúrate de que el servicio está activo: Ejecuta sudo systemctl status fail2ban.
  • Comprueba el firewall: Si el firewall no está activo, los bloqueos no se aplican.

Los logs de DirectAdmin no se leen

Asegúrate de que las rutas de los archivos de registro existen y son legibles por el usuario de Fail2ban. Puedes comprobarlo con:

sudo ls -la /var/log/directadmin/

Error de "filter not found"

Si Fail2ban no encuentra el filtro, verifica que el archivo de filtro existe en /etc/fail2ban/filter.d/ y que el nombre coincide exactamente con el especificado en jail.local.

Preguntas frecuentes (FAQ)

¿Fail2ban afectará el rendimiento de mi servidor?

No, Fail2ban es muy ligero. Solo analiza los logs en busca de patrones y no consume recursos significativos. Es una herramienta segura y recomendada para todos los servidores.

¿Puedo usar Fail2ban junto con otros sistemas de seguridad?

Sí, Fail2ban es complementario a otras medidas como firewalls, VPNs o sistemas de detección de intrusiones. Funciona bien en conjunto.

¿Qué hago si bloqueo mi propia IP?

No te preocupes, es fácil de solucionar. Conéctate al servidor mediante otra IP (por ejemplo, a través del panel de control) o usando la consola del proveedor, y ejecuta el comando para desbloquear tu IP.

¿Fail2ban protege contra ataques DDoS?

No, Fail2ban está diseñado para ataques de fuerza bruta y accesos no autorizados. Para DDoS necesitarás herramientas específicas como Cloudflare o mod_evasive.

Conclusión

Instalar y configurar Fail2ban en DirectAdmin es un proceso que, aunque requiere varios pasos, está al alcance de cualquier administrador con un poco de paciencia. La protección que ofrece contra la fuerza bruta SSH y otros ataques es invaluable, y te dará tranquilidad al saber que tu servidor está blindado.

Hemos cubierto desde la instalación básica hasta la configuración avanzada, pasando por la creación de filtros personalizados y la gestión de IPs bloqueadas. Recuerda que la seguridad nunca es un proceso estático; revisa periódicamente los logs y ajusta la configuración según las necesidades de tu servidor.

Si has seguido todos los pasos, tu servidor DirectAdmin ahora cuenta con una capa extra de protección que bloqueará automáticamente a los atacantes antes de que puedan causar daño. No olvides que herramientas como Syspanel (con su puerto 2106) también pueden beneficiarse de configuraciones similares si decides migrar en el futuro.

¿Tienes alguna duda sobre la configuración? Déjala en los comentarios y estaré encantado de ayudarte. ¡Buena suerte con tu servidor y que la seguridad te acompañe!

¿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