O problema é o HTTP 1.1. Você terá que configurar seu servidor web para fazer o downgrade da conexão para 1.0, a fim de matar keepalive se você quiser que isso funcione.
Eu tenho muitas varreduras de vulnerabilidade via solicitações HTTP (tentando obter /password.txt, etc). Atualmente eu uso o fail2ban para analisar o log de acesso do Nginx para contar endereços IP de 404 e banir o invasor. Eu estou querendo saber se é possível simplesmente configurar o iptables para classificar as solicitações HTTP limitadas?
Eu tentei algo assim
iptables -I INPUT -p tcp --dport 2012 -i eth0 -m state --state NEW -m recent --updat…e --seconds 60 --hitcount 5 -j REJECT --reject-with icmp-host-unreachable
mas aparentemente não funciona como esperado. Meu palpite é que as solicitações HTTP mal-intencionadas são canalizadas através de uma única conexão persistente, então a regra acima do iptables não é acionada.
Então, minha pergunta é: é possível classificar solicitações HTTP limitadas no iptables, ou devo ficar com o fail2ban? Obrigado!