Posso limitar conexões por segundo para determinados UserAgents usando o UFW?

3

O GoogleBot está atingindo meu servidor com muita dificuldade. Embora tenha definido o CrawlRate nas Ferramentas do Google para webmasters, ele ainda está aumentando a carga do meu servidor e tornando o Apache mais lento para o restante do tráfego normal da web.

É possível limitar / limitar as conexões por segundo / minuto usando o UFW com base em uma string do agente do usuário?

Se não como posso fazer isso para os intervalos de IP do GoogleBot?

    
por cwd 10.12.2012 / 16:41

1 resposta

3

Você não pode fazer isso com o ufw diretamente, mas você precisa adicionar as regras certas do iptables para /etc/ufw/before.rules .

Eu sugiro que você aprenda o iptables. Como um ponto de partida (não otimizado), algo como

-A ufw-before-input -p tcp --syn -dport 80 -m recent --name LIMIT_BOTS --update --seconds 60 --hitcount 4 --rcheck -j DROP
-A ufw-before-input -p tcp -dport 80 -m string --algo bm --string "NotWantedUserAgent" -m recent --name LIMIT_BOTS --set ACCEPT

poderia funcionar, onde é claro que você precisa substituir NotWantedUserAgent pelo correto. Essas regras devem limitar o número de novas conexões por minuto de um bot específico - eu não as testei e não sei se elas realmente reduzem a carga de trabalho de um bot específico.

    
por 10.12.2012 / 18:17