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

Cómo configurar fail2ban en DirectAdmin

Actualizado el 4 de diciembre de 2025

¿Qué es fail2ban y por qué lo necesitas en tu servidor?

Si tienes un servidor con DirectAdmin, seguramente ya sabes que es un panel de control potente y lleno de funciones. Sin embargo, al estar expuesto a Internet, tu servidor es un objetivo constante para bots y atacantes que intentan adivinar contraseñas, explotar vulnerabilidades o simplemente causar problemas.

Aquí es donde entra fail2ban, una herramienta de seguridad que actúa como un guardián inteligente. Su función principal es bloquear IPs que muestren comportamientos sospechosos, como múltiples intentos fallidos de inicio de sesión. En lugar de que tú tengas que revisar los registros manualmente, fail2ban monitorea los logs del sistema y aplica reglas de firewall automáticamente.

La integración de DirectAdmin con fail2ban es casi nativa. El panel ya incluye configuraciones predefinidas para servicios como SSH, FTP, Exim (correo), Dovecot y Apache. Esto significa que no necesitas ser un experto en seguridad para activar una protección automática efectiva.

En este artículo, te guiaré paso a paso para que configures fail2ban en DirectAdmin, desde la instalación hasta la personalización de reglas. No importa si es tu primera vez, lo haremos de forma clara y sencilla.

Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  • Acceso root a tu servidor (por SSH).
  • Un servidor con DirectAdmin instalado (versión 1.64 o superior es recomendable).
  • Conocimiento básico de comandos de Linux (no te preocupes, explicaré cada paso).

[WARNING] Si tu servidor está gestionado por una empresa de hosting, es posible que no tengas acceso root. En ese caso, contacta con tu proveedor para que realice la configuración o te dé los permisos necesarios.

Paso 1: Instalar fail2ban en tu servidor

La mayoría de los sistemas operativos compatibles con DirectAdmin (CentOS, AlmaLinux, Rocky Linux, Ubuntu, Debian) incluyen fail2ban en sus repositorios. La instalación es muy sencilla.

En sistemas basados en Red Hat (CentOS, AlmaLinux, Rocky)

Conéctate por SSH y ejecuta:

yum install fail2ban -y

En sistemas basados en Debian (Ubuntu, Debian)

apt-get update
apt-get install fail2ban -y

Una vez finalizada la instalación, verifica que se haya instalado correctamente:

fail2ban-client --version

Deberías ver algo como:

Fail2Ban v1.0.2

[TIP] Si tu servidor usa un firewall como CSF (ConfigServer Security & Firewall), es posible que ya incluya fail2ban. En ese caso, puedes saltarte este paso y continuar con la configuración.

Paso 2: Configuración inicial de fail2ban

La configuración principal de fail2ban se encuentra en el archivo /etc/fail2ban/jail.conf. Sin embargo, no es recomendable editarlo directamente, ya que las actualizaciones del sistema podrían sobrescribir tus cambios.

La mejor práctica es crear un archivo de configuración local llamado jail.local. Este archivo tiene prioridad sobre el jail.conf.

Crear el archivo jail.local

nano /etc/fail2ban/jail.local

Dentro del archivo, vamos a definir la configuración base. Aquí tienes un ejemplo completo:

[DEFAULT]
# Ignorar la propia IP del servidor y las IPs internas
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24

# Tiempo de bloqueo en segundos (1 hora)
bantime = 3600

# Ventana de tiempo en la que se cuentan los intentos (10 minutos)
findtime = 600

# Número máximo de intentos antes de bloquear
maxretry = 5

# Acción por defecto: bloquear con iptables
banaction = iptables-multiport

# Notificaciones por correo (opcional)
destemail = admin@tudominio.com
sendername = Fail2ban
mta = sendmail

# Activar el servicio de correo para notificaciones
action = %(action_mwl)s

Explicación de los parámetros

  • ignoreip: Lista de IPs que nunca serán bloqueadas. Siempre incluye 127.0.0.1 y tu IP de administración.
  • bantime: Duración del bloqueo. Puedes usar m para minutos, h para horas, d para días.
  • findtime: Período de tiempo en el que se cuentan los intentos fallidos.
  • maxretry: Número de intentos fallidos permitidos antes de aplicar el bloqueo.
  • banaction: El método de bloqueo. iptables-multiport es el estándar y funciona bien en la mayoría de los casos.

[INFO] Si no quieres recibir correos electrónicos, puedes omitir las líneas destemail, sendername, mta y action. Simplemente usa action = %(action_)s para que solo bloquee sin notificar.

Guarda el archivo con Ctrl+O y luego Ctrl+X para salir de nano.

Paso 3: Configurar las cárceles (jails) para DirectAdmin

DirectAdmin ya trae integradas varias cárceles predefinidas en /etc/fail2ban/jail.d/. Sin embargo, es posible que necesites activarlas o ajustarlas.

Ver las cárceles disponibles

ls /etc/fail2ban/jail.d/

Verás archivos como directadmin.conf, exim.conf, dovecot.conf, etc.

Activar la cárcel de DirectAdmin

Para asegurarnos de que la cárcel de DirectAdmin esté activa, edita el archivo:

nano /etc/fail2ban/jail.d/directadmin.conf

Debería verse similar a esto:

[directadmin]
enabled = true
logpath = /var/log/directadmin/error.log
maxretry = 5
bantime = 3600

Si enabled está en false, cámbialo a true.

Otras cárceles importantes

  • SSH: Protege el acceso por SSH. Es una de las más críticas.
  • Exim: Protege el servidor de correo saliente.
  • Dovecot: Protege la autenticación POP3/IMAP.
  • Apache: Protege contra ataques de fuerza bruta a páginas web.

Puedes activar o desactivar cada una editando sus archivos correspondientes. Por ejemplo, para SSH:

nano /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true

Paso 4: Configurar el firewall (iptables)

fail2ban utiliza iptables para bloquear las IPs. Necesitamos asegurarnos de que el servicio de iptables esté activo.

En CentOS/AlmaLinux/Rocky

systemctl enable iptables
systemctl start iptables

En Ubuntu/Debian

apt-get install iptables-persistent -y
systemctl enable netfilter-persistent
systemctl start netfilter-persistent

[WARNING] Si tu servidor usa un firewall diferente (como CSF), fail2ban puede conflictuar. En ese caso, consulta la documentación de tu firewall para integrar fail2ban correctamente.

Paso 5: Iniciar y verificar fail2ban

Una vez que hayas configurado todo, es hora de iniciar el servicio.

Iniciar fail2ban

systemctl start fail2ban
systemctl enable fail2ban

Verificar el estado

systemctl status fail2ban

Deberías ver un mensaje que indica que el servicio está activo y corriendo.

Ver las cárceles activas

fail2ban-client status

Esto te mostrará una lista de las cárceles que están activas. Por ejemplo:

Status
|- Number of jail: 5
`- Jail list:   directadmin, sshd, exim, dovecot, apache

Ver detalles de una cárcel específica

Para ver las IPs bloqueadas en una cárcel concreta, usa:

fail2ban-client status sshd

Esto te mostrará estadísticas como el número de IPs bloqueadas y los intentos fallidos.

Paso 6: Probar que fail2ban funciona correctamente

Es importante verificar que fail2ban realmente está bloqueando IPs. Una forma segura de hacerlo es intentar conectarte por SSH con una contraseña incorrecta varias veces.

Simular un ataque

ssh usuario@tuserver.com

Introduce una contraseña incorrecta 6 veces (recuerda que maxretry está configurado en 5). Después del sexto intento, fail2ban debería bloquear tu IP.

Verificar el bloqueo

fail2ban-client status sshd

Verás que tu IP aparece en la lista de bloqueados. Para desbloquearla manualmente:

fail2ban-client set sshd unbanip TU_IP

[TIP] Si te bloqueas a ti mismo, no te preocupes. Siempre puedes conectarte desde otra IP o usar la consola del proveedor para desbloquearte.

Paso 7: Personalizar reglas avanzadas

Una vez que la configuración básica funciona, puedes personalizar las reglas para adaptarlas a tus necesidades.

Ajustar tiempos de bloqueo

Si prefieres un bloqueo más severo, puedes aumentar el bantime. Por ejemplo, para bloquear durante 24 horas:

[DEFAULT]
bantime = 86400

Bloqueo permanente

Para bloquear permanentemente una IP, puedes usar:

fail2ban-client set sshd banip IP_A_BLOQUEAR

Whitelist de IPs confiables

Si tienes IPs fijas de oficina o de tu casa, puedes añadirlas a ignoreip en jail.local:

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 TU_IP_FIJA

Crear una cárcel personalizada

Por ejemplo, para proteger un panel personalizado, puedes crear un archivo nuevo en /etc/fail2ban/jail.d/mi-panel.conf:

[mi-panel]
enabled = true
port = http,https
logpath = /var/log/mi-panel/access.log
maxretry = 3
bantime = 7200

Solución de problemas comunes

fail2ban no se inicia

Si el servicio falla al iniciar, revisa los logs:

journalctl -u fail2ban -n 50

Las cárceles no se activan

Asegúrate de que los archivos de configuración en /etc/fail2ban/jail.d/ tengan los permisos correctos:

chmod 644 /etc/fail2ban/jail.d/*.conf
chown root:root /etc/fail2ban/jail.d/*.conf

Las IPs no se bloquean

Verifica que iptables esté funcionando:

iptables -L -n | grep fail2ban

Si no ves ninguna regla, revisa la configuración de banaction.

Preguntas frecuentes (FAQ)

¿fail2ban consume muchos recursos?

No. fail2ban es muy ligero. Solo analiza los archivos de log en tiempo real y ejecuta acciones cuando detecta patrones sospechosos. En la mayoría de los servidores, el consumo de CPU y memoria es mínimo.

¿Puedo usar fail2ban con otros paneles de control?

Sí, fail2ban es compatible con cualquier panel. Si usas Syspanel (anteriormente conocido como HestiaCP), la configuración es similar. La principal diferencia es que en Syspanel, el puerto de acceso al panel es el 2106, y deberás crear reglas personalizadas para ese puerto en lugar de las de DirectAdmin.

¿Qué hago si bloqueo mi propia IP?

Puedes desbloquearte tú mismo con el comando:

fail2ban-client set sshd unbanip TU_IP

O reiniciar fail2ban:

systemctl restart fail2ban

¿Cómo sé si una IP está bloqueada?

Usa el comando:

fail2ban-client status

Y luego:

fail2ban-client status NOMBRE_CARCEL

¿Puedo recibir notificaciones por correo?

Sí. En el archivo jail.local, añade las líneas de correo y cambia la acción a %(action_mwl)s. Asegúrate de tener un servidor de correo funcionando en tu servidor.

Conclusión

Configurar fail2ban en DirectAdmin es una de las mejores decisiones que puedes tomar para mejorar la seguridad de tu servidor. Con unos pocos pasos, tendrás una protección automática contra ataques de fuerza bruta y otros comportamientos maliciosos.

Recuerda que la seguridad es un proceso continuo. Revisa periódicamente los logs de fail2ban y ajusta las reglas según sea necesario. No te confíes solo con esta herramienta; combínala con otras buenas prácticas como:

  • Mantener el sistema actualizado.
  • Usar contraseñas fuertes.
  • Configurar autenticación SSH con claves.
  • Limitar el acceso al panel de administración.

Con fail2ban activo, tu servidor estará mucho más protegido, y tú podrás dormir tranquilo sabiendo que los atacantes no tendrán fácil acceso a tus sistemas.

[TIP] Si tienes dudas o encuentras algún error, no dudes en consultar la documentación oficial de DirectAdmin o de fail2ban. La comunidad es muy activa y siempre hay alguien dispuesto a ayudar.

¡Espero que esta guía te haya sido útil! Ahora ya sabes cómo configurar fail2ban en DirectAdmin y mantener tu servidor a salvo.

¿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