nginx limitando requisições em volume alto
| Item | Detalhe |
|---|---|
| Serviço afetado | nginx |
| Severidade | aviso |
| Dispara quando | Mais 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
- Ache o IP e o que ele pediu. Se é varredura (caminhos
.env,.git...), trate comonginx-scan-burste confira se algum caminho sensível voltou 200. - Se repetir, bloqueie o IP (abaixo).
- 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:
- Adicione
deny <ip>;(ou a faixa,deny <ip>/24;) noserverdo host atingido, emnginx/conf/do repositórioreverse-proxy. - Urgente: aplique na VM e recarregue com
docker exec nginx nginx -s reload; depois abra o PR com a mesma mudança (deploy é manual). - Se a zona é
reset_senhae 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.