Добро пожаловать на ExpHack.ucoz.org
Make-amxserv.ru
1
Наши сервера ExpHack
















[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Mo_One  
Anti-DDoS: Конфигурирование LightHTTPD
: Добавлено: 10.02.2011
Автор: Exp | Просмотрело: | Прокомментировало:
В этой теме я хотел бы рассказать о том, как сконфигурировать сервер Lighthttpd для оптимальной производительности.
Уже из самого названия продукта видно, что этот сервер "лёгкий" - он заточен под максимальную скорость работы.
А знание конфигурации позволит оптимально настроить сервер под Ваши нужды и нагрузки.

Далее я напишу о директивах конфигурации сервера, которые прямым образом влияют на производительность.

Сужаем канал

Директива connection.kbytes-per-second позволяет ограничить скорость соединения с сервером. Это позволит дольше использовать ресурсы канала во время DDoS-атаки.
Следующий код ограничит скорость до 1 мбит/с:

Code
connection.kbytes-per-second = 1024

По умолчанию директива равна 0, т.е. ограничения отсутствуют.
Кроме того, можно ограничить скорость соединения для определённого хоста (к примеру, если идёт http-ddos на один из сайтов на сервере):

Code
   $HTTP["host"] == "victim.com" {
       server.kbytes-per-second = 32
     }

Помимо этого, существует плагин [URL="http://redmine.lighttpd.net/attachments/697/mod_speed.c"]mod_speed.c[/URL], который позволяет регулировать скорость прямо в скриптах. Пример на php:

[PHP]<?php
header("X-LIGHTTPD-KBytes-per-second: 50");
echo('Content with speed, limited to 50 kbit/s');
?>[/PHP]

Ограничиваем запросы

Для того, чтобы сессии соединения сбрасывались как можно быстрее и количество запросов в эту сессию было как можно меньше, надо регулировать keep-alive директивы. Вот значения по умолчанию:

Code
  server.max-keep-alive-requests = 16
   server.max-keep-alive-idle = 5
   server.max-read-idle = 60
   server.max-write-idle = 360

Вы можете уменьшать их с увеличением нагрузки (например, во время DDoS-атаки), вплоть до обнуления. Первые две директивы - это соответственно максимальное количество запросов во время сессии и длительность сессии (в секундах)

Регулируем дескрипторы

Для каждой открытой, скажем, php страницы на сайте создаётся файловый дескриптор.
Если идёт атака, то файловых дескрипторов создаётся очень много, и если их количество превысит установленый лимит, сервер перестанет отвечать на запросы.
Поэтому при больших нагрузках рекомендуется увеличивать значение директивы server.max-fds. По умолчанию оно равно 1024.
Данная директива работает лишь в случае, когда lighthppd запущен под root.

Code
server.max-fds = 4096

Количество соединений

Директива server.max-connections служит для определения максимального количества соединений сервера.
По умолчанию она равна 1024, как и server.max-fds, но рекомендуется устанавливать для неё значение, равное 1/2 или 1/3 от значения server.max-fds, поскольку не все файловые дескрипторы отвечают соединениям - многие используются для fastcgi или файлов.

Баним IP-адреса

Если атака ведётся с какого-то диапазона IP-адресов или с нескольких IP-адресов, логично забанить эти адреса. Для этого воспользуемся условной конструкцией, глобальными переменными и регулярным выражением:

Code
  $HTTP["host"] == "victim.com" {
     $HTTP["remoteip"] = "^(123\.123\.123\.[0-255])$" {
      url.access-deny = ( "" )
     }
   }

Ещё ограничиваем трафик

Вот ещё некоторые меры, которые могут помочь для экономии трафика: бан ботов по user-agent и анти-хотлинкинг.
User-Agent банится так:

Code
  $HTTP["useragent"] =~ "libwww-perl" {
     url.access-deny = ( "" )
   }

Это конечно можно сделать и в robots.txt, но ведь бот может и не проверять этот файл, так что на уровне сервера это надёжнее.
Хотлинкинг же запрещается следующим образом:

Code
  $HTTP["referer"] !~ "^($|http://vitim\.com)" {
     url.access-deny = (".bmp", ".jpg", ".jpeg", ".png",".ico" )
   }

Таким образом, мы запретили выкладывать на других хостах картинки с нашего сервера. Это бывает весьма полезно, когда картинок много и их постоянно воруют. Того же эффекта можно достичь при помощи .htaccess. Кстати бывали и прецеденты, когда DDoS-атака проводилась с помощью очень частого показа картинок с сервера (канал забивался).

©antichat

Далее
  • Страница 1 из 1
  • 1
Поиск:
2
Навигация