Защита от ddos - ddos shield

Тема в разделе "Защита и взлом", создана пользователем Itnull, 26 авг 2014.

  1. Itnull

    Itnull раздаюбан Команда форума Администратор

    Регистрация:
    22 май 2013
    Сообщения:
    15.457
    Симпатии:
    3.605
    Пол:
    Мужской
    Php Скрипт Защиты От Ddos атак.
    Защита от DDOS (PHP DDoS SHIELD, IPROUTE BLACKHOLE)
    Для успешного отражения 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 и распаковываем в папку с сайтом:
    cd /var/www
    wget http://ddos-shield.googlecode.com/files/tweety_1_02.tar.gz
    tar xzvf ./tweety_1_02.tar.gz

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

    3. Прописываем строчку:
    include("tweety.php");

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

    4. Теперь создадим скрипт который будет обрабатывать AttackersIPs.Log и блокировать боты на уровне маршрутизации.
    cat > /etc/antiddostweety
    #!/bin/sh
    #путь к файлу AttackersIPs.Log
    LOG_PATH="/var/www/Tweetylogs/AttackersIPs.Log"
    cat $LOG_PATH | awk '{print $1}' > /tmp/newddosbots
    cat /tmp/newddosbots >> /tmp/ddosbots
    echo > $LOG_PATH
    list=`cat /tmp/newddosbots`
    for ip in $list; do
    ip route add blackhole $ip
    done

    5. Даем ему права на исполнение:
    chmod +x /etc/antiddostweety
    6. Прописываем его в cron:
    cat > /etc/cron.d/antiddos
    */3 * * * * root /etc/antiddostweety

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

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

     
  2. сантила1234

    сантила1234 Житель

    Регистрация:
    17 окт 2014
    Сообщения:
    11
    Симпатии:
    0
    найти способ с наименьшей потерей ресурсов блокировать их... есть вариант на ардуинке.
     
  3. garikkk

    garikkk Житель

    Регистрация:
    4 апр 2016
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    А есть защита для сервера vds?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление