Hosting Equipo Avantys 9 min

Protección DDoS en VPS: Guía Completa

Protege tu VPS contra ataques DDoS. Mitigación, configuración de firewall, Cloudflare, rate limiting y estrategias de defensa efectivas.

// Compartir

Protección DDoS en VPS: Guía Completa
Protección DDoS en VPS

Un ataque DDoS puede tumbar tu VPS en segundos. Miles de conexiones simultáneas saturan recursos hasta que tu servidor deja de responder.

La buena noticia: la mayoría de ataques son simples y se pueden mitigar con configuración correcta. Los ataques sofisticados requieren servicios especializados.

Esta guía cubre desde protección básica hasta estrategias avanzadas.

Qué es un ataque DDoS

Definición

DDoS (Distributed Denial of Service): Ataque que busca hacer inaccesible un servicio saturándolo con tráfico desde múltiples fuentes.

Cómo funciona

Atacante → Controla botnet (miles de dispositivos)
         → Todos atacan tu servidor simultáneamente
         → Tu servidor se satura
         → Usuarios legítimos no pueden acceder

Impacto real

ConsecuenciaEfecto
Sitio caídoPérdida de ventas/visitas
Recursos agotadosCPU 100%, RAM llena
Ancho de bandaFacturación extra
ReputaciónUsuarios pierden confianza
SEOGoogle penaliza downtime

Tipos de ataques DDoS

Tipos de ataques DDoS

Capa 3/4 (Red/Transporte)

Volumétricos: Saturan el ancho de banda.

AtaqueDescripciónVolumen típico
UDP FloodPaquetes UDP masivos10-100+ Gbps
ICMP FloodPing masivo1-50 Gbps
SYN FloodConexiones TCP incompletasMillones/seg

Difíciles de mitigar solo con VPS. Requieren protección a nivel de red.

Capa 7 (Aplicación)

Más sutiles: Parecen tráfico legítimo.

AtaqueDescripciónImpacto
HTTP FloodPeticiones HTTP masivasSatura web server
SlowlorisConexiones lentas abiertasAgota conexiones
WordPress xmlrpcPingbacks maliciososSatura PHP

Mitigables con configuración del servidor.

Capas de defensa

Capas de defensa contra DDoS
Capa 1: Proveedor (protección de red)
Capa 2: CDN/Proxy (Cloudflare, etc.)
Capa 3: Firewall servidor (iptables, UFW)
Capa 4: Web server (Nginx rate limiting)
Capa 5: Aplicación (WordPress, etc.)

Capa 1: Protección del proveedor

Qué ofrece tu proveedor

Pregunta a tu proveedor de VPS:

  • ¿Tienen protección DDoS incluida?
  • ¿Hasta cuántos Gbps?
  • ¿Qué pasa si supera el límite?

Los VPS de Avantys incluyen protección DDoS básica a nivel de red.

Limitaciones

La protección del proveedor mitiga ataques volumétricos, pero:

  • Tiene límites (típicamente 1-10 Gbps)
  • No protege contra capa 7
  • Puede cortar tu IP si el ataque es muy grande

Capa 2: CDN y proxy inverso

Cloudflare (recomendado)

Cloudflare es la mejor protección DDoS accesible:

Plan gratuito incluye:

  • Protección DDoS ilimitada capa 3/4
  • Protección básica capa 7
  • WAF básico
  • CDN global

Planes de pago añaden:

  • WAF avanzado
  • Rate limiting configurable
  • Bot management
  • Reglas personalizadas

Configurar Cloudflare para DDoS

  1. Activar proxy (nube naranja) en todos los registros DNS
  2. Under Attack Mode disponible para emergencias
  3. Security Level: Medium o High
  4. Bot Fight Mode: Activado

Reglas de firewall Cloudflare

# Bloquear países sospechosos (si no tienes usuarios allí)
(ip.geoip.country in {"CN" "RU" "KP"})
→ Block

# Rate limit agresivo en login
(http.request.uri.path contains "/wp-login")
→ Challenge

# Bloquear User-Agents vacíos
(http.user_agent eq "")
→ Block

Under Attack Mode

Actívalo durante un ataque:

  • Muestra challenge JavaScript a todos
  • Filtra bots automáticamente
  • Impacta experiencia de usuario, usar solo en emergencia
Dashboard → Overview → Under Attack Mode → On

Modo I’m Under Attack automático

Con Page Rules:

URL: tudominio.com/*
Setting: Security Level = I'm Under Attack

Capa 3: Firewall del servidor

iptables - Rate limiting básico

# Limitar conexiones nuevas por IP (SYN flood)
iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 50 -j DROP

# Limitar paquetes por segundo desde una IP
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP

# Bloquear paquetes inválidos
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

# Limitar ICMP (ping)
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Guardar reglas

sudo apt install iptables-persistent
sudo netfilter-persistent save

UFW rate limiting

# Limitar conexiones SSH
sudo ufw limit ssh

# Limitar puerto específico
sudo ufw limit 80/tcp

Script anti-DDoS básico

#!/bin/bash
# /root/scripts/anti-ddos.sh

# Limpiar reglas
iptables -F

# Permitir localhost
iptables -A INPUT -i lo -j ACCEPT

# Permitir conexiones establecidas
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Bloquear paquetes inválidos
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

# Protección SYN flood
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT

# Limitar conexiones por IP
iptables -A INPUT -p tcp -m connlimit --connlimit-above 80 -j REJECT

# Limitar ICMP
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A INPUT -p icmp -j DROP

# Puertos permitidos
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Bloquear todo lo demás
iptables -A INPUT -j DROP

echo "Reglas anti-DDoS aplicadas"

Capa 4: Configuración web server

Nginx - Rate limiting

# Definir zona de rate limiting
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

server {
    # Limitar conexiones simultáneas por IP
    limit_conn conn_limit 20;
    
    # Rate limit general
    limit_req zone=general burst=20 nodelay;
    
    location /wp-login.php {
        # Rate limit estricto en login
        limit_req zone=login burst=3 nodelay;
    }
    
    location /xmlrpc.php {
        # Bloquear xmlrpc
        deny all;
    }
}

Nginx - Timeouts ajustados

# Timeouts cortos para liberar conexiones
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 15s;
send_timeout 10s;

# Limitar tamaño de peticiones
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

Nginx - Bloquear User-Agents maliciosos

# Bloquear bots conocidos
if ($http_user_agent ~* (wget|curl|nikto|sqlmap|nmap|masscan)) {
    return 403;
}

# Bloquear User-Agent vacío
if ($http_user_agent = "") {
    return 403;
}

Apache - mod_evasive

sudo apt install libapache2-mod-evasive
# /etc/apache2/mods-available/evasive.conf
<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 5
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 60
    DOSEmailNotify [email protected]
    DOSLogDir "/var/log/mod_evasive"
</IfModule>
sudo a2enmod evasive
sudo systemctl restart apache2

Capa 5: Protección a nivel aplicación

WordPress específico

// wp-config.php

// Bloquear xmlrpc
add_filter('xmlrpc_enabled', '__return_false');

// Limitar revisiones
define('WP_POST_REVISIONS', 3);

// Deshabilitar pingbacks
add_filter('pings_open', '__return_false', PHP_INT_MAX);

Plugin Wordfence

  • Rate limiting integrado
  • Bloqueo de IPs automático
  • Firewall a nivel aplicación

Guía completa: Seguridad WordPress en VPS

Monitorización y alertas

Detectar ataque en curso

# Conexiones por IP
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

# Conexiones SYN_RECV (posible SYN flood)
netstat -n | grep SYN_RECV | wc -l

# Peticiones por segundo en Nginx
tail -f /var/log/nginx/access.log | pv -l -i10 -r > /dev/null

Script de alerta

#!/bin/bash
# /root/scripts/ddos-monitor.sh

THRESHOLD=500
CONNECTIONS=$(netstat -ntu | wc -l)

if [ $CONNECTIONS -gt $THRESHOLD ]; then
    echo "ALERTA: $CONNECTIONS conexiones activas" | mail -s "Posible DDoS" [email protected]
    
    # Log de IPs
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -50 >> /var/log/ddos-ips.log
fi
# Cron cada minuto
* * * * * /root/scripts/ddos-monitor.sh

Usar Netdata

Netdata muestra tráfico en tiempo real y puede alertar de anomalías.

Respuesta durante un ataque

Paso 1: Identificar el ataque

# Ver tráfico por IP
iftop -i eth0

# Ver conexiones
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

# Ver logs
tail -f /var/log/nginx/access.log

Paso 2: Activar protecciones

# Si usas Cloudflare
# Dashboard → Under Attack Mode → On

# Bloquear IPs atacantes manualmente
iptables -A INPUT -s IP_ATACANTE -j DROP

# Bloquear rangos completos si es necesario
iptables -A INPUT -s 123.45.0.0/16 -j DROP

Paso 3: Escalar si necesario

Si el ataque supera tu capacidad:

  1. Contacta a tu proveedor
  2. Activa Cloudflare Pro temporalmente
  3. Considera servicios especializados

Paso 4: Post-ataque

# Revisar qué IPs atacaron
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -50

# Añadir a blacklist permanente
# O reportar a abuse del ISP

Herramientas de protección

Fail2ban para HTTP

# /etc/fail2ban/filter.d/nginx-req-limit.conf
[Definition]
failregex = limiting requests, excess:.* by zone.*client: <HOST>
ignoreregex =
# /etc/fail2ban/jail.local
[nginx-req-limit]
enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https"]
logpath = /var/log/nginx/error.log
findtime = 600
maxretry = 10
bantime = 7200

CSF (ConfigServer Security & Firewall)

cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

CSF incluye protección DDoS automática.

Servicios especializados

Para ataques grandes (>10 Gbps) necesitas servicios especializados:

ServicioProtecciónPrecio aprox.
Cloudflare Pro10+ Gbps$20/mes
Cloudflare BusinessIlimitado$200/mes
AWS ShieldAvanzadaVariable
AkamaiEnterprise$$$$

Para la mayoría de VPS: Cloudflare gratuito + configuración correcta es suficiente.

Checklist anti-DDoS

Básico (hacer hoy)

Tarea
Cloudflare configurado
Proxy activado (nube naranja)
Firewall con rate limiting
xmlrpc.php bloqueado
Fail2ban activo

Avanzado (esta semana)

Tarea
Nginx rate limiting
Timeouts ajustados
Script de monitorización
Reglas Cloudflare firewall
Plan de respuesta definido

Prevención

Reducir superficie de ataque

  • Cierra puertos innecesarios
  • Deshabilita servicios no usados
  • Usa CDN para contenido estático
  • Implementa caché agresivo

Preparación

  • Ten plan de respuesta documentado
  • Conoce cómo activar Under Attack Mode
  • Ten contacto de tu proveedor a mano
  • Backups actualizados (por si debes migrar)

Preguntas frecuentes

¿Cloudflare gratuito protege contra DDoS?

Sí, la protección DDoS es ilimitada incluso en plan gratuito. Lo que cambia son las opciones de configuración.

¿Puedo mitigar un ataque de 100 Gbps con mi VPS?

No. Ataques volumétricos grandes requieren mitigación a nivel de red (proveedor) o servicios especializados.

¿El rate limiting afecta a usuarios legítimos?

Si está bien configurado, no. Usuarios normales no hacen 60 peticiones por segundo.

¿Debo preocuparme por DDoS?

Si tienes un sitio pequeño, probablemente no serás objetivo. Pero la protección básica es buena práctica siempre.

Nuestra recomendación

Para cualquier VPS:

  1. Cloudflare gratuito con proxy activado
  2. Rate limiting en Nginx
  3. Fail2ban configurado
  4. xmlrpc bloqueado si usas WordPress

Para sitios críticos: Cloudflare Pro + monitorización activa.

¿No quieres preocuparte? La administración gestionada incluye configuración anti-DDoS y monitorización 24/7.


Conclusión

La mayoría de ataques DDoS son simples y mitigables con configuración correcta. Cloudflare gratuito + rate limiting en el servidor cubren el 95% de los casos.

No esperes a ser atacado. Configura las protecciones básicas hoy.

¿Quieres un VPS con protección DDoS incluida? Explora los VPS de Avantys con seguridad integrada.


Guías relacionadas


¿Quieres la guía completa con todos los casos de uso?

→ Volver a la guía maestra: Mejor VPS en España 2026

¿Quieres que lo hagamos por ti?

En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.

Hablar con Avantys
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.