Cкрипт: парсить лог файл сервера в папке logs и заносить в бан лист IP c большим количеством запросов

*
1
*
✩ 1
Кто-нибудь может поделиться скриптом для решения следующей задачи:

У меня виртуальный хостинг на Мажордомо.

Некто с одного ip каждые 5 секунд повторяет GET /archives/221. Длится это несколько часов, пока не занесу ip в .htaccess.

Через n часов опять начинает с другого ip все к той же странице (там обыкновенная статья).

Хостер сказал: "Вам нужен скрипт, который бы парсил лог файл сервера, доступный в папке logs и заносил бы бан-лист IP c большим количеством запросов".

Кто-нибудь может поделиться таким скриптом? Заранее благодарю!
скрипт хостинг htaccess бан сервер
8 месяцев 10 дней назад
You
[69]

#ссылка не по теме? tweet сохранить
1 запрос в 5 секунд - это DDoS?.. Вы шутите? Пусть обращается к странице, вам-то что? :) – zhukov.roman 8 месяцев 10 дней назад
Это его обращение увеличивает нагрузку CPU на 5-10%, чего достаточно, чтобы выйти за пределы положенных аккаунту 15-ти %, после чего следует отключение на 10 мин. Знаю, и другие владельцы сайтов сталкивались с аналогичной проблемой. – You 8 месяцев 10 дней назад
А эту страницу нельзя закэшировать уж если она находится в папке /archives/ ? – zhukov.roman 8 месяцев 10 дней назад
Кэширование сайта с помощью плагина WP-Super-Cache стояло раньше и мало что давало. Сейчас стоит иной скрипт кэширования. Не помогает. – You 8 месяцев 10 дней назад
Если плагин был правильно настроен, то я бы срочно поменял хостера, который не может раз в пять секунд отдавать статическую страницу. Потому как если у них уже на этом уровне начинаются проблемы... что же будет, когда вырастет посещаемость вашего сайта? – zhukov.roman 8 месяцев 10 дней назад
На том же аккаунте есть статический сайт. Одну из его страниц, не самую легкую, открывают чаще, но хостинг вполне выдерживает нагрузку. А эти запросы не выдерживает. Поэтому скрипт для отсева таких ip пригодился бы. – You 8 месяцев 10 дней назад
Стоит блог, и в процессе поисковые боты обращаются к страницам не реже вашего. Пока не поставил кэширующий плагин, была примерно такая же ситуация. Я бы вам порекомендовл проанализировать, что именно так сильно нагружает хостера. Проблема явно не в том, что боты стучатся к вам, а в коде. – RayZ 8 месяцев 10 дней назад
а запрос идет на одну конкретную страницу? – Asmodeus 8 месяцев 10 дней назад
Да, на упомянутую /archives/221 – You 8 месяцев 10 дней назад
комментировать



*
2
*
Если писать анализатор логов на php, то он будет съедать ресурсов гораздо больше, чем Ваше приложение вместе взятое - памяти ему понадобится немало для работы. Кстати, не факт, что у пользователя под которым запускается php, есть доступ к папке с логами - по причинам безопасности. Более правильно писать под bash и выполнять в операционной системе по крону, но на виртуальном хостинге вряд ли встретишь такие возможности. Но самое обидное в том, что это все не поможет. Парсить логи "на лету" при Ваших ресурсах нереально, а "врагу" достаточно просто сменить IP, чтобы положить Ваш сайт на 10 минут.

Самое правильно решение описано в комментариях к вопросу. Нужно настроить кэширование и отдавать html-страницу. На мой взгляд, самым простым решением будет физически создать папку "/archives/221", в нее положить файл index.html в котором будет то, что должен увидеть пользователь (такую страницу легко получить нажав "Save as" в браузере). После чего в эту директорию положить .htaccess со следующей директивой:
DirectoryIndex index.html

Сервер будет отдавать index.html без любы других обращений к скриптам. Даже если у Вас стоит mod_rewrite и все обращения к директориям перекидывает на индексный файл в корень, то это будет работать - физические директории имеют больший приоритет для Apache, чем mod_rewrite.
#ссылка не по теме?
8 месяцев 9 дней назад
Magz
[2041]
Спасибо, создал пока там index.html. Специалисты хостинга Majordomo, между прочим, отметили: "Плагины кеширования не спасают от увеличения нагрузки на процессор веб-сервера, а только увеличивают ее, поскольку они призваны снижать нагрузку только на сервер баз данных". Хотя с самого начала я ставил для себя вопрос так: "У меня ограничение по CPU, поэтому поставлю плагин кэширования". Выходит, кэширование не спасет. – You 8 месяцев 9 дней назад
Все правильно. БД - это самое тормозное место, обычно. Поэтому кэширующие плагины сохраняют статические данные в файлы и грузит их не из БД, а из файлов. А это дает нагрузку на диск и на CPU как раз. А создав файл Вы перешли на "более низкий уровень", грубо говоря. Тратятся только ресурсы веб-сервера, которые и так потребляются при ответе на запрос. P.S. Не забудьте рассказать через день-другой, помогла ли такая мера? – Magz 8 месяцев 9 дней назад
Magz, создание html помогло, спасибо! А также отправил письмо провайдеру хулигана со списком его ip, после чего последний куда-то пропал. – You 8 месяцев 7 дней назад
Ан нет, "дятел" опять появился с нового ip. Но html-версия страницы выдерживает нагрузку. – You 8 месяцев 7 дней назад
Ну, отлично. Рад был помочь! – Magz 8 месяцев 7 дней назад
Комментировать
*
1
*
Также можно написать простенький плагин к WP, который будет писать лог последних десяти минут обращений и при третьем (например) рефреше одной страницы заносить этот IP в суточную таблицу бана. Этим приемом мы обращаемся к двум маленьким таблицам (лог и бан), поэтому нагрузка на хостинг будет гораздо меньше, чем у анализатора полных логов.
#ссылка не по теме?
8 месяцев 9 дней назад
Роман, спасибо за идею! – You 8 месяцев 9 дней назад
Комментировать
*
-2
*
в конце .htaccess дописываем
Redirect /archives/221 http://google.com

и смотрим что из этого выйдет
#ссылка не по теме?
8 месяцев 9 дней назад
И те, кто смотрит эту страницу адекватное число раз, получают черти что вместо требуемого. Жесть. – Magz 8 месяцев 8 дней назад
Комментировать

Ваш Ответ:


Ваш OpenID


Получить OpenID

Что такое OpenID?
или

Логин

Email

Пароль


Будет создана учетная запись и на email выслано письмо подтверждения.


новые ответы

Первый раз на сайте?

askdev.ru — это социальный сайт вопросов и ответов для IT-специалистов: программистов, веб-дизайнеров, системных администраторов.
о сайте » регистрация »

Показан

666 раз

Задан

8 месяцев 10 дней назад

Теги
скрипт x 8
хостинг x 23
htaccess x 22
бан x 3
сервер x 15
X

Пожалуйста, войдите:


Имя:
Пароль:
регистрация
Или используйте OpenID