Mitigando DDoS no Nginx e CSF: Guia Prático de Rate Limiting

Mitigando DDoS no Nginx e CSF. Ataques DDoS nem sempre são gigantescos. Muitas vezes, o que derruba seu servidor é um HTTP flood simples, explorando login, XML-RPC ou APIs mal protegidas.

Neste guia você aprenderá como mitigar DDoS no Nginx usando rate limiting e complementar a proteção com o ConfigServer Security & Firewall.

A estratégia é simples: defesa em camadas.


🔥 O que é Rate Limiting no Nginx?

O Nginx possui módulos nativos que limitam requisições por IP, evitando abusos antes que eles consumam CPU e memória.

Ele atua na camada HTTP, bloqueando floods direcionados.


⚙️ Configurando Rate Limiting no Nginx

1️⃣ Criando a zona de controle

No bloco http {} do nginx.conf:

limit_req_zone $binary_remote_addr zone=limit_per_ip:10m rate=5r/s;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;

Explicação:

  • 5r/s → 5 requisições por segundo por IP
  • 10m → armazena milhares de IPs na memória
  • Controle de conexões simultâneas

2️⃣ Aplicando no server

Dentro do bloco server {}:

limit_req zone=limit_per_ip burst=10 nodelay;
limit_conn conn_per_ip 20;

O que isso faz:

  • Permite pequenos picos (burst)
  • Bloqueia excesso imediatamente
  • Limita conexões simultâneas por IP

3️⃣ Protegendo endpoints críticos (WordPress)

XML-RPC

location = /xmlrpc.php {
    limit_req zone=limit_per_ip burst=5 nodelay;
}

Login

location = /wp-login.php {
    limit_req zone=limit_per_ip burst=3 nodelay;
}

Isso reduz drasticamente brute force e HTTP floods.


🛡️ Reforçando com CSF Firewall

O ConfigServer Security & Firewall adiciona proteção em nível de firewall, bloqueando IPs abusivos.

Arquivo de configuração:

/etc/csf/csf.conf

🔹 Proteção contra SYN Flood

SYNFLOOD = "1"
SYNFLOOD_RATE = "50/s"
SYNFLOOD_BURST = "200"

🔹 Limite de conexões

CT_LIMIT = "100"
CT_INTERVAL = "30"
CT_BLOCK_TIME = "1800"

Se um IP exceder 100 conexões em 30 segundos, será bloqueado por 30 minutos.


🔹 Proteção HTTP básica

PORTFLOOD = "80;tcp;20;5,443;tcp;20;5"

🧠 Estratégia de Defesa em Camadas

Para mitigar DDoS no Nginx de forma eficiente:

  1. CDN (Cloudflare ou similar)
  2. Rate limiting no Nginx
  3. CSF Firewall bloqueando abuso
  4. Ajustes no kernel Linux
  5. Monitoramento ativo

⚠️ Erros Comuns

Configurar rate muito baixo e bloquear usuários reais
❌ Esquecer IPv6
❌ Não considerar IP real quando usa proxy/CDN
❌ Bloquear Googlebot por limite agressivo


📊 Caso Real

Após aplicar rate limiting no Nginx + CSF:

  • Load average caiu de 6.0 → 0.8
  • Redução de 70% nas conexões simultâneas
  • Fim de ataques XML-RPC

✅ Conclusão

Mitigar DDoS no Nginx com rate limiting é uma solução eficiente contra ataques HTTP simples.

Quando combinado com CSF Firewall, você cria uma proteção sólida, leve e eficaz para VPS e servidores dedicados.

Não substitui uma proteção de borda, mas impede que ataques pequenos derrubem sua infraestrutura.

FAQ

O rate limiting do Nginx substitui um firewall?

Não. Ele atua na camada HTTP. O ideal é combinar com firewall como CSF.

Posso usar limites agressivos?

Depende do seu tráfego. Sites com cache permitem limites mais restritivos.

Isso funciona com WordPress?

Sim. Principalmente para proteger login e XML-RPC.

Rate limiting impacta SEO?

Se mal configurado, pode bloquear bots legítimos. Ajuste corretamente.