Ddos. Защищаемся от мелких ботнетов.

В одной из моих заметок, я перечислял некоторые методы защиты от DDos. В этой заметке опишу минимальную настройку сервера, для защиты от мелких ботнетов.Первое что нам необходимо, это установленый и настроеный APF. Тут я уже описывал установку и настройку APF. Для выявления ботов будем использовать пакет (D)DoS-Deflate. Механизм его работы очень прост. Скрипт через определенные интервалы времени выполняет следующий код:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

В результате работы скрипта вычисляется количесвто соединений к серверу с определенного IP адреса. Если количество соединений превышает допустимые в конфигурационном файле пределы, то ip адрес источника запросов передается в APF и там заносится в черный список на определенное время. То есть IP адрес банится, запросы с него перестают поступать.
Итак, устанавливаем и настраиваем DoS-Deflate.

cd /usr/local/src
wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0700 install.sh
./install.sh

Пакет устанваливается в каталог /usr/local/ddos. Открываем для редактирования конфигурационный файл ddos.conf

vi /usr/local/ddos/ddos.conf

Конфиг хорошо прокоментирован. Остановлюсь на одном параметре:
NO_OF_CONNECTIONS=150
Количество одновременных соединений. Тут нужно экспериментировать. Все зависит от вашего хостинга. Возможно есть такие сайты, которые совершенно нормально требуют 150 одновременных соединений с сервером. Лично я считаю что этот параметр необходимо уменьшить как минимум до 50.

Также было обнаружено, что на некоторых дистрибутивах Linux скрипт работает не так как нужно. Решение – замена в файле /usr/local/ddos/ddos.sh строки


netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

на строку:
netstat -ntu | grep ffff | awk ‘{print $5}’ | cut -d: -f4 | sort | uniq -c | sort -nr

Поправляем (по необходимости) конфиг и ждем нападения :-)
Хочу пожелать только, поменьше атак на ваши хосты ))

Рейтинг@Mail.ru

13 Comments


  1. если получится будем защищатся)))

    Quote | Posted October 27, 2008, 7:04 pm

  2. будем, будем, спасибо за статью

    Quote | Posted November 9, 2008, 7:24 pm

  3. совет принят, огромное спс)))

    Quote | Posted November 10, 2008, 12:08 pm

  4. Подскажите где найти информацию по настройке apf

    Quote | Posted November 29, 2008, 4:46 pm

  5. уже начал защищаться и готов к атаке :)

    Quote | Posted December 16, 2008, 12:26 am

  6. С Новым 2009 годом!

    Quote | Posted January 3, 2009, 12:03 am

  7. Полезная информация, будем пробовать. у меня с атаками слава богу ниче серьезного пока небыло, но теперь думаю и небудет )))

    Quote | Posted January 24, 2009, 7:50 pm

  8. Прикольно, я даже не знал, что таким образом можно защищаться от атак. Ну что же, спасибо за хорошую информацию, будем готовиться отражать нападения : ). Да и просто, получается, так что сейчас попробуем сделать согласно вашим советам : )

    Quote | Posted February 11, 2009, 11:38 am

  9. ооо :) )) спасибо большое за инструкции по настройке. будем пробовать защищаться :)

    Quote | Posted February 17, 2009, 11:42 am

  10. а мне приходят письма типа:
    Banned the following ip addresses on Sun Feb 22 18:31:01 MSK 2009

    381 with 381 connections

    т.е. вместо первого 381 должен стоять ip а его нету, как это исправить?

    Quote | Posted February 22, 2009, 6:37 pm

  11. Хех, +1 готовый к атаке :)

    Quote | Posted March 18, 2009, 2:06 am

  12. У меня в логах крона вот такая строчка каждую минуту:
    (/usr/local/ddos/ddos.sh >/dev/null 2>&1)

    это нормально?

    Quote | Posted September 22, 2009, 8:27 pm

  13. Средство, конечно, хорошее.. :)
    НО, как всегда есть но…
    1. DDoS атака будет иметь с 1 ИП всего 10-20 конектов, зато таких ИП будет 10-20 тыс.!! Потому-то она и ДДоС – распределённая.
    2. А не проще ли средствами системы это сделать?… и нагрузки меньше и проще… :)
    например, для ipfw:
    add pass all from any to me 80 limit src-addr 50
    ну, или 150 – кому как нравится.. :)

    Quote | Posted November 17, 2009, 9:49 pm

Leave a reply