[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: И вот пришла Злая Тётя Ддося



On 25.10.2011 08:27, Aleksandr Sytar wrote:
24 октября 2011 г. 23:23 пользователь Дмитрий Савельев
<dsaveliev@tormail.net> написал:
  
Добрый вечер,

Помогите пожалуйста начинающему линукс-одмину!
Приобрел VDS под Debian Lenny, поднял на нем сайт, и тут ... пришла Злая
Тётя Ддося. Как с ней бороться?!
Какие-то козлы прямо на следующий день стали ужасно ддосить сервер.
Надо сказать, до этого я поднимал свой сайт на другом сервере (тоже под
Debian Lenny), и незадолго до того, как я ушел от них, меня стали
жестоко ддосить.
Тогда вопрос решился добавлением в правила iptables по этим инструкциям
http://www.protocols.ru/files/Papers/iptables-tbf.pdf
http://hlmod.ru/forum/zashita-igrovogo-servera/1178-ddos-zashita-linuxovskogo-servera-cherez-pravila-iptables.html
Т.к. ведро у меня было старное (2.16.18), и не принимало правила
hashlimit, я включил в него такие правила:
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit -j DROP
И проблема сразу решилась.
Теперь мигрировал на новый сервер, поднял сайт, не успел он и дня
проработать - опять началась атака. И опять самое тупейшее
syn-наводнение на 80-й порт.
Поскольку тут ядро поновее, я взял из второй инструкции такое правило:
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 50/s
--hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
Не помогло. Точнее, частично помогло, поскольку часть вражеских пакетов
задерживает. Но не все.
Ввел тогда до кучи еще и старое, думал - не будет работать, однако
заработало. Поставил его перед последним, и что одно, что второе -
задерживают пакеты.
Сначала все было нормально... часа полтора. И вот опять - атака, которая
оказалась успешной. Сервер "повис", пришлось останавливать веб-сервер.
Так как "размножаются" как черти процессы апача - доходит до нескольких
десятков + в системе "висит" куча (неск. десятков) таких процессов:
/usr/bin/php5-cgi php
Я уже думаю, не протроянили ли они меня, помимо ddos. Хотя когда
убиваешь апач и пхп киллом - все убивается и не появляется, пока вновь
не запустишь апач и через некоторое время атака не начнет вешать систему.
Не подскажете что-нибудь умное? Вроде простейшая атака, а prefork MPMне получается
побороть никак.
    
- Настройте апач, чтобы он не плодил бесконечно процесы
  

Настроил, задал директиву  MaxClients  15 в    prefork MPM и 150 в # worker MPM (не так много обычно у меня было легитимных посетителей одновременно). Видимо, сейчас второй тоже уменьшу где-нибудь до 25 чтоли.
Также, руководствуясь этими инсрукциями
http://dd0s.blogspot.com/2008/04/dos-ddos-apache.html, указал апачу следующие конфигурационные данные.
Timeout 30
KeepAlive Off
AcceptFilter http httpready
AcceptFilter https dataready

Кроме того, установил libapache2-mod-evasive и дописал в конфиге апача следующее:
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 120
DOSEmailNotify admin@somedomain.com
DOSSystemCommand "su - root -c '/sbin/iptables -I INPUT 2 -s %s -j DROP'"
DOSWhiteList 127.0.0.*  myipaddr1 myapaddr2n

Не понял, как настраивать директивы LimitRequestBody, LimitRequestFields, LimitRequestFieldSize, LimitRequestLine, LimitXMLRequestBody , какие им давать значения. Поэтому не рискнул делать это методом ненаучного тыка, ибо так можно 10 дней трахаться. Решил попозже погуглить, или может кто умное подскажет в рассылке.
Не совсем понял, работает или нет, по крайней мере правила в iptables не добавляются.
Похоже, что в какой-то степени работают, в /var/log/apache2/error.log такая запись:
  [error] server reached MaxClients setting, consider raising the MaxClients setting
 [notice] caught SIGTERM, shutting down
Только непонятно, в связи с чем он получил SIGTERM?
Электронная почта же не отправляется, сообщения в iptbales не добавляются (а оно вообще может сделать это? апач же бегает под юзером www, а не под рутом? Инструкция была взята http://dd0s.blogspot.com/2008/03/flood-ddos-http-moddosevasive.html отсюда).

Кроме того, прописал правила iptables, дропающие пакеты с ip, участвовавших в атаке, а также  разослал абузы по их провайдерам. На абузы никто не ответил :), эти же правила iptables не работают, т.к. атака продолжается с других хостов. Если в первый день пакеты дропались, то сейчас в выводе iptables -L -v не дропнут ни один пакет.
Сейчас опять пишу логи iptables, но это, имхо, как уничтожать крыс на помойке голыми руками. Вот если бы тот модуль настроить правильно, чтобы он автоматически блокировал хосты засранцев.


- Если ширины канала не хватит чтобы отдать всем ботам траффик - ограничьте его
- Вы уверены, что то что вы написали в iptables вам помогает?
- Вы уверены что машина справится с такой загрузкой? Мб, стоит
посмотреть, что может предложить хостер из железных решений.
  

Reply to: