ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

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

Re[2]: Как была решена проблема DDOs сегодня ночью.



Здравствуйте, Stas.

Вы писали 3 ноября 2007 г., 12:05:10:

Отвечу сразу-же всем.

Стояла связка apache 2.* и php как cgi. К ДДосу готовы не были.

Начиная с пятницы, на сайт велась атака. Под атакой процессор умерал и
машинка уходила в аут на 10-20 минут. Заглянув в логи апача я узнал,
что атака ведется на адрес типа http://www.domain.ru/.

Было решено поставить на apache mod_secure и должным образом его
настроить. Этим действием мы снизили Load Averege до 25-30, но машинка
все равно через 10-15 минут уходила в аут, хоть и чуть дольше держалась.

Потом, было принято решение потюнить ядро и поставить nginx + php.
После этого, я сделал небольшой скриптик который смотрел на кол-во
запросов с IP и если они превышали определенный порог (200 запросов) - добавлял 
их в
ipfw. Каждую минуту банилось от 1 до 7 IP адресов. Загрузка снизилась
стабильно до 18-20 и машинка уже сдерживала атаку, а не умерала.

Гениальное решение пришло на 4-ый час борьбы с ДДос. Сохранить главную
страницу в HTML и подложить HTML на сервер, чтобы боты брали ее.
Сказано - сделано. Идея трансформировалась в переименование
индексного файла в indexx.php и файла index.html который содержал.

        <script type="text/javascript">
        //<![CDATA[
                document.location.href="http://www.domain.ru/indexx.php";
        //]]>
        </script>

и Ура! Я убрал все баны, отключил скрипт и процесс Nginx загружал
процессор всего на 3-4% отдавая только эту страницу. Load averege
стабилизировался на отметке 0.2 - 0.4. Атака была побеждена.

p.s. Но чуть позже, атака началась на файл index2.php (которого на
сервере нету), и естественно боты попадали на обработчик 404 ошибки
(404.php) и машинка естественно умерла. Поэтому, я заменил error
page 404 на index.html и все вновь получилось.
        
> Можно поподробнее?
-- 
С уважением,
 Влад                          mailto:vk@xxxxxxxxxx




 




Copyright © Lexa Software, 1996-2009.