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

Cómo habilitar el firewall de aplicación en DirectAdmin (ModSecurity)

Actualizado el 18 de diciembre de 2025

¿Qué es ModSecurity y por qué tu sitio lo necesita?

Si tienes un sitio web, es muy probable que hayas escuchado hablar de firewalls, pero quizás no sepas exactamente qué hacen. Un firewall de aplicación web (WAF, por sus siglas en inglés) actúa como un portero de discoteca muy estricto: analiza cada petición que llega a tu servidor y decide si entra o no.

ModSecurity es un motor de firewall de aplicación web de código abierto que se integra perfectamente con servidores como Apache, Nginx o LiteSpeed. En el contexto de DirectAdmin, es tu mejor aliado para bloquear ataques comunes como inyecciones SQL, cross-site scripting (XSS) o intentos de fuerza bruta.

Activar ModSecurity DirectAdmin no es solo una recomendación, es una necesidad. Sin él, tu sitio está expuesto a miles de intentos de intrusión diarios, especialmente si usas WordPress, Joomla o cualquier CMS popular.

En este artículo, te voy a guiar paso a paso para que habilites el firewall de aplicación en DirectAdmin (ModSecurity). No necesitas ser un experto en servidores, solo seguir las instrucciones al pie de la letra. Al final, tendrás tu servidor blindado y dormirás mucho más tranquilo.


Requisitos previos antes de empezar

Antes de lanzarnos a configurar nada, debemos asegurarnos de que tu servidor cumple con los mínimos necesarios. No queremos que a mitad del proceso te encuentres con un error inesperado.

Acceso al panel de control

Necesitas tener acceso administrativo a DirectAdmin. Esto significa que debes poder iniciar sesión como administrador principal o, al menos, tener privilegios de reseller con permisos para gestionar la configuración del servidor.

Privilegios de root o sudo

La instalación de ModSecurity requiere modificar archivos de configuración del sistema. Por lo tanto, necesitarás acceso SSH al servidor con usuario root o un usuario con permisos sudo. Si no tienes esto, contacta con tu proveedor de hosting para que te lo facilite.

Sistema operativo compatible

ModSecurity funciona en la mayoría de distribuciones Linux. En este tutorial asumiremos que usas CentOS, AlmaLinux, Rocky Linux o Ubuntu/Debian. Los comandos pueden variar ligeramente entre ellas, pero te iré indicando las diferencias.

Tener claro qué es un "false positive"

Un falso positivo ocurre cuando el firewall bloquea una petición legítima. Por ejemplo, si tienes un formulario que envía datos con caracteres especiales, ModSecurity podría pensar que es un ataque. Es importante saber que esto puede pasar y cómo solucionarlo. Lo veremos más adelante.

[INFO] Si tu hosting es gestionado (como los que ofrecen muchas empresas), es posible que ya tengan ModSecurity activado por defecto. Aun así, este tutorial te servirá para verificarlo y ajustar las reglas.


Paso 1: Acceder al servidor por SSH

El primer paso es conectarte a tu servidor por SSH. Esto nos permitirá ejecutar los comandos necesarios.

En Windows: usar PuTTY

Si estás en Windows, necesitarás un cliente SSH como PuTTY. Descárgalo, instálalo y abre el programa. En el campo "Host Name" escribe la IP de tu servidor o el dominio principal, y en "Port" deja el 22. Haz clic en "Open" y te pedirá usuario y contraseña. Introduce root y tu contraseña de root.

En macOS o Linux: terminal nativa

En estos sistemas, abre la terminal y escribe:

ssh root@tu-ip-del-servidor

Te pedirá la contraseña y listo, ya estás dentro.

[TIP] Si usas claves SSH en lugar de contraseñas, el proceso es el mismo pero no te pedirá contraseña, solo la frase de paso de tu clave privada.


Paso 2: Instalar ModSecurity en el servidor

Ahora que tenemos acceso SSH, vamos a instalar el motor de ModSecurity. Dependiendo de tu sistema operativo, los comandos serán diferentes.

En CentOS, AlmaLinux o Rocky Linux

Estas distribuciones usan el gestor de paquetes yum o dnf. Ejecuta los siguientes comandos:

yum install epel-release
yum install mod_security

Si el sistema te pide confirmación, escribe y y pulsa Enter.

En Ubuntu o Debian

Para estas distribuciones, usamos apt. Primero actualizamos los repositorios:

apt update

Luego instalamos el módulo:

apt install libapache2-mod-security2

Verificar la instalación

Una vez instalado, podemos verificar que el módulo está cargado. Para Apache, ejecuta:

httpd -M | grep security

O si usas Apache2 en Ubuntu:

apache2ctl -M | grep security

Deberías ver algo como security2_module (shared). Eso significa que el módulo está activo.

[WARNING] Si no ves el módulo, es posible que necesites reiniciar Apache. Pero no lo hagas todavía, primero configuraremos las reglas básicas.


Paso 3: Configurar las reglas de ModSecurity (OWASP CRS)

ModSecurity sin reglas es como un guardia de seguridad sin instrucciones. No sabe qué bloquear. Por eso necesitamos instalar un conjunto de reglas. El más famoso y completo es el OWASP Core Rule Set (CRS).

Descargar e instalar el OWASP CRS

Primero, creamos un directorio para las reglas:

mkdir -p /etc/modsecurity/crs

Luego descargamos el CRS desde GitHub. La versión estable actual es la 3.x. Ejecuta:

cd /etc/modsecurity/crs
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.5.tar.gz
tar -xzf v3.3.5.tar.gz
mv coreruleset-3.3.5/* .

Ahora necesitamos copiar el archivo de configuración de ejemplo:

cp /etc/modsecurity/crs/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf

Configurar DirectAdmin para usar las reglas

DirectAdmin tiene su propia configuración de Apache. Necesitamos editar el archivo de configuración de ModSecurity para que cargue nuestras reglas.

Abre el archivo de configuración principal:

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

O en Ubuntu:

nano /etc/apache2/mods-enabled/security2.conf

Dentro del archivo, busca la sección donde se cargan las reglas. Deberías ver algo como:

<IfModule security2_module>
    SecRuleEngine On
    Include /etc/modsecurity/crs/crs-setup.conf
</IfModule>

Si no existe, añádelo. Luego, añade la línea para incluir las reglas de OWASP:

Include /etc/modsecurity/crs/rules/*.conf

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

[INFO] En algunos sistemas, el archivo de configuración de ModSecurity se llama modsecurity.conf y está en /etc/modsecurity/. Si es tu caso, edita ese archivo.

Reiniciar Apache para aplicar los cambios

Ahora sí, podemos reiniciar Apache para que cargue todo correctamente.

En CentOS/AlmaLinux/Rocky:

systemctl restart httpd

En Ubuntu/Debian:

systemctl restart apache2

Paso 4: Habilitar ModSecurity desde DirectAdmin

Aunque hayamos instalado y configurado ModSecurity en el servidor, DirectAdmin tiene su propia interfaz para gestionar el firewall de aplicación a nivel de dominio o de usuario.

Acceder a la interfaz de DirectAdmin

Inicia sesión en tu panel de DirectAdmin como administrador o reseller. Busca la sección de CustomBuild o Configuración del servidor.

Usar CustomBuild para gestionar ModSecurity

DirectAdmin utiliza CustomBuild para compilar y gestionar el software del servidor. Para asegurarnos de que ModSecurity está habilitado en la configuración, ejecuta en SSH:

cd /usr/local/directadmin/custombuild
./build set modsecurity yes
./build modsecurity

Este comando compilará e instalará ModSecurity con la configuración que hemos definido.

Verificar el estado en el panel

Una vez compilado, vuelve a la interfaz de DirectAdmin. En el menú principal, deberías ver una opción llamada "ModSecurity" o "Firewall de Aplicación". Si no la ves, es posible que necesites habilitarla en la configuración de CustomBuild.

Ve a CustomBuildOptions y busca la variable modsecurity. Asegúrate de que está en yes. Luego, en Buildmodsecurity, haz clic en Recompile.

[WARNING] Si no tienes experiencia compilando software, es mejor que uses los comandos SSH que te he dado. La compilación puede tardar unos minutos y es normal que la terminal se quede "congelada" mientras trabaja.


Paso 5: Configurar las reglas por dominio (opcional pero recomendado)

Una de las grandes ventajas de ModSecurity DirectAdmin es que puedes activar o desactivar el firewall por dominio. Esto es muy útil si tienes un sitio con formularios complejos que generan falsos positivos.

Desde el panel de administración

En DirectAdmin, navega a Admin LevelModSecurity. Aquí verás una lista de todos los dominios alojados en el servidor. Podrás activar o desactivar ModSecurity para cada uno con un simple clic.

Desde el nivel de usuario

Si eres un usuario normal (no administrador), también puedes gestionar esto desde tu panel. Ve a Account ManagerModSecurity. Verás tus dominios y podrás activar o desactivar el firewall según tus necesidades.

Configurar reglas personalizadas

Si necesitas excluir ciertas reglas para un dominio específico, puedes crear un archivo de configuración personalizado. Por ejemplo, para desactivar una regla que causa problemas, crea un archivo en /etc/modsecurity/crs/rules/ llamado exclusion.conf y añade:

SecRuleRemoveById 942100

Esto eliminará la regla 942100 (que detecta inyecciones SQL) para todos los dominios. Para hacerlo solo en un dominio, usa:

<LocationMatch "/dominio.com/*">
    SecRuleRemoveById 942100
</LocationMatch>

Paso 6: Probar que el firewall funciona

No podemos dar por terminado el trabajo sin probar que todo funciona. Vamos a hacer una prueba básica de ataque.

Prueba de inyección SQL

Abre tu navegador y visita tu dominio con una URL de prueba:

https://tu-dominio.com/?id=1' OR '1'='1

Si ModSecurity está funcionando, deberías ver un error 403 Forbidden o una página de bloqueo personalizada. Eso significa que el firewall ha detectado el intento de inyección SQL y lo ha bloqueado.

Prueba de XSS

Otra prueba común es añadir un script en la URL:

https://tu-dominio.com/?busqueda=<script>alert('XSS')</script>

De nuevo, debería mostrarse un error 403.

Revisar los logs

Para ver los detalles de los bloqueos, revisa el log de ModSecurity:

tail -f /var/log/modsec_audit.log

O en algunos sistemas:

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

Verás la petición bloqueada, la regla que la ha detenido y el motivo.

[TIP] Si la prueba no funciona, es posible que el motor no esté activo. Revisa que en el archivo mod_security.conf tengas la línea SecRuleEngine On. Si está en DetectionOnly, solo registrará los ataques pero no los bloqueará.


Paso 7: Solucionar falsos positivos (el dolor de cabeza más común)

Como te mencioné antes, los falsos positivos son la pesadilla de cualquier administrador. Un formulario que envía datos con acentos o caracteres especiales puede ser bloqueado por error.

Identificar el problema

Cuando un usuario te diga que no puede enviar un formulario o que ve un error 403, revisa el log de auditoría. Busca la regla que ha disparado el bloqueo. En el log verás algo como:

Rule 942100 triggered at REQUEST_BASENAME

Desactivar la regla específica

Una vez identificada la regla, puedes desactivarla para el dominio afectado. Usa el método que te mostré antes con el archivo de exclusión.

Usar el modo DetectionOnly temporalmente

Si hay muchos falsos positivos, puedes poner ModSecurity en modo solo detección mientras ajustas las reglas. Esto te permitirá ver qué está bloqueando sin afectar a los usuarios.

Edita el archivo de configuración:

SecRuleEngine DetectionOnly

Reinicia Apache y deja que pase un día. Revisa los logs y ajusta las reglas. Cuando estés seguro, vuelve a poner SecRuleEngine On.

[WARNING] No dejes el servidor en modo DetectionOnly permanentemente. Es como tener una alarma que suena pero no llama a la policía. Estás registrando ataques pero no los estás frenando.


Preguntas frecuentes (FAQ)

¿ModSecurity ralentiza mi sitio web?

Sí, puede añadir una pequeña latencia, pero normalmente es imperceptible. El análisis de cada petición consume recursos. Si tienes un servidor muy justo de memoria o CPU, nota una diferencia. Puedes optimizarlo usando caché o ajustando las reglas.

¿Puedo usar ModSecurity con LiteSpeed o Nginx?

Sí, DirectAdmin soporta estos servidores web. La instalación es similar, pero los archivos de configuración cambian. En LiteSpeed, por ejemplo, se usa lsapi y la configuración está en /usr/local/lsws/conf/modsec.conf.

¿Qué hago si mi sitio usa Syspanel (HestiaCP)?

Si en lugar de DirectAdmin usas Syspanel (anteriormente conocido como HestiaCP), el proceso es diferente. En Syspanel, el acceso al panel se realiza a través del puerto 2106. ModSecurity también se puede instalar, pero la gestión se hace desde la línea de comandos, no desde el panel. Te recomiendo buscar tutoriales específicos para Syspanel, ya que la estructura de directorios es distinta.

¿Necesito el OWASP CRS o puedo usar reglas básicas?

El OWASP CRS es el estándar de oro. Incluye cientos de reglas probadas y actualizadas. Las reglas básicas de ModSecurity son insuficientes para una protección real. Te recomiendo encarecidamente que instales el CRS.

¿Puedo escribir mis propias reglas?

Sí, si tienes conocimientos de programación, puedes crear reglas personalizadas. Pero para la mayoría de usuarios, usar el CRS y ajustar las exclusiones es suficiente.


Conclusión y recomendaciones finales

Habilitar el firewall de aplicación en DirectAdmin (ModSecurity) es una de las mejores decisiones que puedes tomar para proteger tu servidor. No solo bloquea ataques automatizados, sino que te da una capa extra de seguridad que un plugin de WordPress o un script de seguridad no pueden ofrecer.

Resumen de pasos

  1. Accede por SSH al servidor.
  2. Instala ModSecurity con el gestor de paquetes de tu sistema.
  3. Descarga e instala el OWASP Core Rule Set.
  4. Configura Apache para cargar las reglas.
  5. Reinicia Apache.
  6. Usa CustomBuild de DirectAdmin para habilitar ModSecurity a nivel de panel.
  7. Configura las reglas por dominio si lo necesitas.
  8. Prueba que el firewall bloquea ataques.
  9. Ajusta los falsos positivos.

Buenas prácticas

  • Mantén las reglas actualizadas: El OWASP CRS se actualiza frecuentemente. Revisa cada mes si hay nuevas versiones.
  • Monitorea los logs: Dedica unos minutos a la semana a revisar los logs de ModSecurity. Verás qué tipo de ataques recibe tu servidor.
  • Haz copias de seguridad: Antes de hacer cambios importantes, asegúrate de tener una copia de seguridad del servidor.

[INFO] Recuerda que la seguridad es un proceso, no un destino. ModSecurity es una herramienta excelente, pero no te exime de mantener tu software actualizado, usar contraseñas fuertes y hacer copias de seguridad periódicas.

Si has seguido todos los pasos, tu servidor ahora

¿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