Limite de taxa de bots mal configurados

1

Temos um Nginx / PHP-FPM por trás de um balanceador de carga que periodicamente é raspado. Muitos dos raspadores atingiram a página 404 do aplicativo com muita calma.

Existe uma maneira no Nginx, possivelmente com o módulo de limitação de taxa ou um módulo diferente, bloquear todo o tráfego com base no x-forward-for após atingir 404 erros em mais de 100 solicitações por minuto?

A documentação que encontrei para limit-req-module parece ser baseada em recursos e não em recursos no status de retorno da página.

Há tráfego suficiente, cada nó está vendo um tráfego 404 suficiente para não precisar se comunicar sobre quem bloquear coletivamente.

    
por rrehbein 15.05.2015 / 20:59

2 respostas

2

Você certamente pode fazer isso no nginx com o módulo limit_req_zone.

No nginx.conf, configure uma zona:

limit_req_zone $binary_remote_addr zone=one:1000m   rate=100r/m;

Você também pode usar X_Forwarded_For em vez de binary_remote_addr .

No seu bloco de localização de configuração do site, apenas faça referência à zona:

limit_req zone=one burst=10 nodelay;

doc: link

    
por 19.05.2015 / 14:48
0

Você pode usar o fail2ban e usar a seguinte cadeia com o nginx para limitar bots com configuração incorreta

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local e adicione isso na parte inferior

[nginx-req-limit]

enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 7200
maxretry = 10

referências: link

    
por 19.05.2015 / 14:57