ВВЩЫ – Простая защита от DDOS

ввщы

Скорее всего много пользователей могут не переключить раскладку клавиатуры и набирают DDOS как ВВЩЫ. Пэтому, мы решили рассказать вам о еще одном методе защиты от ddos атак, который вы легко можете реализовать сами.

ВВЩЫ – Две главные проблемы защиты от DDOS.

Для успешного отражения DDOS атаки необходимо решить 2 проблемы:

  • найти способ различать ботов
  • найти способ с наименьшей потерей ресурсов блокировать их

Со второй проблемой успешно справляется ip route blackhole (да и провайдера подключить реально), а вот с первой возникают трудности.

Очередной раз изобретая способ как отбиться от ботов наткнулся на проект  ВВЩЫ (DDOS) SHIELD (http://code.google.com/p/ddos-shield/).
Это PHP скрипт, соответственно дальше речь пойдет о защите сайтов написанных на PHP. Но я думаю посмотрев на его исходники (очень небольшие) можно без труда переписать скрипт и на другие платформы.

Итак разработчики пишут нам что PHP ВВЩЫ (DoS) SHIELD работает на идее различного времени доступа к сайту у человека и бота. Ни один человек никогда не сможет посетить страницу 90 раз в течение 30 секунд (боты могут и больше). Когда скрипт определяет бота он выдает ошибку 503 и предупреждающее сообщение. IP адрес бота и его User Agent записываются в log-файл.

Как раз то что нам нужно. Эксперименты на сервере подвергаемом ВВЩЫ (DDOS) показали что скрипт достаточно хорошо определяет боты. И мы можем решить нашу первую проблему.

Идея следующая – поставить на сайт PHP DDOS SHIELD а его log-файл обрабатывать собственным скриптом и блокировать на уровне маршрутизации при помощи ip route blackhole.

1. Скачиваем PHP DoS SHIELD и распаковываем в папку с сайтом:

2. Редактируем файл tweety.php по своему вкусу. Нас интересует секция INITIALIZATIONS.

$iplogdir – папка куда будут писаться временные и log-файлы
$iplogfile – имя log-файла (он нам потребуется)
$to – адрес электронной почты, куда будут отправляться предупреждения об атаке
$itime – минимальное количество секунд между посещениями с одного адреса
$imaxvisit – максимальное количество посещений в $itime x $imaxvisits секунд

3. Прописываем строчку:

в php-файл на который ведется ВВЩЫ (DDOS) атака (чаще всего это бывает файл index.php в корне сайта). Теперь можно посмотреть в папку Tweetylogs. Если все сделали правильно – там должны появляться файлы в том числе AttackersIPs.Log .

4. Теперь создадим скрипт который будет обрабатывать AttackersIPs.Log и блокировать боты на уровне маршрутизации.

5. Даем ему права на исполнение:

6. Прописываем его в cron:

7. Перезапускаем cron чтобы применились изменения:

Теперь все найденные боты буту попадать в блок-лист раз в 3 минуты. А полный список IP ботов сохраняется в /tmp/ddosbots

исходный код скрипта:

 

Рейтинг материала
[Голосов: 1 Рейтинг: 5]
24 апреля 2017, 04:28

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *