Хоть от сильно больших DDOS атак вряд ли спасет, малое количество ботов думаю отфильтрует (пока не упадет Apache ну или на чем будет стоять ваш веб сервер
Для успешного отражения DDOS атаки необходимо решить 2 проблемы:
• найти способ различать ботов
• найти способ с наименьшей потерей ресурсов блокировать их
Со второй проблемой успешно справляется ip route blackhole (да и провайдера подключить реально), а вот с первой возникают трудности.
Очередной раз изобретая способ как отбиться от ботов наткнулся на проект 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. Прописываем строчку:include("tweety.php");в php-файл на который ведется атака (чаще всего это бывает файл index.php в корне сайта). Теперь можно посмотреть в папку Tweetylogs. Если все сделали правильно - там должны появляться файлы в том числе AttackersIPs.Log 4. Теперь создадим скрипт который будет обрабатывать AttackersIPs.Log и блокировать боты на уровне маршрутизации.
/etc/antiddostweety
#!/bin/sh<br />#путь к файлу 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=***96;cat /tmp/newddosbots***96;
for ip in $list; do<br />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
Скачать DDoS SHIELD:
VT не нужен, так как Яндекс проверяет на вирисы.
Надеюсь вам понравился мой мини-гайд. Желаю удачи.
Добавлено через 23 часа 9 минут
Ребята,если у вас возникнут вопросы,пишите,всегда буду рад помочь.
Последний раз редактировалось Simonn; 02.11.2015 в 17:49.
Причина: Добавлено сообщение
Скрипт сможет определить бота и перенаправить его на другую страницу. Это защитит контент сайта и базы но не защитит сам сервер от Denial of Service. Так как при определении бота и перенаправлении так же сервер будет отправлять данные и делать трафик. Это хорошая система для того что бы защитить контент как я и сказал прежде. Можно сделать так что-бы никто не мог отправлять очень часто комменты или писать куда то. Но это не оч хорошая защита по поводу дос акати.
Реккомендую всё эе решить такие проблемы как дос на уровне сервера. Ибо не писать что это защита от дос.
Скрипт не мой - я лишь изложил свою мысль по поводу этого скрипта и написал небольшой гайд как довести его до ума,все вопросы можете разработчику задавать.
Добавлено через 1 минуту
Если честно,я вообще не понял вашего комментария,я выложил скрипт от сторонних разработчиков - вы начали предъявлять мне,мол я плохо сделал
Последний раз редактировалось Simonn; 03.11.2015 в 09:00.
Причина: Добавлено сообщение
Да фигня всё это. Чем выше уровень отрубания траффика - тем лучше. В идеале на аппаратном уровне. Простым смертным на уровне Nginx'а. Всё, что работает на уровне самого вебсервера (апача, иис) - это изначально шляпа.
Добавлено через 45 секунд
Хотя мб эту преблуду как-то к nginx можно подключить.. это было бы интересно.
Последний раз редактировалось dark; 03.11.2015 в 11:03.
Причина: Добавлено сообщение
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Скрипт не мой - я лишь изложил свою мысль по поводу этого скрипта и написал небольшой гайд как довести его до ума,все вопросы можете разработчику задавать.
Добавлено через 1 минуту
Если честно,я вообще не понял вашего комментария,я выложил скрипт от сторонних разработчиков - вы начали предъявлять мне,мол я плохо сделал
Вы ничего плохого не делали) Проблема в том что в названии написано защита от дос. Но это не какя не защита от дос. Защита доса и т.д решается на уровне сервера а не скрипта))