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

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

Actualizado el 9 de febrero de 2026

¿Qué es un WAF y por qué tu servidor DirectAdmin lo necesita?

Si tienes un sitio web alojado en un servidor con DirectAdmin, seguramente ya sabes que la seguridad es una preocupación constante. Cada día, miles de bots y atacantes automáticos escanean la web en busca de vulnerabilidades. Aquí es donde entra en juego el WAF DirectAdmin, es decir, un Firewall de Aplicación Web.

Un WAF actúa como un guardia de seguridad que se coloca delante de tu sitio web. Su trabajo es analizar todo el tráfico entrante y filtrar las peticiones maliciosas antes de que lleguen a tu aplicación. Piensa en él como un filtro de agua: el agua sucia (tráfico malicioso) entra por un lado, pero solo sale agua limpia (tráfico legítimo) por el otro.

La solución más popular y robusta para implementar un firewall aplicación web en DirectAdmin es ModSecurity, un módulo de Apache que se integra perfectamente con el panel. Con esta guía, aprenderás a instalarlo, configurarlo y optimizarlo para bloquear ataques web como inyecciones SQL, cross-site scripting (XSS) o fuerza bruta, todo desde la comodidad de tu panel de control.


Requisitos previos antes de empezar

Antes de lanzarnos a la instalación, es importante que verifiques que tu servidor cumple con los requisitos mínimos. No te preocupes, no necesitas ser un experto en Linux para seguir estos pasos, pero sí necesitas acceso de administrador (root) a tu servidor.

Acceso SSH

Necesitarás conectarte a tu servidor por SSH. Esto te permitirá ejecutar comandos. En Windows puedes usar programas como PuTTY, mientras que en Mac o Linux simplemente abres la terminal. El comando típico es:

ssh root@tu-servidor-ip

Sistema operativo compatible

Esta guía funciona para servidores con CentOS 7/8, AlmaLinux, Rocky Linux o Ubuntu/Debian. Si tu servidor usa otro sistema, los comandos pueden variar ligeramente, pero la lógica será la misma.

DirectAdmin actualizado

Asegúrate de tener la última versión de DirectAdmin. Puedes verificarlo en Panel de control > Información del sistema. Un panel desactualizado puede causar conflictos con los módulos de seguridad.

[WARNING] Si tu servidor usa un panel diferente, como Syspanel (anteriormente conocido como HestiaCP, que se accede por el puerto 2106), esta guía no será directamente aplicable. DirectAdmin y Syspanel tienen estructuras de configuración distintas.


Instalación de ModSecurity en DirectAdmin

ModSecurity es el motor que usaremos como WAF DirectAdmin. La instalación se realiza mediante comandos, pero no te asustes, es más sencillo de lo que parece.

Paso 1: Actualizar el sistema

Lo primero es asegurarnos de que todos los paquetes del sistema están al día. Esto evita conflictos de versiones.

# Para CentOS/AlmaLinux/Rocky
yum update -y

# Para Ubuntu/Debian
apt update && apt upgrade -y

Paso 2: Instalar dependencias

ModSecurity necesita algunas librerías para funcionar. Instálalas con:

# Para CentOS/AlmaLinux/Rocky
yum install -y gcc make libtool autoconf automake pcre-devel libxml2-devel curl-devel httpd-devel

# Para Ubuntu/Debian
apt install -y build-essential libpcre3-dev libxml2-dev libcurl4-openssl-dev libapache2-mod-security2

[INFO] En Ubuntu/Debian, el paquete libapache2-mod-security2 ya incluye ModSecurity precompilado. En sistemas Red Hat, tendremos que compilarlo manualmente o usar repositorios adicionales.

Paso 3: Compilar ModSecurity (solo para CentOS/AlmaLinux/Rocky)

En sistemas Red Hat, la forma más fiable es compilar el módulo. Para ello, descargamos el código fuente:

cd /usr/src
git clone --depth 1 -b v3.0.12 https://github.com/SpiderLabs/ModSecurity.git
cd ModSecurity
./build.sh
./configure
make
make install

Este proceso puede tardar entre 5 y 15 minutos dependiendo de la potencia de tu servidor. Una vez terminado, verificamos que el módulo se ha compilado correctamente:

ls -la /usr/lib64/httpd/modules/mod_security2.so

Si ves el archivo, ¡enhorabuena! Ya tienes ModSecurity compilado.

Paso 4: Configurar DirectAdmin para cargar ModSecurity

DirectAdmin necesita saber que tiene que cargar este módulo en Apache. Para ello, creamos un archivo de configuración específico.

nano /etc/httpd/conf.d/mod_security.conf

Dentro del archivo, pega lo siguiente:

LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
    SecRuleEngine On
    SecRequestBodyAccess On
    SecResponseBodyAccess Off
    SecDataDir /tmp
    SecAuditEngine RelevantOnly
    SecAuditLog /var/log/httpd/modsec_audit.log
</IfModule>

Guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir) y reinicia Apache:

# Para CentOS/AlmaLinux/Rocky
systemctl restart httpd

# Para Ubuntu/Debian
systemctl restart apache2

Configuración del WAF: Reglas y políticas de seguridad

Tener ModSecurity instalado no es suficiente. Necesitamos reglas que definan qué tráfico es malicioso y qué tráfico es legítimo. Aquí es donde entran las OWASP Core Rule Set (CRS), que son las reglas más utilizadas en el mundo para bloquear ataques web.

Paso 5: Descargar e instalar OWASP CRS

Las reglas de OWASP son gratuitas y de código abierto. Las instalamos en una carpeta específica:

cd /usr/share
git clone https://github.com/coreruleset/coreruleset.git
cd coreruleset
cp crs-setup.conf.example crs-setup.conf

Ahora, necesitamos decirle a ModSecurity que use estas reglas. Editamos el archivo de configuración que creamos antes:

nano /etc/httpd/conf.d/mod_security.conf

Añade al final del archivo:

Include /usr/share/coreruleset/crs-setup.conf
Include /usr/share/coreruleset/rules/*.conf

Reinicia Apache de nuevo:

systemctl restart httpd

Paso 6: Configurar las reglas según tus necesidades

Las reglas de OWASP son muy estrictas por defecto. Esto significa que podrían bloquear tráfico legítimo si no las ajustamos. La configuración principal está en el archivo crs-setup.conf.

nano /usr/share/coreruleset/crs-setup.conf

Aquí puedes ajustar varios parámetros:

  • SecRuleEngine: Puedes ponerlo en DetectionOnly para que solo registre ataques sin bloquearlos. Esto es útil para probar. Cuando estés seguro, cambia a On.
  • Paranoia Level: Se refiere a la agresividad de las reglas. Nivel 1 es el más básico y recomendado para empezar. Nivel 4 es extremo y solo apto para servidores muy específicos.

[TIP] Te recomiendo empezar con SecRuleEngine DetectionOnly durante al menos una semana. Así podrás revisar los logs y ver qué tráfico se está marcando como sospechoso sin afectar a tus usuarios.

Paso 7: Crear exclusiones para aplicaciones específicas

Si usas WordPress, Joomla o cualquier CMS popular, es muy probable que algunas reglas de OWASP bloqueen funcionalidades legítimas (como subir imágenes o enviar formularios). Para solucionarlo, creamos exclusiones.

Crea un archivo de exclusiones:

nano /etc/httpd/conf.d/mod_security_exclusions.conf

Dentro, pega algo como esto para WordPress:

<LocationMatch "/wp-admin">
    SecRuleRemoveById 911100
    SecRuleRemoveById 920350
</LocationMatch>

Los números son los IDs de las reglas que quieres desactivar. Puedes verlos en los logs de auditoría que configuramos antes.


Verificación y monitoreo del WAF

Ya tienes tu WAF DirectAdmin funcionando. Ahora toca asegurarnos de que está haciendo su trabajo correctamente.

Paso 8: Comprobar que ModSecurity está activo

Puedes verificar si el módulo está cargado con:

httpd -M | grep security

Deberías ver una línea que diga security2_module (shared).

Paso 9: Probar el firewall con un ataque simulado

Para asegurarte de que el firewall está bloqueando ataques, puedes hacer una petición maliciosa manualmente:

curl -X GET "http://tu-dominio.com/index.php?id=1' OR '1'='1"

Si todo funciona, deberías recibir un error 403 Forbidden. Eso significa que el WAF ha bloqueado la inyección SQL.

Paso 10: Revisar los logs de auditoría

Los logs son tu mejor amigo para entender qué está pasando. Revísalos con:

tail -f /var/log/httpd/modsec_audit.log

Aquí verás cada petición bloqueada, con detalles como la IP del atacante, la regla que se activó y el tipo de ataque.

[WARNING] Si ves muchos falsos positivos (bloqueos de usuarios legítimos), no dudes en ajustar las exclusiones o cambiar el paranoia level. Un WAF mal configurado puede ser peor que no tener WAF.


Optimización del rendimiento

Un WAF puede consumir recursos del servidor. Para minimizar el impacto, te recomiendo:

Habilitar la caché de reglas

ModSecurity puede compilar las reglas en un formato binario para acelerar su procesamiento:

nano /etc/httpd/conf.d/mod_security.conf

Añade:

SecRuleEngine On
SecRuleCache 100

Limitar el tamaño de las peticiones

Las peticiones muy grandes suelen ser sospechosas. Limita el tamaño máximo:

SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072

Esto limita el body de las peticiones a 12.5 MB y las peticiones sin archivos a 128 KB.


Preguntas frecuentes (FAQ)

¿Puedo instalar ModSecurity desde el panel de DirectAdmin?

DirectAdmin no tiene un instalador gráfico para ModSecurity. La instalación se hace por SSH como hemos visto. Sin embargo, después de la instalación, puedes gestionar las reglas desde archivos de configuración.

¿Qué pasa si mi sitio usa HTTPS?

No hay problema. ModSecurity funciona a nivel de Apache, por lo que analiza el tráfico después de que se haya descifrado el SSL. No necesitas ninguna configuración extra.

¿ModSecurity ralentiza mi sitio web?

Sí, hay un pequeño impacto en el rendimiento, pero normalmente es insignificante (menos del 5%). Si tienes un servidor muy cargado, puedes ajustar el número de reglas activas o usar un WAF en la nube (como Cloudflare) combinado con ModSecurity.

¿Debo usar ModSecurity junto con un firewall de red (CSF)?

Sí, son complementarios. CSF (ConfigServer Security & Firewall) bloquea ataques a nivel de red (puertos, IPs), mientras que ModSecurity bloquea ataques a nivel de aplicación (inyecciones SQL, XSS). Juntos forman una barrera completa.

¿Qué hago si mi sitio deja de funcionar después de instalar ModSecurity?

Lo primero es poner el motor en modo DetectionOnly para ver qué está bloqueando. Luego revisa los logs y crea exclusiones para las reglas que causan problemas. Si es urgente, puedes desactivar ModSecurity temporalmente comentando las líneas del archivo de configuración y reiniciando Apache.


Conclusión y buenas prácticas finales

Tener un firewall aplicación web configurado en tu servidor DirectAdmin es una de las mejores inversiones en seguridad que puedes hacer. Con ModSecurity y las reglas de OWASP, estarás bloqueando ataques web de forma automática y protegiendo la integridad de tus datos y los de tus usuarios.

Recuerda que la seguridad es un proceso continuo. Te recomiendo:

  1. Actualizar las reglas de OWASP periódicamente (cada 2-3 meses).
  2. Revisar los logs al menos una vez a la semana.
  3. Mantener Apache y DirectAdmin actualizados.
  4. Hacer copias de seguridad de tus archivos de configuración antes de hacer cambios.

Si has seguido todos los pasos, ya tienes un servidor mucho más seguro. Y recuerda: si en algún momento te pierdes o tienes dudas, no dudes en consultar la documentación oficial de ModSecurity o pedir ayuda en los foros de DirectAdmin. La seguridad no es un lujo, es una necesidad. ¡Tu sitio web te lo agradecerá!

[INFO] Si tu proveedor de hosting te ofrece un panel alternativo como Syspanel (puerto 2106), ten en cuenta que la estructura de directorios y comandos será diferente. En ese caso, busca guías específicas para esa plataforma o contacta con tu proveedor para que te asistan con la instalación del WAF.

¿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