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

DirectAdmin: Guía para instalar y configurar Fail2ban en tu servidor

Actualizado el 5 de marzo de 2026

¿Por qué necesitas Fail2ban en tu servidor DirectAdmin?

Si tienes un servidor con DirectAdmin, seguramente ya sabes que es un panel de control potente y muy utilizado. Sin embargo, al ser un software tan popular, también es un objetivo constante para atacantes que buscan colarse mediante fuerza bruta. Este método consiste en probar miles de combinaciones de usuario y contraseña hasta dar con la correcta.

Imagina que alguien intenta entrar a tu servidor las 24 horas del día. Eso es exactamente lo que hacen los bots automatizados. Para frenarlos, necesitas una herramienta de defensa activa. Aquí es donde entra Fail2ban DirectAdmin, una solución de seguridad que actúa como un portero muy estricto: detecta los intentos fallidos y bloquea automáticamente la IP del intruso durante un tiempo determinado.

En esta guía, aprenderás a instalar fail2ban, configurarlo específicamente para DirectAdmin y proteger tu servidor contra ataques de fuerza bruta en servicios como SSH, FTP, el propio panel y el correo electrónico. No necesitas ser un experto en Linux; te lo explicaré paso a paso y con un lenguaje claro.

Antes de empezar: requisitos y acceso al servidor

Para llevar a cabo este proceso, necesitarás acceso root (administrador total) a tu servidor. Esto se hace normalmente a través de una conexión SSH. En Windows puedes usar programas como PuTTY, y en Mac o Linux, la propia terminal.

[WARNING] Los comandos que ejecutarás modifican la configuración de seguridad de tu servidor. Aunque el proceso es seguro, te recomiendo encarecidamente que hagas una copia de seguridad de los archivos de configuración antes de tocarlos. Un pequeño error tipográfico podría dejar tu servidor sin acceso remoto. Ve con calma y lee cada paso.

Instalar Fail2ban en DirectAdmin: paso a paso

La instalación es sorprendentemente sencilla, ya que DirectAdmin tiene un script de instalación integrado. No necesitas compilar nada manualmente.

Paso 1: Accede por SSH y actualiza el sistema

Conéctate a tu servidor como root y ejecuta los siguientes comandos para asegurarte de que el sistema operativo tiene los paquetes más recientes.

apt-get update && apt-get upgrade -y

(Si tu servidor usa CentOS o AlmaLinux, el comando sería yum update -y o dnf update -y)

Paso 2: Instala Fail2ban usando el script de DirectAdmin

DirectAdmin incluye una herramienta llamada directadmin que facilita la instalación de complementos. Simplemente ejecuta:

cd /usr/local/directadmin/scripts
./install_fail2ban.sh

Este script se encargará de todo: descargará el paquete, instalará las dependencias y creará la configuración base. El proceso puede tardar un par de minutos. Verás mucho texto en pantalla; no te asustes, es normal.

[INFO] Si el script no existe o da un error, puedes instalar Fail2ban directamente desde los repositorios de tu sistema operativo con apt-get install fail2ban (Debian/Ubuntu) o yum install fail2ban (CentOS). No obstante, el script de DirectAdmin optimiza la configuración para que funcione perfectamente con los logs del panel.

Paso 3: Verifica que el servicio esté corriendo

Una vez finalizada la instalación, comprueba que el servicio se haya iniciado correctamente.

systemctl status fail2ban

Deberías ver un mensaje que indica que el servicio está active (running). Si no es así, inícialo con systemctl start fail2ban y habilítalo para que arranque solo al encender el servidor con systemctl enable fail2ban.

Configuración básica de Fail2ban para DirectAdmin

La configuración por defecto es buena, pero la vamos a adaptar para que sea realmente efectiva contra los ataques más comunes. Los archivos de configuración se encuentran en /etc/fail2ban/.

Entendiendo la estructura de archivos

  • jail.conf: Es el archivo principal. No lo edites directamente, ya que se sobrescribe con las actualizaciones.
  • jail.local: Este es el archivo que usaremos para nuestras personalizaciones. Aquí definimos qué servicios protegemos y cómo.
  • filter.d/: Contiene las reglas (expresiones regulares) que Fail2ban usa para analizar los logs y detectar intentos fallidos.

Creando tu archivo jail.local

Vamos a crear un archivo jail.local con las configuraciones más importantes. Puedes usar el editor nano para ello.

nano /etc/fail2ban/jail.local

Pega el siguiente contenido. Te lo explico debajo:

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

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

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

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

[TIP] Si tu servidor usa CentOS o AlmaLinux, las rutas de los logs son diferentes. Para SSH, sería /var/log/secure y para DirectAdmin, /var/log/directadmin/error.log suele ser igual.

Desglosando la configuración

  • [DEFAULT]: Aquí se establecen los valores por defecto para todas las "cárceles" (jails). bantime es el tiempo de bloqueo en segundos (3600 = 1 hora). findtime es la ventana de tiempo en segundos (600 = 10 minutos). maxretry es el número de intentos fallidos permitidos antes del bloqueo.
  • ignoreip: Esta lista es crucial. Aquí debes poner las IPs que jamás se bloquearán, como la IP de tu casa o de tu oficina. Si no lo haces, podrías bloquearte a ti mismo. Puedes añadir varias IPs separadas por espacios.
  • [directadmin]: Esta es la jail específica para el panel de DirectAdmin. Fíjate en port = http,https,2222. El puerto 2222 es el puerto por defecto del panel. Si cambiaste el puerto de acceso en DirectAdmin, debes cambiarlo aquí también.
  • [ssh]: Protege el acceso por SSH. Es el más importante, ya que es la puerta principal a tu servidor.
  • [proftpd]: Protege el servicio FTP, que es otro de los más atacados.

Una vez que hayas pegado el contenido, guarda el archivo con Ctrl + O, presiona Enter y sal con Ctrl + X.

Aplicando los cambios

Después de guardar, reinicia Fail2ban para que lea la nueva configuración.

systemctl restart fail2ban

Para verificar que las cárceles están activas, ejecuta:

fail2ban-client status

Este comando te mostrará una lista de las jails activas. Para ver los detalles de una en particular, usa fail2ban-client status directadmin. Ahí podrás ver cuántas IPs están bloqueadas actualmente.

Proteger DirectAdmin contra ataques de fuerza bruta: más allá de lo básico

La configuración anterior es un gran comienzo, pero hay más cosas que puedes hacer para blindar tu servidor.

Bloquear ataques al correo electrónico (Exim)

Los servidores de correo también son un objetivo común. Los atacantes intentan adivinar contraseñas para enviar spam. Añade esta jail a tu jail.local:

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

[INFO] La jail de Exim puede generar muchos falsos positivos si tienes clientes de correo mal configurados. Te sugiero que empieces con un maxretry de 8 y lo vayas bajando si ves que es necesario.

Ajustar el tiempo de bloqueo (bantime)

El bantime de 1 hora que pusimos es razonable, pero para ataques persistentes, es mejor un bloqueo más largo. Puedes configurarlo para que sea incremental. Por ejemplo, la primera vez bloquea 1 hora, la segunda 24 horas, y así sucesivamente.

Para ello, necesitas usar la acción action_ con un plugin de recidiva. Es un poco más avanzado, pero te dejo un ejemplo rápido:

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
bantime.increment = true
bantime.factor = 4
bantime.maxtime = 86400

Esto significa que cada vez que una IP sea reincidente, el tiempo de bloqueo se multiplicará por 4, hasta un máximo de 24 horas (86400 segundos).

Comandos útiles para gestionar Fail2ban

Aquí tienes una pequeña chuleta con los comandos más útiles para el día a día:

  • Ver todas las jails activas: fail2ban-client status
  • Ver IPs bloqueadas en una jail: fail2ban-client status ssh
  • Desbloquear una IP manualmente: fail2ban-client set ssh unbanip 192.168.1.100
  • Bloquear una IP manualmente: fail2ban-client set ssh banip 192.168.1.100
  • Recargar la configuración: systemctl reload fail2ban (menos agresivo que un reinicio, no corta las conexiones activas).

Solución de problemas comunes (FAQ)

¿Por qué Fail2ban no bloquea a los atacantes?

Esto suele deberse a que la ruta del log es incorrecta o a que el filtro no coincide con el formato del log. Verifica la ruta en jail.local. También puedes probar el filtro manualmente con el comando fail2ban-regex /var/log/directadmin/error.log /etc/fail2ban/filter.d/directadmin.conf.

¿Cómo puedo ver los logs de Fail2ban?

El log principal está en /var/log/fail2ban.log. Puedes seguir las novedades en tiempo real con tail -f /var/log/fail2ban.log.

¿Qué hago si bloqueo mi propia IP?

No te preocupes, es más común de lo que crees. Si te has bloqueado a ti mismo, tienes dos opciones. La primera es acceder a tu servidor a través de un proveedor de VNC o consola web que ofrezca tu proveedor de hosting. La segunda es, si tienes otra IP (por ejemplo, desde el móvil), ejecutar el comando fail2ban-client set ssh unbanip TU_IP. Para evitar esto, asegúrate de añadir tu IP a la lista ignoreip.

¿Fail2ban protege contra todos los ataques?

No. Fail2ban es una capa de seguridad esencial, pero no es una solución mágica. Debes combinarlo con contraseñas fuertes, autenticación de dos factores (2FA) en DirectAdmin y mantener el sistema operativo y el panel siempre actualizados.

¿Puedo usar Fail2ban con otros paneles como Syspanel?

Sí, Fail2ban es un software independiente del panel de control. Si usas Syspanel (antes conocido como HestiaCP), que se accede a través del puerto 2106, el proceso de instalación de Fail2ban es muy similar. La diferencia principal estará en las rutas de los logs y los nombres de los servicios. Deberás crear filtros personalizados para los logs de Syspanel, pero la lógica es la misma.

[WARNING] Nunca desactives Fail2ban por completo "para que deje de dar problemas". Si tienes falsos positivos, es mejor ajustar los filtros o aumentar el maxretry para ese servicio específico. Un servidor sin Fail2ban es un servidor expuesto.

Conclusión: tu servidor DirectAdmin ahora es más seguro

Instalar y configurar Fail2ban DirectAdmin es una de las mejores inversiones de tiempo que puedes hacer para la seguridad DirectAdmin de tu servidor. No solo bloquea ataques fuerza bruta, sino que te da tranquilidad al saber que tienes una defensa activa y automatizada.

Hemos visto cómo instalar fail2ban desde el script de DirectAdmin, cómo crear un jail.local personalizado para proteger SSH, FTP, el panel y el correo, y cómo gestionar los bloqueos. Recuerda que la seguridad es un proceso continuo. Revisa periódicamente los logs de Fail2ban y ajusta la configuración según el comportamiento de tu servidor.

Con esta guía, has dado un paso gigante para proteger servidor DirectAdmin contra los ataques más comunes. Ahora, tu servidor está mucho más preparado para resistir las amenazas del mundo digital. Si tienes alguna duda, no dudes en consultar la documentación oficial de Fail2ban o los foros de soporte de DirectAdmin. ¡Buena suerte y navegación segura!

¿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