Назад | Перейти на главную страницу

Как я могу предотвратить DoS-флуд apache?

Я настроил сервер, на котором запущен apache, и пару дней назад заметил в журналах, что есть боты, выполняющие бесконечные запросы к сайту. Журналы показывают, что эти боты выполняют около 60 запросов в секунду в течение примерно 20 минут с одного и того же IP-адреса. Как я могу ограничить количество запросов и как лучше справиться с такими ботами?

Заранее спасибо.

Подумайте об установке программного обеспечения, ограничивающего скорость, это поможет вам защититься не только от законных ботов. Ты можешь использовать mod_evasive для Apache, или вы можете установить Nginx в качестве интерфейса и использовать его HttpLimitZoneModule, он встроен.

Я очень рекомендую этот инструмент fail2ban (http://www.fail2ban.org/); мы используем его на наших собственных серверах, и он очень полезен для ограничения DoS-флуда не только для Apache.

fail2ban активно отслеживает различные журналы для разных шаблонов (наш настроен только на отслеживание обращений Apache), и если он определяет, что за определенный период времени с определенного IP-адреса получено слишком много обращений, он заблокирует этот IP-адрес на период, который вы определить (мы используем 20-минутное окно бана)

В fail2ban есть готовые пакеты для большинства дистрибутивов, или вы можете получить исходный код; будучи Python, вам даже не нужно его компилировать! : D

Простое решение - отредактировать файл robots.txt и добавить следующую строку:

Пользовательский агент: *
Задержка сканирования: 60

Изменение задержки сканирования на число в секундах между запросами. «Хорошие» боты должны это слушать и ждать между запросами. Однако "плохие" роботы не слушают никаких правил robots.txt ..

robots.txt и перенаправление ботов на статические сайты. Как правило, это хорошо, когда боты (поисковые системы) сканируют (индексируют) ваш сайт. Предлагаемые методы помогут вам контролировать, как они его индексируют.