У меня есть злонамеренный пользователь, нацеленный на мой сайт, отправляющий большое количество запросов POST. У меня есть автоматизированные системы для блокировки злоупотребления IP, но проблема в том, что я блокирую их в своем PHP-коде через базу данных. Таким образом, каждый почтовый запрос, который они делают, обращается к базе данных. Это создает напряжение. Я также делаю эту проверку в виде перезарядки.
Поскольку я использую Cloudflare, я не могу просто автоматически добавлять злоупотребляющие IP-адреса в iptables или что-то в этом роде, и apache также не получает настоящий IP-адрес.
Как лучше всего с этим справиться? Я продолжаю блокировать диапазоны IP-адресов VPN, которые он использует, однако используемый IP-адрес переключается, как только они блокируются.
Вы можете увидеть фактический IP посетителя, установив mod_cloudflare.
Как восстановить исходный IP-адрес посетителя на веб-серверах Apache?
Чтобы восстановить исходные IP-адреса посетителей в файлы журналов и веб-приложения, запущенные на веб-серверах Apache httpd, вам необходимо установить mod_cloudflare. Чтобы установить mod_cloudflare, следуйте инструкциям по установке, описанным на нашей странице загрузок.
После этого вы можете заблокировать вредоносные IP-адреса на уровне Apache через htaccess, прежде чем любой запрос достигнет любого PHP-скрипта.
Обновить:
На странице загрузок Cloudflare представлены готовые пакеты для распространенных дистрибутивов Linux. Если ваш дистрибутив не поддерживается, вы можете скомпилировать модуль для вашего apache, как описано здесь: https://www.cloudflare.com/resources-downloads#mod_cloudflare
Вариант 4: Ручная установка: Debian / Ubuntu
mod_cloudflare имеет несколько программных зависимостей, которые необходимо сначала установить:
apt-get install libtool apache2-dev
Примечание. Если вы обнаружите, что не можете установить apache2-dev, вам следует установить:
apt-get install libtool apache2-threaded-dev
Затем вы должны загрузить исходный код mod_cloudflare на свой сервер:
wget https://www.cloudflare.com/static/misc/mod_cloudflare/mod_cloudflare.c
Наконец, установите модуль. В зависимости от вашей системы запускаемая команда может быть apxs или apxs2. Итак, запустите одну из двух команд ниже. Если при запуске одного из них вы получаете сообщение «Команда не найдена», попробуйте другое:
apxs -a -i -c mod_cloudflare.c
apxs2 -a -i -c mod_cloudflare.c