ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Администрирование > AntiDDos - АнтиДДОС
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Anti-DDoS: Конфигурирование LightHTTPD
  #1  
Старый 01.12.2009, 18:12
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию Anti-DDoS: Конфигурирование LightHTTPD

Anti-DDoS: Конфигурирование LightHTTPD

В этой теме я хотел бы рассказать о том, как сконфигурировать сервер Lighthttpd для оптимальной производительности.
Уже из самого названия продукта видно, что этот сервер "лёгкий" - он заточен под максимальную скорость работы.
А знание конфигурации позволит оптимально настроить сервер под Ваши нужды и нагрузки.

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

Сужаем канал

Директива connection.kbytes-per-second позволяет ограничить скорость соединения с сервером. Это позволит дольше использовать ресурсы канала во время DDoS-атаки.
Следующий код ограничит скорость до 1 мбит/с:
Код:
connection.kbytes-per-second = 1024
По умолчанию директива равна 0, т.е. ограничения отсутствуют.
Кроме того, можно ограничить скорость соединения для определённого хоста (к примеру, если идёт http-ddos на один из сайтов на сервере):
Код:
    $HTTP["host"] == "victim.com" {
      server.kbytes-per-second = 32
    }
Помимо этого, существует плагин mod_speed.c, который позволяет регулировать скорость прямо в скриптах. Пример на php:
PHP код:
 <?php
 header
("X-LIGHTTPD-KBytes-per-second: 50");
 echo(
'Content with speed, limited to 50 kbit/s');
 
?>
Ограничиваем запросы

Для того, чтобы сессии соединения сбрасывались как можно быстрее и количество запросов в эту сессию было как можно меньше, надо регулировать keep-alive директивы. Вот значения по умолчанию:
Код:
  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.
Код:
server.max-fds = 4096
Количество соединений

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


Всё

Больше информации можно найти на lighttpd.net.
Удачи в Анти-ДДоСе!

(c) BECHED aka Root-access, 2009,http://ahacc.ru/forum/showthread.php?t=35#
 
Ответить с цитированием

  #2  
Старый 02.12.2009, 19:50
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Добавлю ещё пару фраз.

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

Если атака ведётся с какого-то диапазона IP-адресов или с нескольких IP-адресов, логично забанить эти адреса. Для этого воспользуемся условной конструкцией, глобальными переменными и регулярным выражением:
Код:
  $HTTP["host"] == "victim.com" {
    $HTTP["remoteip"] = "^(123\.123\.123\.[0-255])$" {
     url.access-deny = ( "" )
    }
  }
Ещё ограничиваем трафик

Вот ещё некоторые меры, которые могут помочь для экономии трафика: бан ботов по user-agent и анти-хотлинкинг.
User-Agent банится так:
Код:
  $HTTP["useragent"] =~ "libwww-perl" {
    url.access-deny = ( "" )
  }
Это конечно можно сделать и в robots.txt, но ведь бот может и не проверять этот файл, так что на уровне сервера это надёжнее.
Хотлинкинг же запрещается следующим образом:
Код:
  $HTTP["referer"] !~ "^($|http://vitim\.com)" {
    url.access-deny = (".bmp", ".jpg", ".jpeg", ".png",".ico" )
  }
Таким образом, мы запретили выкладывать на других хостах картинки с нашего сервера. Это бывает весьма полезно, когда картинок много и их постоянно воруют. Того же эффекта можно достичь при помощи .htaccess. Кстати бывали и прецеденты, когда DDoS-атака проводилась с помощью очень частого показа картинок с сервера (канал забивался).
 
Ответить с цитированием

  #3  
Старый 03.12.2009, 00:55
Аватар для Xcontrol212
Xcontrol212
Постоянный
Регистрация: 13.02.2008
Сообщений: 505
Провел на форуме:
2916750

Репутация: 277


Отправить сообщение для Xcontrol212 с помощью ICQ
По умолчанию

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

А если например идет DNS!(в Black Energy Ddos bot-самый распространенный ддос-бот в паблике есть возможность атаки на DNS сервера)
Что можно применить?
 
Ответить с цитированием

  #4  
Старый 03.12.2009, 13:22
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Цитата:
Сообщение от Xcontrol212  
Такое при ддосе встречается очень-очень редко,обычно когда идет прогрузка ехе определенного DDOS-бота,то чаще всего идут от разных айпи!

А если например идет DNS!(в Black Energy Ddos bot-самый распространенный ддос-бот в паблике есть возможность атаки на DNS сервера)
Что можно применить?

Конечно не часто, но всё бывает, особенно, если сервак слабый, и его можно уложить даже несколькими ботами с хорошим каналом.

Насчёт DNS - собственно, это уже другая история.
Приведённые в данной теме меры помогут против самого распространённого вида атак - http-ddos'а.

Стоит почитать про fail2ban - этот пакет помогает при разных видах атак, в том числе и DNS DDoS'е, кроме того, предотвращает брутфорс, в общем очень полезная штука.
 
Ответить с цитированием

  #5  
Старый 31.12.2009, 00:12
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Ещё добавление

Распределяем нагрузки

LightHTTPD позволяет производить LoadBalancing (то есть, распределение нагрузки) между разными fastcgi-серверами.
К примеру, у Вас есть сайт, написанный на PHP, и Вы хотите разгрузить его.
Есть фронтэнд с LightHTTPD и 2 бэкэнда с FastCGI на 1000 порту. IP-адрес первого бэкнда - 192.168.1.10, а второго - 192.168.1.11.
Пишем в lighttpd.conf:

Код:
fastcgi.server = ( ".php" => 
  (
    ( "host" => "192.168.1.10",
      "port" => 1000
    ),
    ( "host" => "192.168.1.11",
      "port" => 1000 
    )
   )
  )
Как это работает? Когда появляется новое подключение, то есть пользователь запрашивает php-страницу, LightHTTPD просматривает список fastcgi-серверов, который заранее отсортирован по количеству подключений, и выбирает тот, у которого нагрузка меньше всего. Новое подключение идёт к этому серверу.
После чего, список снова отсортировывается.

Таким образом, можно значительно снизить нагрузку на основной сервер.
 
Ответить с цитированием

  #6  
Старый 05.01.2010, 18:05
Аватар для ValeriyZ
ValeriyZ
Новичок
Регистрация: 05.01.2010
Сообщений: 3
Провел на форуме:
1197

Репутация: 0
По умолчанию

Использую LightHTTPD для flv streaming. Ограничую отдачу по подключению, тоесть - connection.kbytes-per-second = 128. Сейчас в связи с переходом на mp4 появилась необходимость в начале подключения выдавать 2 Мбита а через 5 секунд обратно возвращать на 1 Мб.
Можно ли это сделать с помощью Light?
 
Ответить с цитированием

  #7  
Старый 05.01.2010, 20:44
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Цитата:
Сообщение от ValeriyZ  
Использую LightHTTPD для flv streaming. Ограничую отдачу по подключению, тоесть - connection.kbytes-per-second = 128. Сейчас в связи с переходом на mp4 появилась необходимость в начале подключения выдавать 2 Мбита а через 5 секунд обратно возвращать на 1 Мб.
Можно ли это сделать с помощью Light?

Средствами конфигурации LightHTTPD динамически менять эту конфигурацию нельзя...
Возможно Вы найдёте решение в http-заголовках.
Но тогда придется обновлять страницу, т.е. сначала отправляется:
PHP код:
 <?php
 header
("X-LIGHTTPD-KBytes-per-second: 2048");
 
?>
А затем (по прошествии 5 секунд):
PHP код:
 <?php
 header
("X-LIGHTTPD-KBytes-per-second: 1024");
 
?>
Можно ли так решить конкретно Ваш вопрос, я с ходу сказать не могу...
 
Ответить с цитированием

  #8  
Старый 05.01.2010, 21:56
Аватар для ValeriyZ
ValeriyZ
Новичок
Регистрация: 05.01.2010
Сообщений: 3
Провел на форуме:
1197

Репутация: 0
По умолчанию

Не. При стриминге (точнее перемотка видео ролика) страничка не обновляется а просто с флешплеера посылается запрос на Лайти с той секундой откуда нужно стартовать видеоролику. ОТ тут то и нужно чтоб при старте он выдал несколько Мбит а потом уже можно и 1 Мбит.
Я просто когда-то где-то встречал про «connection.burst» для Light. Но не разобрался потому что надобности тогда не было и инфу не сохранил. Да и не помню может это дополнительный модуль.
Но всерано спасибо за ответ.


Можно ли так решить конкретно Ваш вопрос, я с ходу сказать не могу...[/QUOTE]
 
Ответить с цитированием

  #9  
Старый 05.01.2010, 22:27
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Цитата:
Сообщение от ValeriyZ  
Не. При стриминге (точнее перемотка видео ролика) страничка не обновляется а просто с флешплеера посылается запрос на Лайти с той секундой откуда нужно стартовать видеоролику. ОТ тут то и нужно чтоб при старте он выдал несколько Мбит а потом уже можно и 1 Мбит.
Я просто когда-то где-то встречал про «connection.burst» для Light. Но не разобрался потому что надобности тогда не было и инфу не сохранил. Да и не помню может это дополнительный модуль.
Но всерано спасибо за ответ.


Можно ли так решить конкретно Ваш вопрос, я с ходу сказать не могу...
[/QUOTE]


А, ну так вот же этот патч: http://www.debian.co.il/2009/09/lighttpd-burst-aka-faststart-patch/
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статьи АнтиДДОС Fata1ex AntiDDos - АнтиДДОС 11 15.02.2010 22:29



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ