Жестко DDoS'ят

Discussion in 'AntiDDos - АнтиДДОС' started by 3lancer, 24 Jan 2011.

  1. 3lancer

    3lancer New Member

    Joined:
    18 Jan 2011
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте.

    Подскажите, что можно предпринять в борьбе с DDoS, кроме как переезд на новое железо?

    Как можно отличать ботов от людей и посылать их лесом? или это бесполезно?
     
  2. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    81
    Reputations:
    0
    на форуме много раз обсуждался ддос,думаю что то нового вам никто не скажет.наверное лучше покопайтесь в архиве форума.
     
  3. A_n_d_r_e_i

    A_n_d_r_e_i Elder - Старейшина

    Joined:
    2 Sep 2009
    Messages:
    204
    Likes Received:
    277
    Reputations:
    32
    Вот полезная тема:
    http://forum.antichat.net/thread134300.html
    Антиддос скрипты, антиддос команды и т. д.
     
  4. 3lancer

    3lancer New Member

    Joined:
    18 Jan 2011
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Спасибо за ссылку, я, если честно, совсем в другом разделе искал )

    =====
    выбрал пока этот класс:
    http://forum.antichat.ru/showpost.php?p=1725619&postcount=4

    завтра буду тетсировать, ddos ведь уже 2 недели ежедневно проходит (
     
    #4 3lancer, 25 Jan 2011
    Last edited: 25 Jan 2011
  5. C00LPack

    C00LPack Elder - Старейшина

    Joined:
    7 Oct 2010
    Messages:
    425
    Likes Received:
    72
    Reputations:
    19
    если UDP-Flood то врядли чтото сделаешь, если http то смотря какими запросами долбят.
     
  6. EviJI

    EviJI Banned

    Joined:
    8 Jun 2009
    Messages:
    81
    Likes Received:
    39
    Reputations:
    2
    Как я уже говорил 100% защиты не существует.

    Вот помощь при линуксе (debian/unix) (с)

    Если же на вас совершается ддос атака (или вы предполагаете ее наличие) - нужно все же убедится, что подобная атака действительно имеет место.
    Для начала - мы выведем списки открытых портов на нашем сервере. Сделать это конечно можно банально используя статистику netstat, либо же используя более грамотное правило:

    В итоге, мы получим некий список "активности".
    Из него, нас интересует лишь 4ая колонка (Local Address).
    Выводимые данные будут иметь формать лок_адресс:порт_службы.
    Локальный адрес - чаше всего будет выражен видом * а порт службы - самим названием службы (после - вы можете использовать листинг по нетстату по нему же - netstat -na | grep порт_службы).
    Все как бы отлично. Мы установили все интересующие порты служб.
    Следующим действием для нас будет установление - а есть ли "ддос"(хотя лучше делать его 1м шагом). Итак, выводим общее количество подключений на наш сервер:

    Таким образом - мы получим общее количество подключений к нашему выделенному серверу.
    Я надеюсь, вы выполните эту команду в "нормальное рабочее время сервера", чтобы знать какое количество подключений есть примерно нормальным.
    Если же мы вывели количество подключений к нам, и их ну явно очень много(в 2 раза > нежели обычно хотябы) - мы стали жертвой ddos атаки. Не паникуем, ведь теперь - нам нужно определить, какой из портов подвергается зловредному трафику.
    Чаще всего, школота орудуя "скачанным DDOS-софтом(аля DcDDOS и другие)" немного убогая в своем мозге и ставит атаку - "в лоб" (долбежка в 1 порт). Следовательно, мы идем в поисках того самого "атакуемого" порта. Выше - мы вывели цепочку открытых портов, следовательно - установить атакуемый для нас не составит труда.
    Попутно, можно выполнить top и узнать pid самого груженного процесса, а после - отлистить его с помощью:

    можете сразу с grep по ид-у процесса, как возбуждает.
    В результате - мы установили атакуемый процесс, а так же занимаемый им порт.
    ----------------------------------------------------------------------------------------------------------

    Если же на вас навалилась бот-сеточка и работа вашего сервиса приостановлена - нужно искать решение блокировки атаки, так как в ручную это доволи долгий и скудный процесс.
    Как решение и более грамотную замену connlimit я предлагаю использовать одноименный мод из той же области - hash-limit. Вся разница будет заключаться в том - что для тех, кто превысит количество заданных нами подключений будет выдан полный блок на указанное нами время, в отличии от чего конлимит лишь сбросит подключения, которые нам не нравятся.
    Итак, идем к нашей консоли и переписываем заданное ACCEPT правило на атакуемый порт на:

    Полное описание вы с уловкой сможете нагуглить, я же остановлюсь на главном.
    В данном случае мы создадим цепочку правил, которая будет работать по следующей схеме.
    Все новые подключения, создаваемые одним ip адрессом, будут записаны а после - обработаны. Если количество попыток создания подключения за 1 час привысит 50 данный злободей получит блок на 60000мс.(1минуту). При повторной попытке подключения от заблокированного ип-адресса счетчик будет сброшен и он снова получит 1 минуту бана. Таким образом - каждый ацкий бот, атакующий ваш порт созданием новых подключений - пойдет курить, блокируя сам себя. Для само-утверждения вы можете использовать ограничения не только почасовые, а и минутные/секундные (--hashlimit 1/m , 1/s и т д ).

    Всю статистику работы хеш-лимитов вы сможете узнать ровно в 3 клика:

    где GS - имя созданного лимитирования (--hashlimit-name).
    После того, как убедитесь что ботеры отлочены и нагоняют сами себя - вы смело можете подключать любимый процесс(сервер, веб и т д) работать дальше.
    П.с. - не забудьте сказать ддосерам "Ку"
     
  7. 3lancer

    3lancer New Member

    Joined:
    18 Jan 2011
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    EviJI, спасибо, отличный мануал!
     
  8. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    394
    Likes Received:
    213
    Reputations:
    4
    поставь кеширующий nginx и выдавай Not Modified на все повторные запросы и будет тебе счастье
     
  9. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    модифицируй скрипты: если ддосят гет и пост запросами, создавай сессию и переменную счетчик. инкременть переменную при каждом заходе на страницу с сесси:
    PHP:
    session_start();
    if(
    $_SESSION["counter"]<10)
    {
    $_SESSION["counter"]++;
    include 
    "stranica.php";//страница сайта
    exit;
    }
    else
    {
    Echo 
    "вы достигли максимальног кол-ва коннектов!";
    exit;
    }
    если просто syn-флудом - поставь ограничение на число коннектов, и отказывай в коннекте после 5-10 попыток

    если UDP флудом: проверяй длину пакета и также посылай лесом при посылке некорректных данных.
    если медленно посылают http-пакеты - ставь таймаут на коннект
     
  10. C00LPack

    C00LPack Elder - Старейшина

    Joined:
    7 Oct 2010
    Messages:
    425
    Likes Received:
    72
    Reputations:
    19
    господа, с хорошим ботнетом никакие защиты непомогут. сайт с базовым анти-ддосом с 3к ботов оптимы клался менее чем за минуту.