Здравствуйте, 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