Простого решения вашей проблемы не существует, так как оно недостаточно четко определено (особенно в отношении того, как оно достигает вашей сети), однако в вашем наборе инструментов есть ряд инструментов, в том числе -
Cloudflare передает заголовки CF-Connecting-IP и X-Forwarded-For . Вы должны зарегистрировать эту информацию вместе с запросом - как вы это сделаете, будет зависеть от вашего веб-сервера. Вот ссылка на то, как это сделать в Apache.
Получив вышеуказанную информацию, вы можете настроить fail2ban для подсчета количества обращений к этому файлу журнала за заданное время и черного списка на основе большого количества обращений. Не указывайте это ниже, поскольку каждый элемент будет записан в этот файл журнала.
Большинство хороших веб-серверов позволяют вам обрабатывать трафик на основе различных переменных - одна из них - строка USER-AGENT - если это стандартный прокси-сервер, он, вероятно, установит строку user-agent так, как вы можете поднимите это.
Используйте IPTables - вы можете ограничить максимальное количество подключений на один IP-адрес с помощью модуля connlimit. Посмотрите здесь для реализации. К сожалению, это не будет работать слишком хорошо, если вы используете cloudflare, поскольку все ваши соединения будут происходить с одного IP-адреса.