Proteger tu sitio contra ataques DDoS con Cloudflare
Web Hosting
4

Qué es un ataque DDoS

DDoS son las siglas de Distributed Denial of Service. En un ataque así, miles —o cientos de miles— de máquinas distribuidas envían peticiones a tu sitio al mismo tiempo con el objetivo de saturar tu servidor y dejarlo sin recursos para atender a los usuarios reales. Los atacantes usan botnets, es decir, equipos comprometidos que obedecen órdenes remotas.

Un servidor compartido puede caer con un ataque pequeño. Incluso un VPS potente se ve en problemas si el ancho de banda se satura. Por eso necesitas absorber el ataque antes de que llegue a tu origen, y ahí es donde entra Cloudflare.

Cómo Cloudflare absorbe el tráfico

Al pasar tu dominio por la red de Cloudflare, todos los paquetes viajan primero a su infraestructura global. Cloudflare tiene una capacidad de red enorme, medida en terabits por segundo, repartida en cientos de centros de datos. Cuando detecta un patrón de tráfico anómalo, aplica mitigaciones automáticas en el borde: bloqueo de IPs, rate limiting, challenges y reglas WAF.

Tu servidor de origen solo ve el tráfico que Cloudflare deja pasar, que normalmente es una fracción mínima del ataque total. Incluso el plan Free incluye esta mitigación automática para ataques de capa 3 y 4 (inundaciones SYN, UDP, amplification, etc.).

Modo "Under Attack"

Cuando sospechas o confirmas que estás bajo ataque, puedes activar el modo Under Attack desde el panel con un clic. Este modo cambia el comportamiento: cada visitante recibe una página intersticial de 5 segundos con un challenge de JavaScript. Si el cliente ejecuta correctamente el challenge, obtiene una cookie y puede navegar; si es un bot tonto, no pasa nunca de esa pantalla.

Es una medida drástica porque empeora la experiencia de usuario legítimo (esos 5 segundos extra en la primera visita), pero es efectiva para parar una tormenta mientras investigas el origen. Desactívalo en cuanto el ataque ceda.

Rate Limiting

El rate limiting permite poner un tope a cuántas peticiones puede hacer una misma IP a una ruta determinada en una ventana de tiempo. Es ideal para proteger endpoints sensibles como:

  • /wp-login.php (ataques de fuerza bruta a WordPress).
  • /xmlrpc.php (amplificación a través de pingback).
  • APIs públicas que no deberían recibir ráfagas de un solo cliente.
  • Formularios de contacto (para limitar spam automatizado).

Un ejemplo sensato: máximo 10 peticiones por minuto a /wp-login.php desde una misma IP. Si se supera, bloqueo de 1 hora. Con eso, los bots que intentan miles de contraseñas quedan fuera automáticamente.

Firewall Rules básicas

Las Firewall Rules (hoy agrupadas en Security → WAF) te permiten escribir condiciones compuestas para decidir qué pasa con cada petición. Ejemplos útiles:

  • Bloquear peticiones cuyo user agent esté vacío o contenga palabras típicas de scrapers.
  • Exigir challenge a visitantes de países donde no tienes clientes.
  • Permitir solo ciertos rangos de IP para acceder a /wp-admin.
  • Bloquear métodos HTTP raros (TRACE, OPTIONS) en rutas públicas.

La sintaxis usa un editor visual o expresiones: por ejemplo, (http.request.uri.path contains "/wp-admin" and ip.src ne 203.0.113.10) con acción Challenge.

Bloqueo por país

Si tu negocio atiende exclusivamente a un país o región, puedes bloquear o desafiar el tráfico del resto. No es una bala de plata (los atacantes usan VPNs), pero reduce el ruido de fondo de forma apreciable. Ten cuidado si tu negocio tiene lectores o clientes internacionales: usa Challenge en lugar de Block para no dejar fuera a gente legítima.

Challenges para bots

Cloudflare ofrece distintos niveles de verificación frente a bots:

  • JS Challenge: test de JavaScript invisible para la mayoría de navegadores reales.
  • Managed Challenge: Cloudflare decide qué tipo de desafío aplicar según el riesgo.
  • Interactive Challenge: el usuario debe pulsar un botón de verificación.

Todos ellos bloquean a bots básicos, que son la inmensa mayoría del tráfico malicioso. Para bots más sofisticados necesitarás el WAF avanzado de los planes pagos, pero con la configuración gratuita bien hecha ya frenas el 95% del abuso típico.

Checklist de protección básica

  1. Cloudflare activo con modo SSL Full (Strict).
  2. Rate limit en /wp-login.php y /xmlrpc.php.
  3. Una regla que desafíe user agents sospechosos.
  4. Botón de Under Attack a mano si ves picos anómalos.
  5. Firewall del servidor configurado para aceptar solo las IPs de Cloudflare (así nadie puede saltarse el proxy atacando tu IP directa).

Con estos pasos, incluso un hosting modesto aguanta niveles de tráfico malicioso que de otra forma lo tumbarían al instante.