Pular para o conteúdo principal

nginx limitando requisições em volume alto

ItemDetalhe
Serviço afetadonginx
Severidadeaviso
Dispara quandoMais de 50 requisições barradas pelo limit_req em 10 minutos, numa mesma zona (general ou reset_senha).

O que representa​

O nginx limita o ritmo por IP e responde 503 ao que passa do limite. Zona general: um IP passou de 10 req/s; em geral é varredura ou robô, e o limite funcionou. Zona reset_senha: alguém está insistindo no "esqueci a senha"; cada pedido manda um e-mail (custo e cota do Oracle) e pode ser assédio a uma conta.

Como verificar no Grafana​

  • Dashboard nginx, aba Segurança, painel Limites do nginx (limit_req) no log de erro: mostra a zona e o IP.
  • Explore → Loki, quem foi barrado: sum by (client) (count_over_time({container="nginx"} |~ `limiting requests` | regexp `client: (?P<client>[0-9a-f.:]+)` [10m]))
  • Para o que o IP pediu: {container="nginx"} |= "<ip>".

Como agir​

  1. Ache o IP e o que ele pediu. Se é varredura (caminhos .env, .git...), trate como nginx-scan-burst e confira se algum caminho sensível voltou 200.
  2. Se repetir, bloqueie o IP (abaixo).
  3. Zona reset_senha: confira também o alerta de pedidos de "esqueci a senha" e a cota de e-mail no OCI (email/README.md, "Cota e custo").

Se for ataque ou incidente real​

Bloqueio do IP ou da faixa:

  1. Adicione deny <ip>; (ou a faixa, deny <ip>/24;) no server do host atingido, em nginx/conf/ do repositório reverse-proxy.
  2. Urgente: aplique na VM e recarregue com docker exec nginx nginx -s reload; depois abra o PR com a mesma mudança (deploy é manual).
  3. Se a zona é reset_senha e um usuário real foi alvo, avise-o e confira a conta no Keycloak (logins estranhos, troca de senha).

Casos conhecidos​

Em 18/10/2026, 103 barramentos na zona general de um único IP (104.199.86.11) em 36 segundos. Nada foi servido de sensível.