Глянул в ссылку. Не проще ли ВЕСЬ контент в статику прокинуть, и не
париться? А для скриптов обработки форм - реферера проверять, если
прижмет. У вас динамические страницы, по большому счету, отсутствуют.
IMHO, 99% того, что называется словом DDoS - последствия
раздолбайства. С той же вероятностью нетюненый сайт могут просадить
поисковые боты. Yahoo такое уже устраивал.
Vitaly Puzrin
http://www.rcdesign.ru
суббота, 3 ноября 2007 г., you wrote:
В> Здравствуйте, 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 и все вновь получилось.
В>
>> Можно поподробнее?