Я хотел бы разрешить использовать только один IP-адрес, скажем, до 1 ГБ трафика в день, и если этот предел превышен, все запросы с этого IP-адреса отбрасываются до следующего дня. Однако было бы достаточно более простого решения, при котором соединение прерывается после определенного количества запросов.
Уже есть какой-то модуль, который может это сделать? Или, может быть, я могу добиться этого с помощью чего-то вроде iptables?
Спасибо
Ответы:
Если вам нужно чистое решение Apache, то bw_mod для Apache 2.0 и mod_bandwidth для Apache 1.3. Они могут ограничить пропускную способность вашего сервера, чтобы ограничить использование пропускной способности.
Существует также mod_limitipconn, который не позволяет одному пользователю устанавливать множество соединений с вашим сервером. mod_cband - это еще один вариант, но я никогда не использовал его.
Если вы не хотите возиться с установкой Apache, вы можете установить прокси-сервер squid перед Apache. Это дает вам больше контроля над регулированием.
Тем не менее, в большинстве случаев проблема заключается в нескольких крупных объектах, когда вы хотите ограничить пропускную способность для каждого IP-адреса, и вы хотите дать нормальное сообщение об ошибке, когда пользователь получает слишком много данных, и вы блокируете его. В этом случае может быть проще написать сценарий PHP и сохранить информацию о доступе во временной таблице в базе данных.
источник
Это мое решение iptables для такого рода проблем. Настройте по
--seconds
--hitcount
мере необходимости, а также таблицу iptables.Разъяснение:
iptables
проверьте, указан ли исходный IP-адрес в файле / proc / net / ipt_recent / ATACK 5 или более раз с интервалом 600 секунд, и является ли это НОВЫМ запросом. Если это так, сделайте отказ; ещеiptables
проверьте, направлен ли запрос на порт 80. Если это так, выведите IP и временную метку в / proc / net / ipt_recent / ATACK и отправьте пакет.Он отлично работает для моих нужд.
источник
Вы смотрели на инструмент, как fail2ban? Если это может быть немного тяжелым для вас, но это позволит вам ограничить количество запросов, разрешенных для любого данного IP. Он работает, просматривая журналы, и вы устанавливаете правила, сколько нарушений допускается за раз, так что для вас это могут быть запросы в день. Как только они переходят, это может блокировать их с помощью ipchains.
Я использовал его, чтобы очень успешно блокировать DDoS-атаки на почтовый сервер. Хотя он может потреблять значительное количество процессорной мощности.
источник
попробуй
mod_dosevasive
илиmod_security
mod_dosevasive
Может быть настроен на запрет IP после указанного числа или запросов страниц к сайту в указанный период времени.источник