Ddos. Защищаемся от мелких ботнетов. | Выделенный сервер своими руками

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

Метод хорош, но не для

Метод хорош, но не для коммерческих сайтов, т.е. на которые нужно пускать боты Гугла и Яндекса, он не годится, потому что будут блокироваться их посещения.
Был бы в этом методе "белый список" - другое дело, но его нет.

Если я правильно понял то

Если я правильно понял то "белый список" как раз есть, по моему он лежит тут: /usr/local/ddos/ignore.ip.list

Можно заменить на это (у кого

Можно заменить на это (у кого первые 2 варианта не заработали):
netstat -an | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -c | sort -nr > $BAD_IP_LIST

Советую посмотреть в сторону

Советую посмотреть в сторону fail2ban.. очень гибко настраиваемая утилита для защиты.. блокирует ип, после определенного количества попыток взлома той или иной службы.. (asterisk, postfix, ssh, vsftpd, proftpd и еще несколько)..

От ddos не спасет, но особо

От ddos не спасет, но особо наглых спам-ботов можно резать.

5650 with 5650 connections

Banned the following ip addresses on Tue Sep 14 16:48:01 AZST 2010

5650 with 5650 connections

cto za 5650

vot pokazateli

[root@meydan ddos]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 109.127.12.16
1 109.127.16.68
1 109.127.23.164
1 109.127.25.221
1 109.237.124.227
1 127.0.0.1
1 213.154.20.210
1 213.172.87.119
1 217.64.23.234
1 217.64.28.95
1 80.69.59.134
1 80.69.61.134
1 81.17.80.252
1 81.17.82.46
1 91.135.253.16
1 91.191.196.49
1 93.184.226.252
1 93.88.94.161
1 94.20.51.89
1 94.20.67.214
1 94.20.78.113
1 94.20.79.100
1 Address
1 servers)
2 213.154.26.90
2 217.118.64.62
2 91.135.253.4
2 93.184.233.31
2 93.88.90.102
4 213.154.17.192
5 213.154.24.6
6 217.64.27.79
6 94.20.59.52
8 81.17.82.126
8 93.184.224.218
8 94.20.58.81
12 109.127.21.92
12 62.217.148.68
5142

a cto znachit 5142

Средство, конечно, хорошее..

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

Глупости. Даже название темы

Глупости. Даже название темы "Ddos. Защищаемся от мелких ботнетов." А 10-20 тыс это уже не мелкий

У меня в логах крона вот

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

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

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

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

а мне приходят письма типа:

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

381 with 381 connections

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

netstat -ntu | grep ffff |

netstat -ntu | grep ffff | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -nr

ооо :))) спасибо большое за

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

Прикольно, я даже не знал,

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

Полезная информация, будем

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

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

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

уже начал защищаться и готов

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

Подскажите где найти

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

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

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

будем, будем, спасибо за

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

если получится будем

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

Класный сайт:)

Класный сайт:)