Configurar un firewall de aplicación web (WAF) en Plesk para PrestaShop
¿Por qué tu tienda PrestaShop necesita un WAF en Plesk?
Si tienes una tienda online con PrestaShop, tu sitio es un objetivo jugoso para los atacantes. Manejas datos de clientes, carritos de compra, pasarelas de pago y credenciales de acceso. Un solo agujero de seguridad puede significar desde la caída de tu tienda hasta el robo de datos bancarios.
Un WAF (Firewall de Aplicación Web) actúa como un portero inteligente entre tus visitantes y tu tienda. Analiza cada petición HTTP que llega a tu servidor, filtra el tráfico malicioso y bloquea ataques comunes como inyecciones SQL, cross-site scripting (XSS), fuerza bruta en el panel de administración y bots maliciosos.
Plesk, el panel de control de hosting más usado del mundo, incluye herramientas nativas para implementar un WAF sin necesidad de ser un experto en seguridad. Lo mejor de todo es que puedes configurarlo en minutos y proteger tu PrestaShop desde el primer día.
En esta guía te explico paso a paso cómo configurar un WAF en Plesk para tu tienda PrestaShop, qué reglas debes activar y cómo evitar que bloquees a tus propios clientes por error.
¿Qué es exactamente un WAF y cómo protege tu PrestaShop?
Un WAF se sitúa delante de tu aplicación web y examina todo el tráfico entrante. Funciona con un conjunto de reglas predefinidas que detectan patrones de ataque conocidos. Cuando una petición coincide con un patrón sospechoso, el WAF la bloquea antes de que llegue a tu PrestaShop.
Tipos de ataques que bloquea un WAF
- Inyección SQL: Intentos de manipular tu base de datos mediante campos de formulario o URLs.
- Cross-Site Scripting (XSS): Inyección de scripts maliciosos que roban cookies o sesiones de clientes.
- Fuerza bruta: Intentos masivos de adivinar contraseñas del panel de administración.
- Inclusión de archivos locales/remotos: Intento de leer o ejecutar archivos del servidor.
- Bots maliciosos: Rastreadores que intentan explotar vulnerabilidades de PrestaShop.
- Ataques DDoS a nivel de aplicación: Saturación de peticiones para tumbar tu tienda.
¿Qué hace Plesk con el WAF?
Plesk integra ModSecurity, el motor WAF de código abierto más popular del mundo. Con Plesk puedes:
- Activar ModSecurity para cada dominio o suscripción.
- Elegir entre diferentes conjuntos de reglas (OWASP, Comodo, etc.).
- Ajustar el nivel de seguridad según tu necesidad.
- Ver los ataques bloqueados en los logs.
- Excluir URLs específicas (muy útil para pasarelas de pago).
Requisitos previos antes de configurar el WAF en Plesk
Antes de empezar, verifica que cumples estos requisitos:
- Tienes acceso a Plesk como administrador o propietario del dominio.
- Tu servidor tiene instalado ModSecurity. En la mayoría de instalaciones de Plesk ya viene incluido, pero si no lo ves, consulta a tu proveedor de hosting.
- Tu PrestaShop está funcionando correctamente y tienes acceso al panel de administración.
- Tienes una copia de seguridad reciente de tu tienda. Siempre es recomendable antes de hacer cambios de seguridad.
[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP), el puerto de acceso al panel es el 2106. Pero esta guía está enfocada en Plesk, así que si tu proveedor usa Syspanel, los pasos serán diferentes.
Paso 1: Activar ModSecurity en tu dominio Plesk
Lo primero es activar el WAF para el dominio donde tienes instalado PrestaShop.
- Inicia sesión en Plesk con tu cuenta de administrador o la cuenta que tenga permisos sobre el dominio.
- En el menú lateral izquierdo, haz clic en Sitios web y dominios.
- Busca tu dominio de PrestaShop y haz clic en Abrir o directamente en el nombre del dominio.
- Dentro del panel del dominio, busca la sección Seguridad y haz clic en Protección Web (ModSecurity).
![No se requiere imagen]
- En la pantalla de ModSecurity, verás un interruptor o un botón para Activar. Haz clic en él.
- Se te pedirá que elijas un conjunto de reglas. Te recomiendo empezar con OWASP CRS (Open Web Application Security Project Core Rule Set) porque es el estándar de la industria y está muy actualizado.
- Guarda los cambios.
[TIP] Si no ves la opción ModSecurity en tu Plesk, es posible que tu proveedor no lo tenga habilitado. Contacta con soporte y pídeles que lo activen. En servidores dedicados o VPS, puedes instalarlo manualmente, pero eso ya es otro nivel técnico.
Paso 2: Configurar el nivel de seguridad del WAF
Plesk te permite elegir entre varios niveles de protección. Para PrestaShop, te recomiendo un equilibrio entre seguridad y compatibilidad.
Los niveles típicos son:
- Bajo: Solo bloquea ataques muy evidentes. Puede dejar pasar algunas amenazas.
- Medio: Bloquea la mayoría de ataques conocidos. Es el recomendado para tiendas online.
- Alto: Máxima protección, pero puede generar falsos positivos (bloquear acciones legítimas).
Configuración recomendada para PrestaShop
- En la misma pantalla de ModSecurity, busca la opción Nivel de seguridad.
- Selecciona Medio para empezar.
- Guarda los cambios.
[WARNING] Si pones el nivel en Alto, es muy probable que algunos módulos de PrestaShop dejen de funcionar correctamente, especialmente los que envían formularios complejos o utilizan AJAX intensivo. Empieza siempre en Medio y sube el nivel solo si tienes experiencia con WAF.
Paso 3: Configurar reglas específicas para PrestaShop
El conjunto de reglas OWASP es genérico, pero PrestaShop tiene sus particularidades. Por ejemplo, el panel de administración usa URLs del tipo /admin123/index.php, y algunos módulos hacen peticiones que podrían parecer sospechosas.
3.1. Excluir URLs del panel de administración
Para evitar que el WAF bloquee tu propio acceso al panel de PrestaShop:
- Ve a la pestaña Reglas dentro de la configuración de ModSecurity.
- Busca la opción Exclusiones o Reglas personalizadas.
- Añade una exclusión para la ruta de tu panel de administración. Por ejemplo:
/admin*/** - Guarda los cambios.
3.2. Excluir pasarelas de pago
Las pasarelas de pago (PayPal, Stripe, Redsys, etc.) envían notificaciones IPN (Instant Payment Notification) que contienen datos en formato POST. A veces el WAF las bloquea.
- Identifica las URLs de retorno de tu pasarela. Normalmente son algo como
/modules/paypal/ipn.phpo/modules/stripe/webhook.php. - Añade estas rutas a las exclusiones.
- Guarda los cambios.
[INFO] Para encontrar las rutas exactas, revisa la configuración de cada módulo de pago en tu PrestaShop. Si no las excluyes, los pagos podrían fallar silenciosamente.
3.3. Permitir el acceso a la API de PrestaShop
Si usas aplicaciones externas que se conectan a tu tienda mediante API REST, debes excluir también estas rutas:
/api/*/webservice/*
Paso 4: Probar el WAF sin romper tu tienda
Una vez activado, es hora de probar que todo funciona. Sigue estos pasos:
- Navega por tu tienda como un cliente normal: Añade productos al carrito, completa formularios de contacto, haz una búsqueda.
- Accede al panel de administración: Entra a
/adminy navega por las secciones principales: productos, pedidos, clientes. - Simula un ataque: Puedes probar añadiendo
?id_product=1 OR 1=1a una URL de tu tienda. Si el WAF funciona, deberías ver un error 403 o una página de bloqueo. - Revisa los logs: En Plesk, ve a la sección Logs y filtra por ModSecurity. Ahí verás qué peticiones se han bloqueado.
[WARNING] No pruebes ataques reales contra tu propia tienda sin autorización. Usa solo técnicas de prueba simples como la que te mencioné. Si un ataque real tiene éxito, podrías dañar tu base de datos.
Paso 5: Ajustar reglas según los errores que aparezcan
Es normal que al principio el WAF bloquee alguna acción legítima. Esto se llama falso positivo. Cuando lo detectes:
- Revisa el log de ModSecurity para ver qué regla se ha activado.
- Identifica la URL y el método (GET, POST) que ha sido bloqueado.
- Si es una acción legítima, añade esa URL a las exclusiones.
- Si es un ataque, déjalo bloqueado.
Errores comunes en PrestaShop con WAF
- El carrito no se actualiza: Suele ser por peticiones AJAX bloqueadas. Excluye las rutas
/ajax-cart.phpy/modules/ps_shoppingcart/*. - No se pueden enviar formularios: Excluye las rutas de los módulos de contacto y suscripción.
- El panel de administración no carga: Revisa que hayas excluido correctamente la ruta
/admin*.
Paso 6: Mantener el WAF actualizado
Un WAF desactualizado es casi tan malo como no tener WAF. Las reglas de ModSecurity se actualizan constantemente para proteger contra nuevas amenazas.
Cómo actualizar las reglas en Plesk
- Ve a Herramientas y ajustes en el panel principal de Plesk.
- Busca ModSecurity o Actualizaciones de reglas.
- Configura las actualizaciones automáticas (recomendado: diarias o semanales).
- Guarda los cambios.
[TIP] Si tu proveedor de hosting gestiona el servidor, pídele que active las actualizaciones automáticas de ModSecurity. Es su responsabilidad mantenerlo al día.
Preguntas frecuentes sobre WAF en Plesk para PrestaShop
¿El WAF ralentiza mi tienda?
Mínimamente. El impacto en el rendimiento suele ser inferior al 5%. Si tu hosting es decente, no lo notarás. Eso sí, si tienes un servidor muy limitado, puede notarse algo más.
¿Puedo desactivar el WAF temporalmente?
Sí, en cualquier momento puedes volver a la pantalla de ModSecurity y desactivarlo. Eso sí, no lo recomiendo si tienes una tienda activa.
¿Qué hago si mi pasarela de pago deja de funcionar?
Revisa los logs de ModSecurity. Casi siempre es una regla que bloquea la notificación IPN. Añade la URL de retorno de la pasarela a las exclusiones.
¿El WAF protege contra ataques DDoS?
No directamente. El WAF protege contra ataques a nivel de aplicación, no contra DDoS de red. Para DDoS necesitas protección adicional a nivel de red o CDN.
¿Puedo usar el WAF de Plesk junto con otros plugins de seguridad?
Sí, pero ten cuidado. Si usas plugins de seguridad de PrestaShop que también tienen WAF, podrían entrar en conflicto. Lo mejor es usar solo uno.
¿Necesito conocimientos técnicos para configurar el WAF?
No. Plesk hace que sea muy sencillo. Si puedes seguir esta guía, puedes configurarlo sin problemas.
Conclusión y recomendaciones finales
Configurar un WAF en Plesk para tu tienda PrestaShop es una de las mejores decisiones de seguridad que puedes tomar. No solo proteges los datos de tus clientes, sino que también evitas que tu negocio se caiga por un ataque.
Resumen rápido de los pasos
- Activa ModSecurity en tu dominio.
- Elige OWASP CRS como conjunto de reglas.
- Configura el nivel en Medio.
- Excluye las rutas del panel de administración y pasarelas de pago.
- Prueba tu tienda a fondo.
- Ajusta las exclusiones según los falsos positivos.
- Mantén las reglas actualizadas.
[INFO] Recuerda que la seguridad no es un evento único, es un proceso continuo. Revisa los logs de ModSecurity al menos una vez al mes y mantén tu PrestaShop y sus módulos siempre actualizados.
Próximos pasos
- Revisa los logs de seguridad de Plesk semanalmente.
- Configura alertas por correo para eventos de seguridad.
- Considera añadir autenticación de dos factores al panel de administración de PrestaShop.
- Haz copias de seguridad automáticas diarias.
Con el WAF activo, tu tienda online estará mucho más protegida contra las amenazas más comunes. Y si algo falla, siempre puedes ajustar las reglas sin necesidad de ser un experto en ciberseguridad.
¿Ya has configurado el WAF en tu Plesk? Si tienes dudas o has encontrado algún error extraño, déjalo en los comentarios y te ayudaré a solucionarlo.
