Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Web обвязка/Скрипт Защиты Обвязки
Search

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

7 replies199 viewsCurrently viewing: 1
B
BlackFighter

User

Бывалый

Posts: 483

На форуме с: 04/27/2008

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

Рейтинг: 0

· 09/04/2008, 07:32 PM

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

К примеру, создадим каталог 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

User

Бывалый

Posts: 306

На форуме с: 08/25/2008

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

Рейтинг: 0

· 09/04/2008, 07:52 PM

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

— 2+2 = ? Оо

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

User

Ветеран

Posts: 1059

На форуме с: 06/09/2007

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

Рейтинг: 0

· 09/04/2008, 10:04 PM

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

+

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

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

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

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

0
H
hellEVIL_TEAM

User

Бывалый

Posts: 292

На форуме с: 03/28/2008

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

Рейтинг: 0

· 09/05/2008, 06:30 AM

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

0
D
Dron

User

Новичок

Posts: 9

На форуме с: 05/17/2007

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

Рейтинг: 0

· 09/07/2008, 12:10 PM

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

— 35

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

User

Ветеран

Posts: 834

На форуме с: 05/30/2007

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

Рейтинг: 0

· 09/07/2008, 04:03 PM

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

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

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

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

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

WebDeveloper сервера DARKWORLD

0
B
BlackFighter

User

Бывалый

Posts: 483

На форуме с: 04/27/2008

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

Рейтинг: 0

· 09/19/2008, 01:01 PM

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

0
Topic is closed for replies