Não há uma solução simples para o seu problema, pois ele não está bem definido (especialmente em relação a como ele alcança sua rede), no entanto, há várias ferramentas na sua caixa de ferramentas, incluindo -
-
Cloudflare passa pelo CF- Cabeçalhos de Conexão-IP e X-Forwarded-For . Você deve registrar essa informação junto com a solicitação - como você faz isso dependerá do seu servidor web. Aqui é um link sobre como fazer isso no Apache.
-
Depois de ter as informações acima, você pode configurar fail2ban para contar o número de ocorrências contra esse arquivo de log em um determinado momento e lista negra com base em um grande volume de ocorrências. Não subestime isso, pois cada elemento será registrado nesse arquivo de log.
-
A maioria dos bons servidores web permite lidar com o tráfego com base em várias variáveis - uma para investigar é a cadeia USER-AGENT - se esse for um proxy de prateleira, ele provavelmente configurará o user-agent string de uma maneira que você possa pegá-lo.
-
Usar IPTables - você pode limitar o número máximo de conexões por endereço IP usando o módulo connlimit. aqui aqui a> para uma implementação. Infelizmente, isso não funcionará muito bem se você estiver usando o cloudflare, pois todas as suas conexões virão do mesmo endereço IP.