VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Скрипт Klavasoft AntiDDOS используется для защиты сайта от DDOS атаки по линии HTTP. Разумеется, скрипт не претендует на звание универсального и полного защитника от DDOS - для этих целей лучше использовать оборудование, стоимость которого измеряется десятками тысяч долларов. Если у вас нет такого оборудавания, но есть доступ к настройкам сервера, то вы также сможете обеспечить более эффективную защиту от DDOS, чем та, что предоставляет наш скрипт. А вот защитить виртуальны аккаунт от легонького любительского DDOSa этот скрипт вполне сможет, а такие ДДОС атаки встречаются наиболее часто ввиду дороговизны полномасштабных мероприятий.
Скрипт хранит в разделяемой памяти списки времен заходов с каждого IPa за последнее время. Если количество заходов в таком списке превысит определенный уровень, посетителю выдается техническая страница, которая информирует его о загруженности сервера и автоматически повторяет запрос страницы через некоторое время.
Вот пример такой страницы:
PHP Code:
<html>
<meta http-equiv='refresh' content='20'>
<body>
<h2>Our server is currently overloaded, your request will be repeated automatically in 20 seconds</h2>
В 3-й версии скрипта реализована блокировка всей сети класса C, что многократно повышает эффективность скрипта, так как часто бывает инфицированна вся сетка компьютеров, осуществляющих DDOS. Такой режим включен по умолчанию, и отменить его можно установкой поля block_cnet объекта в false.
Настройка
Все упомянутые параметры поддаются настройке. Вот развернутый вариант ее:
PHP Code:
<? // пример использования скрипта 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'; // по этой переменной можно отдавать "теплым" посетителям
// облегченную версию сайта
?>
А если вкратце, то достаточно вставить в хэдер сайта такой код(Нам для этого нужен хак Let Live PHP в аттаче):
PHP Code:
<?
include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
?>
в предположении, что скрипт располагается в корневой папке вашего сайта.
Где doit(20,10); | 20 - время в секундах, а 10 - количество разрешенных перезагрузок.
Технические требования
Хотя судя по мануалу, функции работы с разделяемой памятью доступны во всех версиях PHP, случаются хостинги без средств межпроцессного взаимодействия. Чтобы выяснить, будет ли скрипт работать на вашем хостинге, вызовите функцию
сом.
PHP Code:
shm_attach()
и если вы не получите
PHP Code:
Fatal error: Call to undefined function: shm_attach() in...
то пациент жить будет.
Для просмотра и удаления списка фрагментов разделяемой памяти требуется доступ к командной строке. Заметим, что что эта функция не критически важна - скрипт отлично работает без просмотра админом данных о разделяемой памяти. Более того, если доступа к командной строке нет - скрипт все равно способен удалить область расширенной памяти. (Которая, вобщем-то и так сканчается при ближайшей перезагрузке)
Для доступа к разделяемой памяти не используются семафоры, поскольку зависание семафора способно заблокировать весь трафик. Время выполнения скрипта - пол миллисекунды и вероятность накладки ничтожна. И, конечно, в таких случаях скрипт нормально восстанавливается.
При вызове скрипт непосредственно в браузере - доступна контрольная панель
klavasoft.com
Не работает на винде, тк там нет функций работы с разделяемой памятью
Поставил, удобная штука, советую;) Автору спасибо;)
@zzzru
Знаток
Join Date: Jan 2007
Location: Москва
Posts: 404
Версия vB: 3.8.x
Reputation:
Knowing 168
Репутация в разделе: 135
0
Проверялась работа при реальной атаке?
@Serberg
Специалист
Join Date: Dec 2007
Posts: 486
Версия vB: 1.x.x
Reputation:
Professional 534
Репутация в разделе: 303
0
Блин. Закину в корень форума ks_antiddos.php, импортировал продукт product-letphplive.xml , в самый вер хедера записал:
<?
include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
?>
Реакции 0. Обновлять уже устал, пробовал делать 2 запроса за 20 сек - результат тот же. Версия 3.8.3. У кого нить была подобная ситуация ?
@AlfaDogg
Эксперт
Join Date: Dec 2007
Location: C:\windows\system32\
Награды в конкурсах:
Posts: 1,827
Версия vB: 1.x.x
Пол:
Reputation:
Professional 1022
Репутация в разделе: 402
0
zzzru, нет, но как сказано в первом посте
Quote:
Originally Posted by AlfaDogg
Разумеется, скрипт не претендует на звание универсального и полного защитника от DDOS - для этих целей лучше использовать оборудование, стоимость которого измеряется десятками тысяч долларов. Если у вас нет такого оборудавания, но есть доступ к настройкам сервера, то вы также сможете обеспечить более эффективную защиту от DDOS, чем та, что предоставляет наш скрипт. А вот защитить виртуальны аккаунт от легонького любительского DDOSa этот скрипт вполне сможет, а такие ДДОС атаки встречаются наиболее часто ввиду дороговизны полномасштабных мероприятий.
Так, что это скорей может немного успокоить разгорячившихся юзеров, чем настоящий хороший ддос остановит.
Serberg, хм, а сам форум вкорне или в папке /forum ? нужно именно туда-же куда установлен форум пихать
а и еще, нужно обязательно если форум в другой папке находится например в forum добавить к пути, иначе получим ошибку.
<?
include "$_SERVER[DOCUMENT_ROOT]/forum/ks_antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10);
?>
Last edited by AlfaDogg : 06-17-2009 at 08:41 PM.
@Serberg
Специалист
Join Date: Dec 2007
Posts: 486
Версия vB: 1.x.x
Reputation:
Professional 534
Репутация в разделе: 303
0
AlfaDogg, форум как раз у меня в корне и находится...
@AlfaDogg
Эксперт
Join Date: Dec 2007
Location: C:\windows\system32\
Награды в конкурсах:
Posts: 1,827
Версия vB: 1.x.x
Пол:
Reputation:
Professional 1022
Репутация в разделе: 402
0
Quote:
Originally Posted by AlfaDogg
Технические требования
Хотя судя по мануалу, функции работы с разделяемой памятью доступны во всех версиях PHP, случаются хостинги без средств межпроцессного взаимодействия. Чтобы выяснить, будет ли скрипт работать на вашем хостинге, вызовите функцию
сом.
Возможно твой случай?
@maJic
В Черном списке
Join Date: Mar 2008
Posts: 1,317
Версия vB: 3.8.4
Reputation:
Professional 475
Репутация в разделе: 370
0
http://snakearena.net, попробуй обнови много-много раз, и увидишь в дествий Но толку от него...
maJic добавил 18.06.2009 в 22:01
Alfa, только ставить let php live не вижу смысла, можно сделать проще. Создать модуль, местоположение global_start, так-как нам нужно выполнение на всех страницах, и в содержимом модуля
PHP Code:
ob_start(); include "$_SERVER[DOCUMENT_ROOT]/ks_antiddos.php"; $ksa = new ks_antiddos(); $ksa->doit(20,10); $ddos = ob_get_contents(); ob_end_clean();
переменную $ddos вставить в header
Last edited by maJic : 06-18-2009 at 11:01 PM.
Reason: Добавлено сообщение
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 255
1
Это не остановит даже простой DDoS. Надо настраивать другими средствами.
От этого продукта больше вреда чем пользы, только из-за того что пользователь будет думать что он защищен.
Любой антиддос должен отрабатываться до PHP, а то что предложено здесь в некоторых случаях, не связанных с DDoS-ом, только увеличит нагрузку: к примеру если я захочу открыть много страниц в разных вкладках, сначала сообщение об ошибке потом рефреш (сообщение об ошибке тоже ресурсы есть будет и не так мало, а если делать через систему хуков булки это еще дополнительные запросы в БД - инициализация совсем не легкий процесс у vB). Даже при среднем ддосе можно положить сервак атакой на PHP-скрипт состоящий из одного exit-а
Last edited by Yoskaldyr : 06-19-2009 at 12:22 AM.