On 25.10.2011 08:27, Aleksandr Sytar wrote:
>> 24 октября 2011 г. 23:23 пользователь Дмитрий Савельев
>> <[email protected]> написал:
>>   
>>> Добрый вечер,
>>>
>>> Помогите пожалуйста начинающему линукс-одмину!
>>> Приобрел 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 [email protected]
> 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 вам помогает?
>> - Вы уверены что машина справится с такой загрузкой? Мб, стоит
>> посмотреть, что может предложить хостер из железных решений.
>>   

Ответить