Регистрация

Скрипт защиты от ДДОС атаки

TipTop 10-11-2009, 15:02 8398 Скрипты

Скрипт защиты от ДДОС атаки


Скрипт Klavasoft AntiDDOS

Скрипт Klavasoft AntiDDOS используется для защиты сайта от DDOS атаки по линии HTTP. Разумеется, скрипт не претендует на звание универсального и полного защитника от DDOS - для этих целей лучше использовать оборудование, стоимость которого измеряется десятками тысяч долларов. Если у вас нет такого оборудавания, но есть доступ к настройкам сервера, то вы также сможете обеспечить более эффективную защиту от DDOS, чем та, что предоставляет наш скрипт. А вот защитить виртуальны аккаунт от легонького любительского DDOSa этот скрипт вполне сможет, а такие ДДОС атаки встречаются наиболее часто ввиду дороговизны полномасштабных мероприятий.


Немного о реализации защиты от ДДОС

Скрипт хранит в разделяемой памяти списки времен заходов с каждого IPa за последнее время. Если количество заходов в таком списке превысит определенный уровень, посетителю выдается техническая страница, которая информирует его о загруженности сервера и автоматически повторяет запрос страницы через некоторое время.
Вот пример такой страницы:

<html>
<meta http-equiv='refresh' content='20'>
<body>
<h2>Our server is currently overloaded, your request will be repeated automatically in 20 seconds</h2>



Настройка

Все упомянутые параметры поддаются настройке. Вот развернутый вариант ее:

<? // пример использования скрипта Klavasoft AntiDDOS 

include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php";
$ksa = new ks_antiddos();

// скрипт анализирует активность текущего ИПа за последние $seconds_limit секунд
$seconds_limit = 20;
// считая заходы свыше $hit_limit - подлежащими блокированию
$hits_limit = 10;

// скрипт определяет статус посетителя ($ks-?>visitor) как:
// raw  - посетитель бы по каким-либо причинам не обработан скриптом
// new  - это первый заход посетителя за последние $seconds_limit секунд
// cool - количество заходов посетителя - от 2 до $ksa->warm_level
// hot  - количество заходов больше чем hits_limit и посетитель должен быть заблокирован (приостановлен)

// опционально можно сделать настройки
$ksa->auto = false;  // не проводить блокирования hot-посетителей скриптом (вы предполагаете сами это сделать)
$ksa->warm_level = 3;    // значение warm_level по умолчанию - $hits_limit/2
$ksa->delay = 10;        // предлагать 'hot' посетителю вернуться через $ksa->delay секунд
// значение по умолчанию - 20


// определяем статус посетителя
$ksa->doit($seconds_limit,$hits_limit);
// если вы не сбросили значение поля $ksa->auto и статус посетителя $ksa->visitor=='hot'
// то скрипт отправит браузеру headers and HTML которые организуют задержку перед повторным запросом.

// если $ksa->auto == false, то проверяем надо ли банить посетителя  
if ($ksa->visitor=='hot')  
{
header('HTTP/1.0 503 Service Unavailable');
header('Status: 503 Service Unavailable');
header('Retry-After: 30');
die('sleep');
}

$lite_version = $ksa->visitor=='warm';   // по этой переменной можно отдавать "теплым" посетителям
// облегченную версию сайта

?>


А если вкратце, то достаточно вставить в хэдер сайта такой код:

include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php"; 
$ksa = new ks_antiddos();
$ksa->doit(20,10);


Технические требования


Хотя судя по мануалу, функции работы с разделяемой памятью доступны во всех версиях PHP, случаются хостинги без средств межпроцессного взаимодействия. Чтобы выяснить, будет ли скрипт работать на вашем хостинге, вызовите функцию
shm_attach(); 


и если вы не получите
Fatal error: Call to undefined function: shm_attach() in... 


то пациент жить будет.

Для просмотра и удаления списка фрагментов разделяемой памяти требуется доступ к командной строке. Заметим, что что эта функция не критически важна - скрипт отлично работает без просмотра админом данных о разделяемой памяти. Более того, если доступа к командной строке нет - скрипт все равно способен удалить область расширенной памяти. (Которая, вобщем-то и так сканчается при ближайшей перезагрузке)

Для доступа к разделяемой памяти не используются семафоры, поскольку зависание семафора способно заблокировать весь трафик. Время выполнения скрипта - пол миллисекунды и вероятность накладки ничтожна. И, конечно, в таких случаях скрипт нормально восстанавливается.

Файлы

KS Antiddos ver 2.1 (zip):
Внимание! У вас нет прав для просмотра скрытого текста.


KS Antiddos ver 3.0 (zip):
Внимание! У вас нет прав для просмотра скрытого текста.


Источник:_http://klavasoft.com

Другие публикации по категории:

Скрипт Видеочата под любой движок сайта

PHP Скрипт для установок модулей и хаков для DLE

Java скрипт "Шаблон новости" для DLE

Доска объявлений JBoard Ver.2.0 Коммерческая версия

Jobs Hunt v1.3 - Адаптивный поиск работы PHP скрипт


Комментарии (2)

avatar
#1 lika004
кто нибудь пробывал ?
avatar
#2 Пользователь offline TipTop
Цитата: lika004
кто нибудь пробывал ?


Это все равно что вас бьют по голове палкой и больно а тут на голове каска одета и все равно больно но неочень bully
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Сайт предназначен для выбора шаблонов и дополнений с использованием CMS DataLife Engine.
Закрыть