3 vezes nas últimas 48 horas, tivemos um aumento de 6 vezes no tráfego com duração de algumas horas. O servidor lidou com isso a cada vez, mas apenas por pouco. Isso foi quase todo o tráfego de bots ruins (ou talvez falhas nas tentativas do DOS). Eu preciso configurar algum tipo de parede para bloquear automaticamente isso enquanto está acontecendo (não manualmente passando pelos logs no dia seguinte). É claro que o fail2ban aparece muito na minha busca, mas não consigo encontrar bons exemplos ou documentação para saber se é adequado para mim.
Eu preciso implementar um filtro para o apache que ignore a maior parte do log, dependendo de um regex para o URL solicitado, bem como para o user agent. E só então começa a determinar se um IP está nos atingindo demais.
O problema é que não posso simplesmente usar uma simples proibição de limite em endereços IP. Todas as solicitações de páginas legítimas são imediatamente seguidas por muitas outras solicitações de conteúdo de suporte (GET / images / ...; GET / extensions / ...; GET / skins / ...), bloqueando apenas quem fez 10 solicitações em 2 segundos pegaria quase todo mundo. Preciso filtrar essas entradas de qualquer cálculo e contar apenas as solicitações de nível superior.
Mas, mesmo que eu consiga ver somente as solicitações de nível superior (talvez agora eu proíba 20 solicitações em 10 minutos), meu problema será que eu poderia bloquear facilmente os rastreadores que ficariam felizes em exibir páginas para (GoogleBot, Slurp, etc), então eu também quero pular esses.
O Fail2Ban ou qualquer outro produto é robusto? Eu posso obter a informação que eu preciso rapidamente com um par de grep -v declarações, mas existe um programa existente que já faz isso?
Tags firewall fail2ban apache-2.2