Con esta entrada nos gustaría contaros nuestra experiencia utilizando PrestaShop con CloudFlare, herramienta que nos permitió superar un ataque que sufrimos en un tienda online que nos tuvo todo un fin de semana en un sin vivir.
Pero mejor primero os ponemos en antecedentes de la situación y los pasos que dimos para solucionar el problema:
Ataque DDoS en una tienda PrestaShop
Una de nuestras tiendas PrestaShop sufrió hace unos días un ataque DDoS o ataque de denegación de servicio. Este tipo de ataque aprovecha los límites de capacidad específicos que se aplican a cualquier recurso de red, tal como la infraestructura sobre la que funciona un sitio web. El ataque DDoS envía varias solicitudes al recurso web atacado (Es como si entraran en la web miles de personas a la vez), con la intención de desbordar la capacidad del sitio web, haciendo que este deje de funcionar correctamente. Para más información puedes revisar el siguiente enlace que nos ha servido de fuente: ¿Que son los ataques DDoS?
Lo primero que hicimos fue observar las estadísticas del sitio y contactar con nuestro proveedor de hosting para que nos aportara más información. En ambos casos pudimos observar que las solicitudes (Cuando se accede a una web, se generan solicitudes a esta) estaban desbordadas; teníamos que ponerlas freno. También pudimos comprobar que el origen de las mismas, en su gran mayoría, provenían de China. Por lo tanto, ya teníamos una pista con la que empezar a a trabajar en la solución al problema.
Limitar el acceso a un País por localización de IP en una tienda online
Una vez que sabíamos la procedencia de las IPs de los atacantes, intentamos bloquear su acceso a través del archivo .htaccess y su regla deny from, utilizando la misma de la siguiente manera:
order allow,deny
deny from 8.8.8.8
deny from 8.8.8.9
allow from all
En cada línea deny from puedes indicar una IP que necesitas bloquear. Por ejemplo, si necesito bloquear la ip 255.255.255.255 indicaré deny from 255.255.255.255. Pero, ¿cómo puedo bloquear las IPs procedentes de China?
Existe un sitio web llamado Country IP Blocks que mantiene actualizada una base de datos de direcciones IP asignadas a sus respectivos países. Pero eso no es todo, ya que este sitio web ofrece una herramienta capaz de crear listados de IPs o rangos de IPs en diferentes formatos preparados para realizar bloqueos. Por ejemplo, para nuestro htaccess pudimos seleccionar la opción Apache .htaccess Deny y nos generó las líneas a incluir en el mismo:

Una vez aplicados estos cambios, pudimos observar que las conexiones a la tienda se reducían algo, pero lo cierto es que nos parecía una solución temporal y que requería un mantenimiento constante del listado de IPs. Además, no se limitaban los ataques que preovenieran de otras IPs. Por lo tanto, teníamos que buscar otra solución.
Habíamos leído mucho sobre CloudFlare y desde el servicio de soporte de nuestro proveedor de hosting también nos lo propusieron como solución, así que decidimos instalarlo.
PrestaShop con CloudFlare
¿Qué es CloudFlare?
CloudFlare, entre otras cosas, es un servicio que actúa como un servidor «proxy» entre los visitantes y nuestro servidor. Podríamos decir que es una pantalla o filtro de seguridad que revisa y filtra las visitas, para que sólo accedan personas reales que quieran ver nuestra tienda online. CloudFlare cachea (almacena en memoria) el contenido estático de la web, lo que disminuye el número de peticiones a nuestros servidores, pero además tiene un sistema de Cortafuegos que analiza cada solicitud a nuestra web en busca de amenazas o ataques, bloqueando o actuando en consecuencia con los atacantes, pero dando vía libre a las visitas legítimas. Con esto podemos evitar, entro otros, los ataques DDoS, pero además podemos disfrutar de otras ventajas como:
- Acelerar la velocidad y tiempos de carga de nuestra web
- Proteger la web contras Bots
- Protegernos del spam en formularios
- Protección anti-hotlinking
- Sistema de estadísticas
- y mucho más….
Puedes ampliar información pulsando en el siguiente enlace: ¿Que es CloudFlare?
Es importante recalcar en este punto, que no tenemos ninguna relación comercial con Cloudflare. Sólo contamos nuestra experiencia y como en este caso, fue la mejor solución para nuestro problema.
¿Como instalar CloudFlare?
La instalación es muy sencilla. Tan solo tienes que seguir los siguientes pasos:
- Crea una cuenta en CloudFlare. Puedes crear una cuenta (administrador) donde gestionar varios sitios con diferentes planes.
- Asocia un sitio web a un plan CloudFlare. Una vez creada y confirmada la cuenta, existen varios planes, entre ellos uno gratuito que cumple sobradamente con lo que necesitamos para proteger nuestro sitio.
- Escanear DNS y zona DNS. Al añadir el sitio a CloudFlare, este analizará los registros DNS actuales de tu sitio web, añadiendo los mismos al listado de registros de CloudFlare. Con esta información preparará el sistema de mapeo y redirecciones de las solicitudes, para que cuando empieces a usar Cloudflare tu web siga funcionando completamente igual que antes.
- CloudFlare nos facilitará unos nuevos DNS. Tendremos que cambiar los DNS de nuestro sitio por estos. Deberás hacerlo desde el panel de control de tu proveedor de alojamiento.
- Esperar la propagación de las DNS. Esto puede llevar unas horas. Mientras tanto, tu tienda online seguirá funcionando sin cambios.
- ¡Sitio asegurado!
Una vez completada la instalación, nuestra tienda empezó automáticamente a remitir en los ataques. Además, desde el panel de control de CloudFlare podíamos revisar la actividad que estaba bloqueando y las estadísticas de visitas. ¡PUDIMOS PONER FIN AL ATAQUE!
Problemas que nos encontramos al conectar PrestaShop con CloudFlare
Pero no todo podía funcionar bien de manera «mágica» y automáticamente, así que alguna cosilla falló y tuvimos que ajustarla manualmente. Por suerte, fueron solo dos:
No entraba la confirmación de los pedidos pagados con tarjeta (redsys)
Una de las protecciones que nos ofrece CloudFlare es la llamada Comprobación de integridad del navegador que consiste en evaluar los encabezados HTTP del navegador de los usuarios visitantes para buscar amenazas. Si se encuentra una amenaza, se mostrará una página de bloqueo.
El problema es que la comunicación que hace Redsys (Pasarela de pago con tarjeta) al hosting es similar a la que podrían hacer ciertos tipos de atacantes. No tiene nada que ver, pero básicamente es una llamada que se hace de forma puntual con una serie de datos POST usando un user-agent que no es un navegador, así que CloudFlare lo toma como una comunicación de un bot y lo bloquea.
La solución: Simplemente tenemos que configurar CloudFlare a través de la configuración de su firewall para que no realice este tipo de comprobaciones: En su panel de control: Firewall -> Configuración:

Los clientes de correo no identificaban los servidores IMAP y SMTP
Otro de los problemas que tuvimos después de la instalación de CloudFlare fue que los clientes de correo electrónico, tipo Thunderbird y Outlook, no resolvían correctamente los servidores IMAP , POP3 y SMTP. Como CloudFlare aplicaba la redirección proxy, estos clientes no podían obtener la dirección final y los correos electrónicos no se recibían correctamente.
La solución: dentro del apartado DNS del panel de control de CloudFlare podemos ver y gestionar todos los registro DNS y las redirecciones. En principio todas estarán como: Redirigido por proxy

Lo que significa que CloudFlare gestionará la solicitud y la redireccionará con la IP que corresponda.
Tenemos que entrar en los registros MX, en los tipo imap, pop3 y smtp y desactivar (desde el botón editar del registro) la opción de Redirigido por proxy, seleccionando Solo DNS:

Otra buena práctica es crear un registro SPF, siguiendo las indicaciones del proveedor de hosting.
¿Te ayudamos?
Te podemos asegurar que desde que hemos instalado CloudFlare en nuestra tienda online, descansamos mucho más. Notamos que el sitio va más rápido y vemos (desde el panel de control de CloudFlare) como efectivamente se bloquean los ataques. Te animamos a que lo pruebes, ya que puedes empezar con un plan gratuito que cubre de manera eficiente los requisitos de una tienda online mediana/pequeña. Y recuerda, si necesitas que te echemos una mano, puedes contar con nuestros servicios de soporte PrestaShop.
Con esto y más ¡tu tienda online siempre preparada!
¿que modulo habeis usado?
Buenos días David.
No es necesario instalar ningún módulo, lo único que tienes que hacer es apuntar tu hosting a Cloudflare una vez tengas configurado el mismo.
Un saludo.