Официальный сайт студ.городка НГТУ
Software » Как защититься от DDOS-атаки? 

#1  10.01.11 13:34

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

Сейчас сайт заблокировал хостер. Посмотрел по логам - сайт лег после того как с разных ip было множество обращений к одной и той же странице. Сайт находиться на виртуальном хостиге.
Собственно вопросы:
1. Можно ли защититься средствами php на виртуальном хостиге от такой атаки?
2. Если купить выделенный сервер, то как фаерволом закрыть сайт от такой атаки?

Offline

#2  10.01.11 13:44

$up
Профиль

Re: Как защититься от DDOS-атаки?

1. нет
2. только полностью закрыв сайт 8)

Offline

#3  10.01.11 14:26

Re: Как защититься от DDOS-атаки?

GrAnD, когда будешь гуглить на эту тему и увидишь статью содержащую слова "...для отражение ддос-атаки напишем скрипт на php" можешь смело закрывать страницу и автору писать что он мудак.

основное решение проблемы ддоса - это полностью закрыть доступ для айпи (или сетей) ботов. решений существует два.

1. за деньгу. нужно найти компанию (так например), которая занимается фильтрацией трафика и поменять А запись на айпи этой компании.весь траф пойдёт через их сервера и уже отфильтрованный будет приходит к твоему хостеру. стоит от 20$ сутки, зависит от мощности ддоса.

2. самостоятельно. тут уже нужно купить как минимум vds. поставить nginx и заглушку с текстом "Нас ддосят. Скоро будем" и анализировать логи и банить айпи фаерволом. под каждый случай своё решение, но нужно осилить nginx, любой скриптовый язык, cron

в некоторых случаях можно вообще одним nginx обойтись: есть возможность ограничевать кол-во соединений с одного айпи в промежуток времени (это так же можно сделать с помощью iptables, но для того что бы работала такая возможность нужно пересобирать ядро что на vps невозможно), есть возможность моментально обрывать соединение по признаку (старый броузер, наличие печенюк и тд) и так же есть возможность открыть сайт только для определённой страны (модуль geo ip). правда тут нужно максимально закешировать сайт, оптимизировать запросы к бд (в идеале что бы вообще не было join)

сейчас в интернете среди школие-хакиров распространенны два вида ддоса - http flood и syn flood. http flood более распространён так как достаточно 100 ботов что бы положить сайт на щаред хостинге. если же сайт продолжает работать то постепено увеличивают кол-во ботов тем самым увеличивая мощность ддоса, правдо сейчас это уже не так страшно так как каналы у большинства хостеров широкие и сервера боле мене. а вот syn flood уже более жёсткая штука, тут уже не только канал забивают но и процессорное время сервера, с ним самостоятельно бороться можно только в том случае если син флуд не большой.

Offline

#4  10.01.11 14:59

$up
Профиль

Re: Как защититься от DDOS-атаки?

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

Offline

#5  10.01.11 16:58

Re: Как защититься от DDOS-атаки?

$up написал(а):

Если ботнет достаточно большой, то ляжет любой сайт.

если хттп флуд - не ляжет

Offline

#6  10.01.11 22:05

Re: Как защититься от DDOS-атаки?

IDrum дело говорит: настраиваем в nginx/apache/iptables лимиты обращений с ip, тюним сайт (глагне, авторизацию, плюс то, что судя по логам долбят) и начинаем увлекательный интеллектуальный марафон по отсечению ботов через высталение/проверку кук, geo ip и ещё каких-нибудь извращений, на которые фантазии/интернетов хватит...

Исправлено efferson (10.01.11 22:05)

Offline

#7  11.01.11 00:08

Re: Как защититься от DDOS-атаки?

видимо буду переходить на вдс. Как временная мера - в htaccess забанил ботов))

Offline

#8  11.01.11 00:14

Re: Как защититься от DDOS-атаки?

ну если таким простым способом обошёлся мож и не нада вдс? :)

Offline

#9  11.01.11 00:50

Re: Как защититься от DDOS-атаки?

iDrum, ждем повторной атаки)

Offline

#10  11.01.11 12:26

Re: Как защититься от DDOS-атаки?

недавно и меня нагнули лол :3
а ничего и не сделаешь. от греха подальше опускаешь машинку, или роняешь апач и анализируешь откуда что идет, и какие признаки флуда. если машина мощная, то можно увеличить число сессий/коннектов на апаче посмотреть server-status как наши борют ихних.


надо попробовать еще IDS посмотреть далеко ли шагнула наука.

Offline

#11  11.01.11 14:46

Re: Как защититься от DDOS-атаки?

а IDS тут причём?

Offline

#12  12.01.11 16:10

Re: Как защититься от DDOS-атаки?

iDrum верно освещает.) за хардварный IDS денег нужно заплатить много, про софтовые вообще ничего вменяемого не слышал, может профит и есть. syn flood можно попячить, потюнив ведро операционки, сейчас точно не помню, но можно через sysctl на время понизить количество "полуоткрытых" соединений; также в iptables можно дропать пакеты и банить адреса, если задетекчен syn-flood.

Offline

#13  15.01.11 11:52

Re: Как защититься от DDOS-атаки?

JONIK написал(а):

iDrum верно освещает.) за хардварный IDS денег нужно заплатить много, про софтовые вообще ничего вменяемого не слышал, может профит и есть. syn flood можно попячить, потюнив ведро операционки, сейчас точно не помню, но можно через sysctl на время понизить количество "полуоткрытых" соединений; также в iptables можно дропать пакеты и банить адреса, если задетекчен syn-flood.

Да ну нахер не слышал, софтом можно многое отрезать, нгинкс + иптаблес + ещё чего нить прикрутить и правильно настроить и срежешь стопудово свою атаку, на мелкие сайты никто себе не позволяет покупать ботнет на миллион ботов.

Offline

#14  15.01.11 14:11

Re: Как защититься от DDOS-атаки?

otaku написал(а):

Да ну нахер не слышал, софтом можно многое отрезать, нгинкс + иптаблес + ещё чего нить прикрутить и правильно настроить и срежешь стопудово свою атаку, на мелкие сайты никто себе не позволяет покупать ботнет на миллион ботов.

Ммм, я имел ввиду именно специализированные системы обнаружения вторжений (IDS - Intrusion Detection System), которые работают по эвристическим алгоритмам или заранее сформированным сигнатурам, и по результатам анализа трафика, сетевой и системной активности делают вывод, что производится сетевая атака, и как минимум информируют админа, а вообще и предлагают методы борьбы - тот же iptables)
Как пример такой подсистемы fail2ban - демон, который следит за активностью сервисов SSH, Apache, FTP и в случае скана пароля или превышения числа допустимых соединений в единицу времени банит адрес через iptables.

Offline

#15  15.01.11 19:25

Re: Как защититься от DDOS-атаки?

JONIK написал(а):

Ммм, я имел ввиду именно специализированные системы обнаружения вторжений (IDS - Intrusion Detection System), которые работают по эвристическим алгоритмам или заранее сформированным сигнатурам, и по результатам анализа трафика, сетевой и системной активности делают вывод, что производится сетевая атака, и как минимум информируют админа, а вообще и предлагают методы борьбы - тот же iptables)
Как пример такой подсистемы fail2ban - демон, который следит за активностью сервисов SSH, Apache, FTP и в случае скана пароля или превышения числа допустимых соединений в единицу времени банит адрес через iptables.

Платные софтовые решения есть у касперского.

Offline

#16  15.01.11 19:26

Re: Как защититься от DDOS-атаки?

ну а так на ум приходит snort и snortsam
у меня его напарник по работе настраивал

Offline

#18  12.02.11 12:25

Re: Как защититься от DDOS-атаки?

по-моим наблюдениям, сейчас бесполезно защищаца от ддоса и уж тем более на шаред хостинге. боты стали российскими, посиму не поможет отрубание заграницы. кол-во ботов в атаке стало меняться и так же хакиры научились (ну может и раньше умели, но я такого не наблюдал) менять типа атаки - сначала шёл http flood что пох, потом с этих же айпи пошёл udp flood, а потом и syn flood. и тут уже не помагают ни патчи ядра ни парсер логов.

если у вас социально значимый ресурс то можно получить бесплатную хорошую помощь
http://highloadlab.ru/services/service_8.html
http://kaspersky.ru/ddos-prevention

ну и за бабло. цены варьируются от 25 баксов до 200.
http://secureservertech.ru/
http://stop-ddos.net/ru/index_ru.html
http://ddosoff.ru/

Offline

#19  12.02.11 14:00

Re: Как защититься от DDOS-атаки?

iDrum, UDP/SYN-флуд на VDS рубится легко и непринуждённо.

Код::

sysctl net.ipv4.icmp_echo_ignore_all=1
iptables -I INPUT -p udp --dport 53 -j DROP -m iplimit --iplimit-above 1
sysctl -w net.ipv4.tcp_max_syn_backlog=1024
sysctl -w net.ipv4.tcp_synack_retries=1
sysctl -w net.ipv4.tcp_syncookies=1
iptables -I INPUT -p tcp --syn --dport 80 -m iplimit --iplimit-above 10 -j DROP

Offline

#20  13.02.11 22:40

Re: Как защититься от DDOS-атаки?

несмешно

Offline

#21  22.02.11 17:23

Re: Как защититься от DDOS-атаки?

Northsoft написал(а):

iDrum, UDP/SYN-флуд на VDS рубится легко и непринуждённо.

такой флуд умер сам собой

Offline

#22  02.04.12 23:42

Re: Как защититься от DDOS-атаки?

так то можно ипы по маске банить

Offline

#23  06.04.12 15:52

Igo
Профиль

Re: Как защититься от DDOS-атаки?

http://bkmz.org/425/zashtita-ot-ddos-iptables

проверено на собственном опыте - сервак не замечает активного ддоса на протяжении уже почти полугода

Offline

#24  06.04.12 20:36

Re: Как защититься от DDOS-атаки?

Igo, уточняйте что это школоддос, который при правильной архитектуре приложения можно не заметить

Offline

#25  08.04.12 14:43

Re: Как защититься от DDOS-атаки?

при более менее адекватном ddose сервер с iptables сдохнет сразу.

Offline

#26  10.04.12 16:34

Max
Профиль

Re: Как защититься от DDOS-атаки?

похожую штуку городил когда postfix мой драконили. Написал скриптец, который тэйлил логи постфикса, и если там были отказы (отправка несуществующему юзеру, на не наш домен, попытка релэя, отправка от несуществующего юзер и т.п.), то заносил src ip в SET. SET "флэшился" раз в час (ну мало ли что за ошибка была, а нормальный почтовик если что перешлет письмо позже). За час набиралось 20-25 тысяч айпишников в списке. Не знаю, "адекватный" ли это ddos, но если дать волю этим 20 тысячам подключаться непосредственно к постфиксу - тот уходил в астрал.

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

Код::

cat /usr/local/bin/blockspam.php
#!/usr/bin/php -q
<?php

exec("/sbin/ipset -N SPAMHOST iphash >/dev/null 2>/dev/null");

        //set initial variables
        $file = "/var/log/maillog";

        //set functions
        function closeFile(&$handle)
        {
                fclose($handle);
        }

        function openFile(&$file, &$handle)
        {
                $handle = fopen($file, r);
        }

        function resetFile(&$file, &$handle)
        {
                closeFile($handle);
                openFile($file, $handle);
        }

function blockset($string)
{
    $skip=strpos($string,"NOQUEUE");
    $b=strpos($string,"[",$skip);
    $e=strpos($string,"]",$skip);
    $ip=substr($string,$b+1,$e-$b-1);
//    echo $string."\n".$ip."\n";
exec("/sbin/ipset -A SPAMHOST {$ip} >/dev/null 2>/dev/null");

}

        //main
        openFile($file, $handle);
        fseek($handle,SEEK_END);
        $curPosition = filesize($file);
        $curctime = filectime($file);
        $curSize = filesize($file);

        while (file_exists($file))
        {
                clearstatcache();
                if(filectime($file) == $curctime)
                {
                        sleep(1);
                        continue;
                }
                if(filesize($file) < $curSize)
                {
                        resetFile($file, $handle);
                        $curPosition=0;
                }
                fseek($handle, $curPosition);
                while (feof($handle) != true)
                {
                        $string=fgets($handle);
                        if (strstr($string,"NOQUEUE: reject: RCPT from")) blockset($string);
                        $curPosition = ftell($handle);
                        $curctime = filectime($file);
                        $curSize=filesize($file);
                }
        }
        closeFile($handle);
?>

Offline

#27  10.08.12 09:05

Re: Как защититься от DDOS-атаки?

Вот интересное обсуждение http://habrahabr.ru/post/149302/

Offline

Software » Как защититься от DDOS-атаки? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.093 сек.
Выполнено 14 запросов.