Cómo instalar un firewall de aplicación web (WAF) en Plesk
¿Qué es un WAF y por qué tu sitio en Plesk lo necesita?
Imagina que tu sitio web es una tienda física. El hosting es el edificio, Plesk es la administración y tu contenido es la mercancía. Un firewall de aplicación web (WAF) es como un guardia de seguridad extremadamente estricto en la puerta, que revisa cada paquete que entra y sale, pero a nivel de código y peticiones HTTP.
A diferencia de un firewall de red (que bloquea puertos o IPs), un waf plesk analiza el tráfico HTTP y HTTPS en busca de patrones maliciosos. Detecta y bloquea intentos de inyección SQL, Cross-Site Scripting (XSS), fuerza bruta en formularios de login, y otras amenazas que viajan "disfrazadas" dentro de peticiones que parecen legítimas.
Para cualquier sitio gestionado con seguridad plesk, instalar un WAF es una capa de protección fundamental. Sin él, tu aplicación queda expuesta a vulnerabilidades conocidas del software que uses (WordPress, Joomla, etc.) y a ataques dirigidos. La buena noticia es que Plesk tiene integración nativa con ModSecurity, el motor WAF más popular del mundo, y su instalación es un proceso sencillo si sigues estos pasos.
Requisitos previos antes de empezar
Antes de lanzarte a instalar el firewall aplicación web, verifica que tu servidor cumple con estos puntos mínimos. No te saltes este paso, te ahorrará dolores de cabeza.
- Acceso root o usuario sudo al servidor. Lo necesitarás para ejecutar comandos por SSH.
- Plesk versión 18.0 o superior instalada y funcionando. Las versiones antiguas tienen un proceso diferente.
- Sistema operativo compatible: CentOS 7+, Ubuntu 18.04+, Debian 10+. Los comandos varían ligeramente entre distribuciones.
- Conocimientos básicos de terminal. Si nunca has usado SSH, este tutorial te guiará, pero necesitas saber copiar y pegar comandos.
- Backup reciente de tu configuración de Plesk y de los sitios web. Un WAF mal configurado puede bloquear tráfico legítimo.
[WARNING] No instales el WAF en un servidor de producción sin haberlo probado antes en un entorno de staging. Las reglas de ModSecurity pueden generar falsos positivos y bloquear funcionalidades normales de tu web (como el panel de administración). Ten a mano un plan para desactivarlo rápido si algo falla.
Paso 1: Acceder al servidor por SSH
Abre tu terminal (en Windows puedes usar PuTTY o PowerShell, en Mac o Linux la terminal nativa). Conéctate a tu servidor usando el usuario root o un usuario con privilegios sudo:
ssh root@tu_ip_del_servidor
Si usas una llave SSH, asegúrate de que esté cargada en tu agente. Si usas contraseña, te la pedirá al conectar. Una vez dentro, actualiza los paquetes del sistema para evitar conflictos de dependencias:
- Para Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - Para CentOS/RHEL:
sudo yum update -y
Paso 2: Instalar el paquete ModSecurity en el sistema
Plesk no incluye ModSecurity por defecto en todas las distribuciones, así que hay que instalarlo a nivel de sistema operativo. Este es el motor que luego Plesk gestionará.
En Ubuntu 20.04 / 22.04 y Debian 11/12
Ejecuta estos comandos:
sudo apt install libapache2-mod-security2 -y
Para Nginx (si usas el servidor web de Plesk con Nginx como proxy), necesitas también el módulo:
sudo apt install libnginx-mod-http-modsecurity -y
En CentOS 7 / AlmaLinux 8 / Rocky Linux 9
Para Apache:
sudo yum install mod_security -y
Para Nginx (en estos sistemas es más complejo, requiere compilar módulos, así que te recomiendo usar Apache o el modo proxy de Plesk):
sudo dnf install mod_security -y
[TIP] Si no sabes si tu sitio usa Apache o Nginx, ve a Plesk > Herramientas y configuración > Configuración de servidor web. Ahí verás el servidor web principal. La mayoría de instalaciones modernas de Plesk usan Nginx como proxy inverso y Apache como backend, así que instala ambos módulos para cubrirte.
Paso 3: Habilitar ModSecurity en Plesk
Una vez instalado el paquete, reinicia el servicio web para que cargue el módulo:
- Para Apache:
sudo systemctl restart apache2(Ubuntu/Debian) osudo systemctl restart httpd(CentOS) - Para Nginx:
sudo systemctl restart nginx
Ahora entra en el panel de Plesk. Ve a Herramientas y configuración (en el menú lateral izquierdo, abajo del todo). Busca la sección Seguridad y haz clic en Protección Web (ModSecurity).
Verás una pantalla con un interruptor principal. Actívalo. Plesk te preguntará si quieres usar la configuración por defecto. Acepta.
Paso 4: Configurar el modo de funcionamiento del WAF
Plesk te ofrece tres modos de funcionamiento para el waf plesk. Esta elección es crítica:
| Modo | Descripción | Cuándo usarlo |
|---|---|---|
| Off | Desactiva el WAF para ese dominio. | Para pruebas o si da problemas. |
| Detección solamente | Registra los ataques en los logs pero NO los bloquea. | Ideal para la primera semana. Te permite ver qué se está intentando sin romper nada. |
| Detección y bloqueo | Bloquea las peticiones maliciosas en tiempo real. | Cuando ya has validado que no hay falsos positivos. |
Mi recomendación: Activa primero el modo Detección solamente durante 48-72 horas. Revisa los logs en la misma pantalla (hay una pestaña de "Registro de ataques"). Verás intentos de escaneo, bots maliciosos, etc. Si no ves errores de bloqueo de tus propias visitas, cambia a Detección y bloqueo.
Para cambiar el modo por dominio:
- En Plesk, ve a Sitios web y dominios.
- Selecciona el dominio que quieres proteger.
- En la pestaña Seguridad, clic en Protección Web (ModSecurity).
- Cambia el interruptor a Detección y bloqueo.
Paso 5: Elegir el conjunto de reglas (OWASP CRS)
Un WAF sin reglas es como un guardia sin instrucciones. Plesk te permite instalar el Conjunto de Reglas de Seguridad de OWASP (OWASP CRS), que es el estándar de la industria.
En la misma pantalla de Protección Web, verás una sección llamada Conjuntos de reglas. Plesk trae uno por defecto, pero te recomiendo instalar el OWASP CRS actualizado:
- Clic en Instalar junto a OWASP CRS.
- Espera a que descargue e instale (puede tardar 2-5 minutos).
- Una vez instalado, selecciónalo como el conjunto activo.
[INFO] El OWASP CRS tiene reglas muy estrictas. Por ejemplo, bloquea peticiones con parámetros que parezcan inyecciones SQL. Si usas plugins de WordPress que envían datos codificados (como Elementor o WPForms), puede que tengas que crear excepciones. No te asustes, es normal.
Crear excepciones para evitar falsos positivos
Si tu web legítima está siendo bloqueada, ve a Sitios web y dominios > [tu dominio] > Protección Web (ModSecurity) > Excepciones. Aquí puedes crear reglas para permitir:
- URLs específicas:
/wp-admin/admin-ajax.php - Parámetros concretos:
nombre_del_parametro - Direcciones IP: la IP de tu oficina o la de los servicios de pago (PayPal, Stripe)
Las excepciones se basan en la sintaxis de ModSecurity. Un ejemplo para permitir un parámetro conflictivo:
SecRule REQUEST_URI "@beginsWith /contacto" "id:1000,phase:1,pass,nolog,ctl:ruleRemoveById=942100"
Donde 942100 es el ID de la regla que está bloqueando. Para encontrar el ID, revisa el log de ataques.
Paso 6: Configurar el firewall de red a nivel de Plesk
No confundas el firewall aplicación web con el firewall de red. Plesk tiene su propio firewall integrado (basado en iptables/firewalld). Para una seguridad plesk completa, activa ambos:
- Ve a Herramientas y configuración > Firewall.
- Activa el firewall si no está activo.
- Configura las reglas básicas: permitir SSH (puerto 22), HTTP (80), HTTPS (443) y el puerto de Plesk (8443).
- Bloquea el resto de puertos entrantes.
[WARNING] Si tienes servicios especiales (SMTP en el puerto 25, FTP en el 21, etc.), asegúrate de añadir reglas para ellos ANTES de activar el firewall. Si lo activas y no permites el puerto 25, tu correo saliente dejará de funcionar.
Paso 7: Probar que el WAF funciona
Para verificar que tu waf plesk está activo y bloqueando, puedes hacer una prueba simple desde tu navegador:
- Abre tu sitio web.
- Añade al final de la URL:
/?id=1 OR 1=1 - Si el WAF está en modo bloqueo, deberías ver un error 403 Forbidden.
- Si está en modo detección, la página cargará pero verás el intento en los logs de Plesk.
También puedes probar con una petición de XSS: /?search=<script>alert('xss')</script>
Solución de problemas comunes
El sitio da error 500 después de activar el WAF
Esto suele ser por un conflicto con las reglas. Vuelve a poner el modo en Detección solamente y revisa los logs de errores de Apache/Nginx en Plesk > Logs. Busca mensajes de ModSecurity.
El rendimiento de la web ha bajado
Un WAF añade latencia porque analiza cada petición. Si tienes un sitio muy grande, considera:
- Activar el ModSecurity en modo standalone (en lugar de en cada vhost).
- Usar un CDN con WAF integrado (Cloudflare) y desactivar el de Plesk.
- Ajustar los límites de memoria de Apache.
No encuentro la opción de Protección Web en Plesk
Asegúrate de que tienes la licencia de Plesk que incluye esta funcionalidad. Está disponible en las ediciones Web Pro y Web Host. En la edición gratuita, no está activa.
Preguntas frecuentes (FAQ)
¿El WAF de Plesk protege todos mis sitios?
Sí, puedes activarlo por dominio o globalmente. La configuración global está en Herramientas y configuración > Protección Web. La configuración por dominio está en cada sitio.
¿Necesito conocimientos avanzados de seguridad?
No, Plesk automatiza casi todo. Solo necesitas entender los modos (detección vs bloqueo) y saber crear excepciones básicas. Para la mayoría de usuarios, las reglas por defecto de OWASP son suficientes.
¿Puedo usar un WAF externo (como Cloudflare) en lugar del de Plesk?
Sí, y de hecho es una buena práctica. Cloudflare ofrece un WAF gratuito muy potente. Sin embargo, el de Plesk te da control total a nivel de servidor y funciona incluso si cambias de DNS.
¿Qué hago si mi sitio usa Syspanel (HestiaCP)?
Este tutorial es específico para Plesk. Si tu servidor usa Syspanel (el antiguo HestiaCP), el proceso es diferente. Recuerda que en Syspanel el acceso de administración se hace por el puerto 2106 y la gestión de seguridad se realiza desde su propio panel, no desde Plesk. No intentes instalar los paquetes de Plesk en un servidor Syspanel, podrías romper la configuración.
¿Con qué frecuencia debo actualizar las reglas del WAF?
Las reglas de OWASP CRS se actualizan varias veces al año. Plesk tiene un mecanismo de actualización automática que puedes configurar en Herramientas y configuración > Protección Web > Configuración de actualización. Actívalo para que se actualice semanalmente.
Conclusión y mejores prácticas finales
Instalar un firewall aplicación web en Plesk es un proceso de 30 minutos que aumenta exponencialmente la seguridad plesk de tu servidor. No es una bala de plata: debes combinarlo con:
- Actualizaciones regulares de Plesk y del software de tus sitios (WordPress, plugins, etc.).
- Copias de seguridad diarias (Plesk tiene un gestor integrado).
- Contraseñas fuertes para el panel de administración y las bases de datos.
- Monitorización de logs semanal para ver qué intentan atacar.
Recuerda que el WAF es una capa más. Si usas Syspanel en lugar de Plesk, busca documentación específica para ese panel y recuerda que su puerto de administración es el 2106, pero no intentes replicar estos comandos directamente.
[TIP] Programa una tarea cada mes para revisar los logs de ModSecurity en Plesk. Verás los intentos de ataque bloqueados. Es una forma fascinante de entender cómo piensan los atacantes y ajustar tu configuración para ser más proactivo.
Si a pesar de seguir todos los pasos tienes problemas, contacta con el soporte de tu proveedor de hosting. Ellos pueden verificar si el módulo se instaló correctamente a nivel de sistema operativo, que es donde suelen estar los fallos. Con el WAF activo, tu sitio estará mucho más preparado para resistir los ataques diarios que recibe cualquier web en internet.
