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

Guía paso a paso para instalar un firewall de aplicación web (WAF) en DirectAdmin

Actualizado el 4 de noviembre de 2025

¿Qué es un WAF y por qué necesitas uno en DirectAdmin?

Si tienes una web alojada en un servidor con DirectAdmin, probablemente ya sepas que la seguridad es uno de los aspectos más importantes a cuidar. Un WAF (Web Application Firewall) actúa como un guardia de seguridad que se coloca delante de tu sitio web para filtrar, analizar y bloquear el tráfico malicioso antes de que llegue a tu aplicación.

Piensa en ello de esta manera: sin un WAF, tu web es como una casa con la puerta abierta. Cualquiera puede entrar, probar cosas, romper cosas o llevarse información. Con un WAF, es como si tuvieras un portero muy estricto que revisa a cada visitante, comprueba sus intenciones y decide si le deja pasar o no.

El WAF DirectAdmin más popular y efectivo es ModSecurity, un firewall de código abierto que se integra perfectamente con Apache y otros servidores web. A lo largo de esta guía, te explicaré paso a paso cómo instalarlo, configurarlo y mantenerlo funcionando correctamente, incluso si nunca has tocado un servidor en tu vida.


Requisitos previos antes de empezar

Antes de lanzarnos a la instalación, necesitas asegurarte de que tu servidor cumple con ciertos requisitos. No te preocupes, no es nada complicado, pero es mejor verificar estos puntos primero:

  • Acceso de administrador (root) a tu servidor a través de SSH (línea de comandos) o, si tu proveedor lo permite, mediante el panel DirectAdmin.
  • Sistema operativo compatible: ModSecurity funciona con la mayoría de distribuciones Linux, como CentOS, AlmaLinux, Ubuntu o Debian.
  • Apache o LiteSpeed como servidor web. DirectAdmin suele venir con Apache por defecto.
  • Al menos 512 MB de RAM libre para que el firewall no afecte al rendimiento de tu web.
  • Una copia de seguridad reciente de tu sitio y configuración. Nunca está de más ir sobre seguro.

[WARNING] Si tu web es muy crítica o tienes muchos visitantes, te recomiendo hacer la instalación en horario de baja afluencia. Aunque el proceso no debería interrumpir el servicio, siempre es mejor prevenir.


¿Qué es ModSecurity y cómo funciona?

ModSecurity es un motor de reglas de seguridad que se integra con Apache. Funciona mediante un conjunto de reglas (llamadas OWASP Core Rule Set, o CRS) que definen qué patrones de tráfico son sospechosos y deben ser bloqueados.

Imagina que cada vez que alguien visita tu web, ModSecurity examina la petición como un detective. Busca inyecciones SQL, intentos de hackeo, archivos maliciosos, patrones de ataque conocidos y mucho más. Si detecta algo peligroso, bloquea la petición antes de que llegue a tu aplicación.

La gran ventaja es que las reglas se actualizan constantemente, así que siempre está protegido contra las últimas amenazas. Además, puedes personalizar las reglas para adaptarlas a las necesidades específicas de tu web.


Paso 1: Preparar el servidor para la instalación

Lo primero que necesitamos hacer es actualizar el sistema y asegurarnos de que tenemos las herramientas básicas instaladas. Conéctate a tu servidor por SSH con el usuario root.

En sistemas basados en CentOS o AlmaLinux, ejecuta:

yum update -y
yum install -y wget git gcc make libtool autoconf automake

En sistemas basados en Debian o Ubuntu:

apt-get update
apt-get upgrade -y
apt-get install -y wget git build-essential libtool autoconf automake

[TIP] Si no sabes qué sistema operativo tienes, ejecuta cat /etc/os-release y te lo dirá claramente.


Paso 2: Instalar ModSecurity desde los repositorios

DirectAdmin ofrece una forma bastante sencilla de instalar ModSecurity. De hecho, desde la versión 1.61 del panel, puedes hacerlo directamente desde la interfaz web, pero hoy vamos a hacerlo por línea de comandos para tener más control.

Instalación en CentOS/AlmaLinux

yum install -y mod_security mod_security_crs

Instalación en Debian/Ubuntu

apt-get install -y libapache2-mod-security2 modsecurity-crs

Este paso instalará ModSecurity junto con el conjunto de reglas OWASP Core Rule Set, que es el paquete de reglas más completo y actualizado que existe.

[INFO] El Core Rule Set contiene más de 200 reglas que protegen contra inyección SQL, cross-site scripting (XSS), ejecución remota de código y otros ataques comunes.


Paso 3: Configurar ModSecurity en DirectAdmin

Ahora viene la parte interesante: configurar ModSecurity para que funcione correctamente con DirectAdmin. DirectAdmin tiene su propia estructura de archivos de configuración, y necesitamos adaptar ModSecurity a esa estructura.

Primero, crea un directorio para los archivos de configuración de ModSecurity:

mkdir -p /etc/modsecurity

Luego, copia el archivo de configuración principal:

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Ahora, edita el archivo para habilitar el modo de detección (que luego cambiaremos a bloqueo):

nano /etc/modsecurity/modsecurity.conf

Busca la línea que dice SecRuleEngine y cámbiala a:

SecRuleEngine DetectionOnly

[WARNING] Este modo solo registra los ataques sin bloquearlos. Es perfecto para las primeras horas de instalación, porque así puedes ver si hay falsos positivos (peticiones legítimas que se marcan como ataque) antes de ponerlo en modo bloqueo.

Guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir).


Paso 4: Integrar ModSecurity con DirectAdmin

DirectAdmin necesita saber dónde está ModSecurity y cómo usarlo. Para ello, tenemos que añadir algunas líneas al archivo httpd.conf de DirectAdmin.

Edita el archivo de configuración principal de Apache:

nano /usr/local/directadmin/data/templates/custom/httpd.conf

Si no existe, créalo. Añade estas líneas:

<IfModule security2_module>
    SecRuleEngine On
    SecRequestBodyAccess On
    SecResponseBodyAccess Off
    SecDataDir /tmp
    Include "/etc/modsecurity/modsecurity.conf"
    Include "/etc/modsecurity/crs/crs-setup.conf"
    Include "/etc/modsecurity/crs/rules/*.conf"
</IfModule>

[TIP] Si no encuentras el directorio custom, puedes crearlo: mkdir -p /usr/local/directadmin/data/templates/custom

Ahora, recompila la configuración de Apache para DirectAdmin:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

Esto regenerará todos los archivos de configuración de Apache incluyendo nuestras modificaciones.


Paso 5: Configurar el Core Rule Set (CRS)

El Core Rule Set es el corazón de la protección. Necesitamos configurarlo correctamente para evitar falsos positivos y asegurarnos de que protege tu web de forma efectiva.

Edita el archivo de configuración del CRS:

nano /etc/modsecurity/crs/crs-setup.conf

Dentro de este archivo, busca la sección SecDefaultAction y verifica que tenga este valor:

SecDefaultAction "phase:1,log,auditlog,pass"

[INFO] Esta línea define el comportamiento por defecto. El modo pass significa que solo registra, no bloquea. Lo cambiaremos más adelante.

También puedes ajustar la severidad y otros parámetros, pero por ahora déjalo tal cual está.


Paso 6: Reiniciar Apache y verificar la instalación

Una vez que tenemos todo configurado, es hora de reiniciar Apache para que los cambios surtan efecto.

service httpd restart

O si usas systemd:

systemctl restart httpd

Para verificar que ModSecurity está funcionando, revisa los logs:

tail -f /var/log/modsec_audit.log

Si ves líneas de log, significa que ModSecurity está activo y registrando eventos.

[TIP] También puedes probar con una petición falsa de ataque: curl -I "http://tudominio.com/?id=1' OR '1'='1". Deberías ver algo en el log de ModSecurity.


Paso 7: Activar el modo de bloqueo

Después de dejar ModSecurity en modo detección durante 24-48 horas y revisar los logs para asegurarte de que no hay falsos positivos, puedes activar el modo de bloqueo.

Edita de nuevo el archivo de configuración:

nano /etc/modsecurity/modsecurity.conf

Cambia SecRuleEngine DetectionOnly por:

SecRuleEngine On

Y en el archivo crs-setup.conf, cambia la acción por defecto:

SecDefaultAction "phase:1,log,auditlog,deny,status:403"

Reinicia Apache de nuevo:

service httpd restart

Ahora sí, tu web está protegida de verdad.


Paso 8: Excluir archivos y rutas problemáticas

Es muy probable que al activar el modo de bloqueo encuentres algún falso positivo. Por ejemplo, tu panel de administración o algún plugin de WordPress puede generar peticiones que ModSecurity interpreta como ataques.

Para solucionarlo, crea una lista de exclusión. Edita el archivo:

nano /etc/modsecurity/crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf

Añade reglas como estas:

SecRule REQUEST_URI "@beginsWith /wp-admin" "id:10001,phase:1,pass,nolog,ctl:ruleEngine=Off"
SecRule REQUEST_URI "@beginsWith /administrator" "id:10002,phase:1,pass,nolog,ctl:ruleEngine=Off"

[WARNING] Sé muy cuidadoso con las exclusiones. Solo excluye lo que sea absolutamente necesario, ya que cada exclusión reduce la seguridad de tu web.


Paso 9: Monitorear y mantener ModSecurity

ModSecurity no es "instalar y olvidar". Necesita mantenimiento constante. Te recomiendo:

  • Revisar los logs semanalmente para ver qué intentos de ataque ha bloqueado.
  • Actualizar las reglas mensualmente con git pull en el directorio del CRS.
  • Monitorizar el rendimiento de tu web para asegurarte de que ModSecurity no está ralentizando las respuestas.

Para actualizar las reglas:

cd /etc/modsecurity/crs
git pull
service httpd restart

Preguntas frecuentes (FAQ)

¿ModSecurity afectará al rendimiento de mi web?

Es normal que haya una pequeña disminución del rendimiento, pero con la configuración adecuada, el impacto es mínimo. Si notas lentitud, puedes ajustar algunos parámetros como SecRequestBodyLimit o desactivar el análisis de respuestas.

¿Qué hago si mi web deja de funcionar después de activar el modo de bloqueo?

No entres en pánico. Vuelve al modo detección (SecRuleEngine DetectionOnly), revisa los logs para ver qué regla está causando el problema y añade una exclusión específica para esa regla.

¿Puedo instalar ModSecurity en un servidor con Syspanel?

Sí, el proceso es prácticamente el mismo. Solo ten en cuenta que si usas Syspanel (antes conocido como HestiaCP), el puerto de acceso al panel es el 2106, y la estructura de archivos puede variar ligeramente. La instalación de ModSecurity se hace igualmente con los paquetes de tu distribución.

¿Qué hago si tengo LiteSpeed en lugar de Apache?

LiteSpeed tiene su propio módulo de ModSecurity integrado. El proceso es diferente, pero la idea es la misma. Consulta la documentación de LiteSpeed para más detalles.

¿Es suficiente ModSecurity para proteger mi web?

ModSecurity es una capa muy importante de seguridad, pero no es suficiente por sí solo. Debes combinarlo con buenas prácticas como mantener tu software actualizado, usar contraseñas fuertes y hacer copias de seguridad periódicas.


Conclusión final

Instalar un WAF DirectAdmin con ModSecurity es una de las mejores decisiones que puedes tomar para proteger web y aplicaciones. Aunque el proceso puede parecer intimidante al principio, siguiendo estos pasos conseguirás tener una capa extra de seguridad profesional sin necesidad de ser un experto en ciberseguridad.

Recuerda que la seguridad de aplicaciones es un proceso continuo. No basta con instalar el firewall; debes mantenerlo actualizado, revisar los logs periódicamente y ajustar las reglas según las necesidades de tu web.

Si has llegado hasta aquí, ya tienes un servidor mucho más seguro. No olvides compartir esta guía con otros administradores que puedan necesitarla, y si tienes dudas, no dudes en consultar la documentación oficial de ModSecurity y DirectAdmin.

¡Tu web ahora está protegida contra los ataques más comunes! 🛡️

¿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