Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
Поиск
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Web обвязка/Скрипт Защиты Обвязки
Поиск

Скрипт Защиты Обвязки

7 ответов198 просмотровСейчас просматривают: 1
B
BlackFighter

Пользователь

Бывалый

Постов: 483

На форуме с: 27.04.2008

Репутация: +506

Рейтинг: 0

· 04.09.2008, 19:32

Принцип действия я думаю, понятен, вот сам код:

К примеру, создадим каталог anti_ddos и кидаем все скрипты туда:

index.php (модуль обнаружения DDOS атаки):
PHP код:

Код
<?php

$ad_ddos_query=10; // количество запросов в секунду для обнаружения DDOS атаки
$ad_check_file='check.txt'; // файл для записи текущего состояния во время мониторинга
$ad_temp_file='all_ip.txt'; // временный файл
$ad_black_file='black_ip.txt'; // будут заносится ip машин зомби
$ad_white_file='white_ip.txt'; // заносятся ip посетителей
$ad_dir='anti_ddos'; // каталог со скриптами
$ad_num_query=0; // текущее количество запросов в секунду из файла $check_file
$ad_sec_query=0; // секунда из файла $check_file
$ad_end_defense=0; // время окончание защиты из файла $check_file
$ad_sec=date("s"); // текущая секунда
$ad_date=date("mdHis"); // текущее время
$ad_defense_time=10000; // при обнаружении ddos атаки время в секундах на которое прекращается мониторинг



if(!file_exists("{$ad_dir}/{$ad_check_file}") or !file_exists("{$ad_dir}/{$ad_temp_file}") or !file_exists("{$ad_dir}/{$ad_black_file}") or !file_exists("{$ad_dir}/{$ad_white_file}") or !file_exists("{$ad_dir}/anti_ddos.php")){
die("Не хватает файлов.");
}

require("{$ad_dir}/{$ad_check_file}");

if ($ad_end_defense and $ad_end_defense>$ad_date){
require("{$ad_dir}/anti_ddos.php");
} else {
if($ad_sec==$ad_sec_query){
$ad_num_query++;
} else {
$ad_num_query='1';
}

if ($ad_num_query>=$ad_ddos_query){
$ad_file=fopen("{$ad_dir}/{$ad_check_file}","w");
$ad_end_defense=$ad_date+$ad_defense_time;
$ad_string='<?php $ad_end_defense='.$ad_end_defense.'; ?>';
fputs($ad_file,$ad_string);
fclose($ad_fp);
} else {
$ad_file=fopen("{$ad_dir}/{$ad_check_file}","w");
$ad_string='<?php $ad_num_query='.$ad_num_query.'; $ad_sec_query='.$ad_sec.'; ?>';
fputs($ad_file,$ad_string);
fclose($ad_fp);
}
}
?>



anti_ddos.php (модуль погашения DDOS атаки):
PHP код:
<?php
function getIP() {
if(getenv("HTTP_CLIENT_IP") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_CLIENT_IP")) and getenv("HTTP_CLIENT_IP")!='127.0.0.1') {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_X_FORWARDED_FOR")) and getenv("HTTP_X_FORWARDED_FOR")!='127.0.0.1') {
$ip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}
$ad_ip=getIP();

$ad_source=file("{$ad_dir}/{$ad_black_file}");
$ad_source=explode(' ',$ad_source[0]);
if (in_array($ad_ip,$ad_source)){die();}

$ad_source=file("{$ad_dir}/{$ad_white_file}");
$ad_source=explode(' ',$ad_source[0]);
if (!in_array($ad_ip,$ad_source)){

$ad_source=file("{$ad_dir}/{$ad_temp_file}");
$ad_source=explode(' ',$ad_source[0]);
if (!in_array($ad_ip,$ad_source)){
$ad_file=fopen("{$ad_dir}/{$ad_temp_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
?>

Сайт в данный момент подвергается DDOS атаке, если Вы не машина-зомби атакующая сайт нажмите на кнопку, иначе Ваш IP (<?=$ad_ip?>) будет заблокирован!!!
<form method="post">
<input type="submit" name="ad_white_ip" value="Кнопка">
</form>

<?php
die();
}
elseif ($_POST['ad_white_ip']){
$ad_file=fopen("{$ad_dir}/{$ad_white_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
}
else {
$ad_file=fopen("{$ad_dir}/{$ad_black_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
die();
}
}
?>


Также для работы скрипта понадобятся 4 файла check.txt, white_ip.txt, black_ip.txt и all_ip.txt создаем их в этом же каталоге и на все ставим права 666 (чтение и запись).

Желательно также во время атаки списки IP адресов атакующих машин формирующихся в файле black_ip.txt переносить постепенно в файл .htaccess и блокировать их оттуда, тогда нагрузка еще значительно снизится.

Пример файла .htaccess
Код:
Deny from 11.11.11.11 22.22.22.22 и т.д. через пробел



Да чуть не забыл, для подключения скрипта, в начале каждого файла, который может быть подвергнут атаке добавляем строчку:
Код:
require("anti_ddos/index.php");

0
sex0s
sex0s

Пользователь

Бывалый

Постов: 306

На форуме с: 25.08.2008

Репутация: +294

Рейтинг: 0

· 04.09.2008, 19:52

Anti_ddos
КОроче вот уже нормальный Целый Анти дос,просто суньте в папку WWW

— 2+2 = ? Оо

0
Сергей
Сергей

Пользователь

Ветеран

Постов: 1059

На форуме с: 09.06.2007

Репутация: +736

Рейтинг: 0

· 04.09.2008, 22:04

Ты продолжаешь нас всё больши и больше удивлять :)
Спасибо!
==========
Проверил данный скрипт... Примерно начиная с 20-25 попытки доса, он начинает отказывать .... (25 машин одновременно досят)
и всё лажится....

+

Цитата
$ad_ddos_query=10; // количество запросов в секунду для обнаружения DDOS атаки

Имхо лагает :) ... с одного IP (у меня 2 машины на 1 IP) загружаю данную страничку с 2 машин... Получается что запрос удваивается с 1 IP и также заносит меня в чёрный список :D

или лыжи не едут... или у меня просто руки кривые :D

Главная ошибка одится в полуметре от монитора...

0
H
hellEVIL_TEAM

Пользователь

Бывалый

Постов: 292

На форуме с: 28.03.2008

Репутация: +129

Рейтинг: 0

· 05.09.2008, 06:30

+1 это флуд а не ddos

0
D
Dron

Пользователь

Новичок

Постов: 9

На форуме с: 17.05.2007

Репутация: +5

Рейтинг: 0

· 07.09.2008, 12:10

хехе уже 2 дня от скрипта поддосом сижу

— 35

0
Дмитрий
Дмитрий

Пользователь

Ветеран

Постов: 834

На форуме с: 30.05.2007

Репутация: +632

Рейтинг: 0

· 07.09.2008, 16:03

Это обычная система блокировки IP при обнаружении http-флуда, которая сможет сэкономить пару запросов к MySQL и больше ничего.

Ни от какого DDoS не защищает !!!

Люди определитесь с терминами, DDoS - это в первую очередь распределённая атака несколькими компютерами, порой тысячами.

И скажите, как этот скрипт защитит от DDoS атаки, например ICMP пакетами ???????? никак !!!!!!!!

P.S. Этот скрипт уже выкладывался ранее:
http://la2base.ru/forum/index.php?showtopic=4849

WebDeveloper сервера DARKWORLD

0
B
BlackFighter

Пользователь

Бывалый

Постов: 483

На форуме с: 27.04.2008

Репутация: +506

Рейтинг: 0

· 19.09.2008, 13:01

мое дело поделитсо ваше тестить

0
Тема закрыта для ответов