Как защититься от Ddos атак ?

Enzo.

Carder
Messages
32
Reputation
0
Reaction score
30
Points
18
Похоже кто-то прочитал мой предыдущий пост и решил опробовать свои силы на нашем любимом форуме и перестарался , @admin не ругайся пожалуйста )))
Тема для статьи сама нашла меня , поэтому о том , как бороться с Ddos - атаками . нормальные админы уже знают , что это за зверь, а владельцы некрупных сайтов даже не будут подразумевать о существовании такой услуги , пока их конкуренты не "положат" к херам их сайт. Итак, DDoS — это отказ в обслуживании, когда очень много компов отправляют на сервер чуть больше чем дох$ра запросов, с которыми он не сможет справиться. Пример : ты работал на кассе и обсуживал 30 клиентов в час , 12 часов в день , а тут резко приходит тысяча покупателей и тебе приходится разрываться - ты не справляешь , работодатель больше не хочет платить и ты увольняешься . Главная цель DDoS атаки положить ваш сервер из-за перегрузки.

Как можно от этого защититься? К сожалению, универсальных способов от DDoS-атак до сих пор не придумали . Для того , чтобы защитить сайт хотя бы частично , тебе понадобится несколько подходов , в которых ты будешь защитать свой сервак на аппаратном и программном уровне.



Программно-аппаратные системы от сетевого гиганта Cisco являются наиболее эффективными, но за них вам придется порядочно потратиться .

Для защиты IIS серверов можно воспользоваться (программным) решением от компании Microsoft, но, зная щедрость этой компании, можно догадаться, что они тоже далеко не бесплатные.

В настоящее время , заказные DDoS-атаки превратились в выгодное направление для киберпреступников . Посидев в TOR , можно найти не один десяток объявлений об оказании таких услуг .

Как же защититься от DDoS?

Если вас «заказали», будьте начеку — мощности веб-сервера обязательно должны иметь некоторый запас по производительности, а распределенные и дублирующие системы — сделаны максимально эффективно. Без понимания принципов работы DDoS, эффективную защиту построить просто невозможно. Для осуществления DDoS-атак используется большое количество зараженных пк. Эти компьютеры объединяются в ботнеты (“bot-net” — сети зомби-машин), которые по приказу ддосера осуществляют DDoS-атаки, причем владельцы компов зачастую даже знают об этом.
ddos-attack.png

Пусть на carder.market идет DDoS атака. По логам мы видим, что все GET запросы идут на основную страницу. В 90% таких случаев ты сможешь ботов можно обмануть воспользовавшись javascript-редиректом.

Благодаря этому каждый раздел, который атакован GET запросом прямо в корень, будет размер не больше нескольких байт, что согласись , уже лучше , нежели ~50-100кб . Легитимные же пользователи, у которых не отключен javascript в браузере, будут отправлены в index.php.

Но тут скрывается маленькое НО – поисковые-боты не оборудованы js-интерпретаторами и так же, как и атакующие боты, будут теряться в js редиректе. Но и тут есть решение проблемы , берешь tcpdump или netstat, и кодишь небольшой скрипт, который будет подсчитывать подключения с одного айпишника и в случае чего , банить его .

Для того , чтобы пробить бота , тебе понадобится его ХОСТ. Ниже я привел пример простейшего скрипта по блокировке IP, которые создают множество подключений к серверу:

Запись в crond
*/1 * * * * netstat -an | grep tcp | awk '{print $5}' | cut -d: -f1 | sort -n | uniq -c > /var/log/ip.list

Эта команда создаст список с количеством подключений и самих айпишников, к примеру :

10 209.232.223.117
1 209.85.161.191
2 212.113.39.162
1 212.78.78.78
61 213.142.213.19
5 213.151.240.177
1 210.169.67.225
1 216.179.59.97

Сам скрипт :

#!/bin/bash
connects=150 <- лимит подключений с одного айпишника
while read name
do
// здесь передаем переменной количество подключений с одного айип
count=`echo $name | awk '{print $1 }'`
// а здесь передадим сам айпи
ip=`echo $name | awk '{print $2 }'`
//проверим по имени host
hostname=`host $ip`;
//если число подключений превысит лимит
if [ "$count" -gt "$connects" ]
then
//проверим,будет ли в белом списке наш айпи
if grep $ip /etc/white.list > /dev/null 2>&1
then
// если в нейме хоста будет слово "google"
if echo $hostname | grep "google" > /dev/null 2>&1
then
// МЫ будем добавлять его в доверненный список и делать записи в лог
echo "$ip" >> /etc/white.list
echo `date +%H:%M_%d-%m-%Y` $ip "- ADDED TO WHITE LIST AS $hostname SEARCH BOT IP" >> /var/log/ddos_log
else
// если это не гугл - НАХЕР
route add $hostname reject
fi
fi
fi
done < /var/log/ip.list


Давай глянем также и на настройки у Apache, благодаря которым мы сможем убрать некоторые проблемки.

TimeOut – пиши наименьшее значение для данной директивы сервака, который подвержен DDoS атаке).

KeepAliveTimeout директива –ее значение также снижай по максимальному или вообще офни.

Не лишним будет проверка значения различных time out директив представленных другими модулями.

Директивы LimitRequestBody, LimitRequestFields, LimitRequestFieldSize, LimitRequestLine, LimitXMLRequestBody настраивай на ограничение потребления запасов , вызванных запросами обычных посетителей.

Проверь, что ты используешь AcceptFilter . Она включена в конфиге Apache httpd, но для своей работы может потребовать пересборку с новыми настройками ядра твоей ОС.

Подруби MaxClients, для указания максимального количества посетителей , которые одновременно будут подрубленны к серверу . Ставь значение меньше, тем самым уменьшишь нагрузку на твой сервак.

Для того , чтобы спастись от Ddos-a понaдобится бесплaтный скрипт – DDoS Deflate. Благодаря нему ты избавишься от детского флуда и DDoS-a. Для защиты скрипт использует «netstat» для обнaружения DDoS и флуда, после чего заблочит адрес атакующего с помощью фаэрволa iptables или apf.
 
Last edited:
Top