Наткнулся на модуль path2ban. Он дает возможность заблокировать по IP, если данный IP несколько раз безуспешно пытается загрузить одну и ту же страницу. Можно указать и запретить определенный путь для незарегистрированного пользователя и автоматически его забанить/разбанить. В принципе, модуль хорошо справляется с блокировкой ботов, снижая нагрузку на процессор.
Но пришлось от него отказаться, т.к. при нем перестали работать некоторые блоки ( напр, был установлен блок авторизации на конкретной странице(node/add*), при включенном модуле он не отображался. Блок отображался только если сделать его видимым на всех страницах ( а не на add*), либо отключив модуль.
Есть ли похожие по функционалу модули? flood_control - похож, но там только блокировка если бот несколько раз пытается зарегистрироваться, а мне надо указать определенный путь либо страницу (напр, бот пытается 5 раз за минуту добавить ноду, модуль его автоматически блокирует (что и делает path2ban).
Комментарии
https://www.drupal.org/project/spamna или мое скромное творение https://www.drupal.org/project/autoban
Спасибо за ответ, пробую Ваш модуль. IP блокируется на постоянной основе? Просто в path2ban есть возможность автоматической разблокировки по времени (удобно когда реальный человек просто по своей неосторожности заблокирован). И что означает Cron enable в настройках? Т.е. IP блокируется при наступлении Cron? А если галочка убрана, то сразу блокируется?
Пишу вдогонку. Ваш модуль только анализирует и записывает сколько раз и кто зашел на запрещенную правилами страницу? Т.е. блокировать приходится все-равно в ручную через тест? По крайней мере у меня автоматом не блокируется, просто в тесте отображается кто и сколько раз нарушил установленное правило и оттуда же могу вручную заблокировать
- Блокируется на постоянной основе. Точнее, идет запись в таблицу блокировки (в стандартный по одному IP или в период если используется модуль IP_range), Я пишу в чужие таблицы, сам не блокирую. Разблокировка - не знаю, накладно ее делать, если больше одной таблицы. И они независимые же, может быть двойной бан.
- Cron enable - это значит блокировка идет по крону (по умолчанию). Но если не нужен автоматический бан, то можно снять и тогда возможна только ручная блокировка. В основном чекбокс должен быть включен.
- Блокировать можно автоматом (кроном, согласно правил) или же вручную:
- Насчет блокировать сразу, думаю. Стандартно модуль лениво блокирует, набирается статистика нарушений между запусками крона и блокирует нарушителей. Можно сразу - поступила запись в журнал и мигом проверка, но с точки зрения производительности каково будет. Для какого-то сумасшедшего наплыва ботов разве что, временно включать.
Можно path2ban доработать, убрать недостатки ваши
Блоки не отображались из-за того, что path2ban модуль после установки создавал пути path2ban/403 и path2ban/404 в настройках /admin/config/system/site-information.
Нужно добавить в настройках блока показывать на странице path2ban/403, тогда блоки отображаются правильно.