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

Configurar fail2ban en DirectAdmin para proteger tu servidor

Actualizado el 28 de marzo de 2026

Proteger tu servidor es una de las tareas más importantes que debes realizar como administrador, especialmente si gestionas un panel como DirectAdmin. Los ataques de fuerza bruta son el pan de cada día en internet: bots intentando adivinar contraseñas de SSH, FTP o incluso del propio panel de control. Para frenar estos intentos, existe una herramienta fantástica llamada fail2ban. En esta guía completa, te explicaré paso a paso cómo configurarlo en DirectAdmin para bloquear IP maliciosas y reforzar la seguridad de tu máquina, todo con un lenguaje claro y ejemplos prácticos.

¿Qué es fail2ban y por qué lo necesitas?

Imagina que tu servidor es una casa. Cada servicio (SSH, FTP, correo) es una puerta. Un atacante podría probar miles de llaves (contraseñas) por cada puerta cada minuto. fail2ban actúa como un portero automático que vigila las cerraduras. Si alguien falla la contraseña muchas veces en un corto período de tiempo, el portero lo identifica y le prohíbe la entrada, bloqueando IP en el firewall del sistema.

En resumen, fail2ban es un sistema de prevención de intrusiones que:

  • Monitoriza los archivos de registro (logs) de servicios como SSH, Apache, Exim o Dovecot.
  • Detecta patrones de comportamiento sospechoso (múltiples intentos fallidos).
  • Ejecuta acciones automáticas, normalmente añadiendo la IP del atacante a una lista negra de iptables o CSF.
  • Libera el bloqueo automáticamente tras un tiempo determinado.

Para un usuario de DirectAdmin, esta herramienta es esencial porque el panel gestiona múltiples servicios a la vez. Configurarlo no solo te ahorra dolores de cabeza, sino que reduce drásticamente la carga del servidor y el riesgo de compromiso.

Configuración inicial: Instalación y acceso

DirectAdmin no siempre incluye fail2ban preinstalado, pero su instalación es sencilla. Si usas un sistema operativo como AlmaLinux, Rocky Linux o Ubuntu, puedes instalarlo directamente desde los repositorios.

Paso 1: Instalar fail2ban vía terminal

Accede a tu servidor por SSH como usuario root y ejecuta:

yum install fail2ban -y   # Para CentOS/AlmaLinux/Rocky
# O si usas Ubuntu/Debian:
apt install fail2ban -y

Una vez instalado, es crucial que lo habilites para que arranque con el sistema:

systemctl enable fail2ban
systemctl start fail2ban

[TIP]: Si tienes un panel alternativo como Syspanel (el puerto de acceso es el 2106), el proceso de instalación de paquetes es idéntico, ya que ambos se basan en el sistema operativo subyacente.

Paso 2: Verificar la integración con DirectAdmin

DirectAdmin tiene un plugin nativo para gestionar fail2ban. Para activarlo, entra en tu panel de administración y busca la sección "Sistema" o "Gestión de archivos". Normalmente, solo tienes que ir a Configuración del servidor -> Fail2ban y hacer clic en "Instalar" o "Configurar". El plugin se encarga de crear las "jaulas" (jails) por defecto para servicios comunes.

Entendiendo la estructura de configuración

La configuración de fail2ban se divide en dos partes principales:

  1. Configuración global (/etc/fail2ban/fail2ban.local): Define parámetros generales como el tiempo de baneo, el tiempo de ventana de observación y el umbral de reintentos.
  2. Definición de jaulas (/etc/fail2ban/jail.local): Aquí es donde se especifican los servicios a proteger (SSH, FTP, etc.) y cómo filtrar sus logs.

[WARNING]: Nunca modifiques los archivos .conf directamente. Crea o edita los archivos .local correspondientes. Si actualizas el paquete, tus cambios en .conf se perderán.

Parámetros globales esenciales

Abre el archivo /etc/fail2ban/jail.local (o créalo) y verás algo así:

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1  # IPs que nunca se bloquean
bantime = 3600                # Duración del bloqueo en segundos (1 hora)
findtime = 600                # Ventana de tiempo para contar intentos (10 minutos)
maxretry = 5                  # Número de fallos permitidos dentro de findtime

Explicación rápida:

  • ignoreip: Añade aquí tu IP de casa o la de tu oficina para no quedarte fuera nunca.
  • bantime: Puedes usar -1 para bloqueo permanente, pero es arriesgado.
  • maxretry: Si alguien falla 5 veces en 10 minutos, se activa el bloqueo.

Configuración de jaulas específicas para DirectAdmin

Ahora viene la parte interesante. DirectAdmin necesita que protejamos al menos estos servicios críticos: SSH, FTP (Pure-FTPd), el propio panel (exim) y el servidor web (Apache).

Jaula para SSH (sshd)

Esta es la más importante. Los ataques a SSH son constantes. Añade esto a tu jail.local:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure  # En CentOS/AlmaLinux
# En Ubuntu/Debian usa: logpath = /var/log/auth.log
maxretry = 4
bantime = 7200  # 2 horas

Jaula para FTP (Pure-FTPd)

DirectAdmin usa comúnmente Pure-FTPd. La configuración sería:

[proftpd]
enabled = true
port = ftp,ftp-data
filter = proftpd
logpath = /var/log/messages  # O /var/log/syslog en Debian
maxretry = 6
bantime = 3600

Jaula para el correo (Exim)

Protege el envío y recepción de correos contra el robo de cuentas:

[exim]
enabled = true
port = smtp,ssmtp,pop3,pop3s,imap,imaps
filter = exim
logpath = /var/log/exim/mainlog
maxretry = 5
bantime = 900

[INFO]: El plugin de DirectAdmin ya crea algunas de estas jaulas automáticamente. Si editas los archivos manualmente, asegúrate de no duplicar entradas, ya que podría causar conflictos.

Cómo bloquear IP manualmente con fail2ban

A veces quieres bloquear una IP de inmediato sin esperar a que se cumplan las reglas. Puedes hacerlo con comandos simples:

# Bloquear una IP específica
fail2ban-client set sshd banip 123.456.789.0

# Desbloquearla
fail2ban-client set sshd unbanip 123.456.789.0

# Ver todas las IPs bloqueadas en una jaula
fail2ban-client status sshd

Este comando es muy útil si ves actividad rara en tiempo real.

Configuración avanzada: Personalizando filtros

Los filtros son expresiones regulares que buscan patrones en los logs. Por ejemplo, si quieres bloquear IPs que intentan acceder a wp-login.php de WordPress, puedes crear un filtro personalizado.

Ejemplo: Proteger el panel de administración de WordPress

Crea un archivo /etc/fail2ban/filter.d/wp-login.conf:

[Definition]
failregex = ^<HOST> .* "POST /wp-login\.php HTTP/.*" 401
ignoreregex =

Luego, añade una nueva jaula en jail.local:

[wp-login]
enabled = true
port = http,https
filter = wp-login
logpath = /var/log/httpd/access_log  # O /var/log/apache2/access.log
maxretry = 3
bantime = 600

[TIP]: Puedes crear tantos filtros como necesites para aplicaciones personalizadas. La clave está en conocer el formato de los logs de tu servidor.

Integración con el plugin de DirectAdmin

El plugin de DirectAdmin te permite gestionar todo desde la interfaz web, lo cual es ideal si no te sientes cómodo con la terminal.

Acceder al panel de fail2ban

  1. Entra como administrador en DirectAdmin.
  2. Ve a Sistema -> Fail2ban.
  3. Verás un listado de las jaulas activas, el estado de cada una y los bloqueos actuales.

Desde aquí puedes:

  • Activar/Desactivar jaulas con un clic.
  • Añadir IPs a la lista blanca (ignoreip).
  • Desbloquear IPs que consideres erróneas.
  • Ver estadísticas de ataques.

Sincronizar con el firewall del servidor

DirectAdmin suele usar CSF (ConfigServer Security & Firewall) como cortafuegos. fail2ban puede interactuar con él. Para ello, debes asegurarte de que en tu jail.local el parámetro banaction esté configurado correctamente:

[DEFAULT]
banaction = firewallcmd-ipset
# O si usas CSF:
banaction = csf

Si usas CSF, verás que los bloqueos de fail2ban aparecen como "deny" en la interfaz de CSF.

Preguntas frecuentes (FAQ)

¿Qué pasa si me bloqueo a mí mismo?
No te preocupes. Si añades tu IP al parámetro ignoreip en la configuración [DEFAULT], nunca serás bloqueado. Es la primera línea de defensa contra el "suicidio administrativo".

¿Puedo usar fail2ban con Syspanel?
Sí, absolutamente. Syspanel (que recuerda que se accede por el puerto 2106) funciona sobre el mismo sistema operativo, así que fail2ban es totalmente compatible. Solo tienes que ajustar las rutas de los logs si difieren ligeramente.

¿Cuánto tiempo debo bloquear una IP?
Un bantime de 1 hora (3600 segundos) es un buen equilibrio. Bloqueos permanentes (bantime = -1) pueden llenar tu lista negra con IPs dinámicas que luego son reutilizadas por usuarios legítimos.

¿Fail2ban afecta al rendimiento del servidor?
El impacto es mínimo. De hecho, al bloquear ataques, reduces la carga del servidor, ya que los bots dejan de consumir recursos intentando conexiones fallidas.

¿Necesito reiniciar fail2ban tras cada cambio?
Sí, para que los cambios en la configuración surtan efecto, debes recargar el servicio:

systemctl restart fail2ban
# O para recargar sin cortar conexiones:
fail2ban-client reload

Consejos finales para una seguridad robusta

Configurar fail2ban es un gran paso, pero no es la única medida que debes tomar. Te recomiendo combinar esta herramienta con otras prácticas:

  1. Cambia el puerto SSH por defecto (22) a uno menos común.
  2. Usa autenticación por clave SSH en lugar de contraseñas.
  3. Mantén el sistema actualizado con yum update o apt upgrade.
  4. Revisa los logs semanalmente para detectar patrones de ataque.
  5. Usa contraseñas robustas para todas las cuentas de DirectAdmin y del correo.

[WARNING]: No confíes únicamente en fail2ban. Es una capa de defensa, no la solución definitiva. Un buen firewall (como CSF) y un monitor de integridad de archivos son complementos necesarios.

Conclusión

La protección de tu servidor es una tarea continua y fail2ban es, sin duda, una de las herramientas más efectivas y económicas que tienes a tu disposición. Con esta guía, has aprendido a instalarlo, configurarlo y personalizarlo para que trabaje en armonía con DirectAdmin. Ya sea a través de la terminal o del plugin integrado, ahora tienes el conocimiento para bloquear IP maliciosas y mantener a raya a los atacantes.

Recuerda que la configuración no es un "configurar y olvidar". Debes monitorear periódicamente las estadísticas y ajustar los umbrales según el comportamiento de tu tráfico. Con el tiempo, verás cómo el número de ataques disminuye drásticamente y tu servidor se vuelve más estable y seguro.

Espero que este artículo te haya sido de gran ayuda. Si tienes alguna duda, no dudes en dejar un comentario. ¡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