Eu sugiro olhar para um Firewall de Aplicação Web mais robusto, como o NGINX. Você pode passar os infratores recorrentes para a sua lista negra do NGINX, onde pode haver um conjunto diferente de regras por quanto tempo o infrator é bloqueado.
EXEMPLO: link