Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

11.08.2009, 14:45
|
|
Постоянный
Регистрация: 05.01.2009
Сообщений: 684
Провел на форуме: 3281634
Репутация:
485
|
|
АНТИДДОС скрипты
И так ,скрипты "спасающие" от ддоса прошу выкладывать только здесь!
1.Каждый второй скажет что скриты, темболее на php неспасут от настоящего ддоса.
-Это естественно, но от среднего HTTP Флуда они спасти смогут.
1.Vbulletin antidd0s(1.2)
Обязательно создайте каталог tmp с правами 777
-VB_antiddos
Ставить на ветки 3.7.х \3.8.х
___________________________________
2.IPB antidd0s(1)
Обязательно создайте каталог tmp с правами 777
-IPB_antiddos
Ставить на IPB 2.1.7 И аналоги
___________________________________
-IPB_antiddos
Ставить на IPB 2.3.5 И аналоги
Ну вообем это опять для тех кто сам собрать несможет..... Тех кто умеет гуглить и умеет некривые руки прошу некоментировать типа: и че ты сделал? типа любой так неможет......
Если кому надо на другие системы то либо стучим ко мне в аську, либо собираем сами.....
1.В самое начало index.php ставим это:
<?
include $_SERVER['DOCUMENT_ROOT'].'/antiddos.php';
?>
2.Файлы из архива в корень и права на tmp -777
Ну вот и все.... сильно непинать...сделано для новичков..... Скачать
Последнее обновление ссылок: 04.11.09
Последний раз редактировалось ReduKToR; 04.11.2009 в 21:05..
|
|
|

12.08.2009, 12:10
|
|
Участник форума
Регистрация: 25.10.2007
Сообщений: 177
Провел на форуме: 551782
Репутация:
58
|
|
Команды ANTI-DDOS:
Сколько апачей:
Код:
ps aux | grep httpd |wc -l
Cколько коннектов на 80 порт:
Код:
netstat -na | grep ":80\ " | wc -l
SYN
Код:
netstat -na | grep ":80\ " | grep syn
Пример SYN-флуда:
Код:
netstat -na | grep ":80\ " | grep SYN | wc -l
767
Посмотреть много ли разных ай-пи:
Код:
netstat -na | grep ":80\ " | grep SYN | sort -u | more
На какой домен чаще всего идут запросы:
Код:
tcpdump -npi eth0 port domain
Статус апача:
Посмотреть откуда IP:
Код:
whois xxx.xxx.xxx.xxx
или
Код:
jwhois xxx.xxx.xxx.xxx
где xxx.xxx.xxx.xxx IP атакующего
Просниферить траф идущий на domain.ru (атакуемый домен) с записью в файл output.txt:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt dst port 80 and host domain.ru
dst также можно поменять на src:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt src port 80 and host domain.ru
Допустим нашли IP (xxx.xxx.xxx.xxx) с которого много запросов:
tcpdump и там где был атакуемый домен вводим этот IP:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt src port 80 and host xxx.xxx.xxx.xxx
С какого IP сколько запросов:
Код:
netstat -ntu | awk '{print $5}'| cut -d: -f1 | sort | uniq -c | sort -nr | more
или просто
Код:
netstat -na | grep :80 | sort | uniq -c | sort -nr | more
Посмотреть на какие порты:
Код:
netstat -na | grep xxx.xxx.xxx.xxx
где xxx.xxx.xxx.xxx IP атакующего
и блочить начиная с тех, где больше коннектов.
Закрыть доступ для целой подсети IP (xxx.xxx.xxx.xxx), на конкретный протокол(-p) порт(–destination-port) в конкретном направлении(-d или -s:
В одном направлении (-d):
Код:
iptables -A INPUT -d xxx.xxx.0.0/16 -p tcp --destination-port http -j DROP
В другом направлении (-s):
Код:
iptables -A INPUT -s xxx.xxx.0.0/16 -p tcp --destination-port http -j DROP
Тоже самое, но для конкретного IP (xxx.xxx.xxx.xxx)
Код:
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --destination-port http -j DROP
iptables -A INPUT -d xxx.xxx.xxx.xxx -p tcp --destination-port http -j DROP
Блокировка по всем протоколам и портам, в направления -s и -d:
Код:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
iptables -A INPUT -d xxx.xxx.xxx.xxx -j DROP
Если установлен файрвол APF, можно блочить с его помощью:
Код:
apf -d xxx.xxx.xxx.xxx
Где xxx.xxx.xxx.xxx IP атакующего.
|
|
|

19.11.2009, 07:38
|
|
Постоянный
Регистрация: 05.01.2009
Сообщений: 684
Провел на форуме: 3281634
Репутация:
485
|
|
AntiOverload *FIX*
Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён.
Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503.Т.е Если вы нажмёте кнопку обновить 3 раза подарят,вам выдаст это сообщение
Установка:
*Качаем antiOverload.txt
*В корне сайта создаем папку tmp и выдаём права 777(Если папка есть,то не чего создовать не надо.)
*Открываем index.php и перед:
<?php
PHP код:
<?php
/*
*--------------------------------------------------------
* Модуль antioverload
*--------------------------------------------------------
* Модуль предназначен для ограничения доступа к сайту или
* к страницам, где он включён.
* Принцип работы в том, что запоминается ip-адрес и время
* обращения с этого адреса. И если в течение заданного
* времени происходит обращение с того же адреса, то ему
* выдаётся ошибка 503.
* Модуль необходимо подключать к скрипту самым первым.
* Этим обеспечивается быстрота его работы.
*--------------------------------------------------------
*/
/* Время задержки в секундах */
$ad_delay=2;
/* Путь к папке с временными файлами. Должен существовать */
$ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp';
/*
*---------------------------------------------------------
* Список поисковых роботов.
* Очень не хорошо, если поисковый робот будет натыкаться
* на ошибки на сайте. Ему это может сильно не понравиться.
* Поэтому пишем список юзер-агентов роботов; добавляем или
* удаляем, что нужно.
*---------------------------------------------------------
*/
$ad_Robots_UserAgent=array(
'aipbot',
'Aport',
'eStyleSearch',
'Gigabot',
'Gokubot',
'Google',
'MJ12bot',
'msnbot',
'PlantyNet_WebRobot',
'StackRambler',
'TurtleScanner',
'Yahoo',
'Yandex',
'YaDirectBot',
);
/*
*---------------------------------------------------------
* Список доверенных IP.
*---------------------------------------------------------
*/
$ad_good_ip = array(
'217.107.36.73',
);
/*
*----------------------------------------------------------
* Функция создаёт в указанной директории файл, начинающийся
* с буквы a (для отличия от других возможных файлов) и
* содержащий в имени ip-адрес клиента.
*----------------------------------------------------------
*/
function ad_WiteIP($dir){
$f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w');
fclose($f);
}
/*
*----------------------------------------------------------
* Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из
* вышенаписанного списка.
*----------------------------------------------------------
*/
$ad_IsRobot=false;
foreach ($ad_Robots_UserAgent as $match){
if (strstr($_SERVER['HTTP_USER_AGENT'], $match)){
$ad_IsRobot=true;
break;
}
}
if( in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) {
$good_ip = true;
} else {
$good_ip = false;
}
/*
*---------------------------------------------------------
* Поисковые роботы не любят, когда к адресу страницы
* добавляется переменная сессии. Поэтому, если на сайте
* используются сессии, то их лучше включать, если агент -
* не робот.
* Если сессии не используются, то этот кусок можно убрать.
*---------------------------------------------------------
*/
if (!$ad_IsRobot AND !$good_ip){
session_start();
}
if (!$ad_IsRobot AND !$good_ip){
/*** Чтение каталога и удаление старых файлов ***/
$ad_dir =opendir($ad_DirName)
or die('Отсутствует директория для временных файлов');
$ad_now =time();
$ad_forbid =$ad_now-$ad_delay;
/* IP-адрес в имени файла, начинающегося на букву a,
а время обращения - время изменения файла */
while (false!==($ad_FName=readdir($ad_dir))){
if (ereg('^a[1-9]',$ad_FName)
&& (@ filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){
@ unlink($ad_DirName.'/'.$ad_FName);
}
}
closedir($ad_dir);
/*** Проверка на существование пометки
о недавнем обращении с данного ip-адреса ***/
if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){
/* Если обращение было недавно, то выводим сообщение об ошибке */
header('HTTP/1.0 503 Service Unavailable');
header('Status: 503 Service Unavailable');
header('Retry-After: '.$ad_delay*3);
?>
<!doctype html public "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Ошибка 503</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
</head>
<body>
<h1>Ошибка 503 (Service Unavailable)</h1>
<p>Сервер не может в данный момент выдать запрашиваемую Вами страницу.
Попробуйте вызвать эту страницу позже (клавиша F5).</p>
</body>
</html>
<?php
ad_WiteIP($ad_DirName); // Перед выходом записываем ip
exit;
}else{
ad_WiteIP($ad_DirName);
}
}
?>
|
|
|

30.11.2009, 20:42
|
|
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме: 2223440
Репутация:
648
|
|
Вот хороший антиддос-скрипт от S(ript'а, админа xaknet.ru:
PHP код:
<?php
/*
.##.....##....###....##....##.##....##.########.########
..##...##....##.##...##...##..###...##.##..........##...
...##.##....##...##..##..##...####..##.##..........##...
....###....##.....##.#####....##.##.##.######......##...
...##.##...#########.##..##...##..####.##..........##...
..##...##..##.....##.##...##..##...###.##..........##...
.##.....##.##.....##.##....##.##....##.########....##...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@comment - При использовании кусков или полного исходного кода, авторство указывать обязательно
@author - S(r1pt
@version - 1.2
@date - 27.11.2009
*/
class antiDdos
{
// дебаг
public $debug = false;
// директория для хранения файлов индефикации запросов
public $dir = '_bots/';
// номер icq администратора
public $icq = '123456';
// сообщение при выключенном сайте
public $off_message = 'Временные неполадки, пожалуйста, подождите.';
// индивидуальный индефикатор
private $indeficator = null;
// сообщение при бане, работают шаблоны, можно использовать - {ICQ}, {IP}, {UA}, {DATE}
public $ban_message = 'Вы были заблокированы antiddos системой.
Если это ошибка обратитесь к администратору, icq of admin: {ICQ}
<hr>(c)XakNet antiddos module, ваш IP - {IP}(<i>{UA}</i>), date - {DATE}';
// команда выполнения бана в файрволле
public $exec_ban = 'iptables -A INPUT -s {IP} -j DROP';
// тип защиты от ддоса:
/* Возможные значения $ddos 1-5:
| 1. Простая проверка по кукам, по умолчанию(рекомендую)
| 2. Двойная проверка через $_GET antiddos и meta refresh
| 3. Запрос на авторизацию WWW-Authenticate
| 4. полное отключение сайта, боты не блокируются!!!
| 5. выключать сайт если нагрузка слишком большая на сервере, боты не блокируются!!!
*/
var $ddos = 1;
// часть домена поисковых ботов, см strpos()
private $searchbots = array('googlebot.com', 'yandex.ru', 'ramtel.ru', 'rambler.ru', 'aport.ru', 'sape.ru', 'msn.com', 'yahoo.net');
// временная переменные нужные для работы скрипта
private $attack = false;
private $is_bot = false;
private $ddosuser;
private $ddospass;
private $load;
public $maxload = 80;
function __construct($debug)
{
@session_start() or die('session_start() filed!');
$this->indeficator = md5(sha1('botik' . strrev(getenv('HTTP_USER_AGENT'))));
$this->ban_message = str_replace(array('{ICQ}', '{IP}', '{UA}', '{DATE}'),
array($this->icq, $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT'], date('d.m.y H:i')),
$this->ban_message
);
if (eregi(ip2long($_SERVER['REMOTE_ADDR']), file_get_contents($this->dir . 'banned_ips')))
die($this->ban_message);
$this->exec_ban = str_replace('{IP}', $_SERVER['REMOTE_ADDR'], $this->exec_ban);
$this->debug = $debug;
if(!function_exists('sys_getloadavg'))
{
function sys_getloadavg()
{
return array(0,0,0);
}
}
$this->load = sys_getloadavg();
if(!$this->sbots())
{
$this->attack = true;
$f = fopen($this->dir . ip2long($_SERVER["REMOTE_ADDR"]), "a");
fwrite($f, "query\n");
fclose($f);
}
}
/**
* Старт работы антиддоса
**/
function start()
{
if($this->attack == false)
return;
switch($this->ddos)
{
case 1:
$this->addos1();
break;
case 2:
$this->addos2();
break;
case 3:
$this->ddosuser = substr(ip2long($_SERVER['REMOTE_ADDR']), 0, 4);
$this->ddospass = substr(ip2long($_SERVER['REMOTE_ADDR']), 4, strlen(ip2long($_SERVER['REMOTE_ADDR'])));
$this->addos3();
break;
case 4:
die($this->off_message);
break;
case 5:
if ($this->load[0] > $this->maxload)
{
header('HTTP/1.1 503 Too busy, try again later');
die('<center><h1>503 Server too busy.</h1></center><hr><small><i>Server too busy. Please try again later. Apache server on ' . $_SERVER['HTTP_HOST'] . ' at port 80 with <a href="http://forum.xaknet.ru/">ddos protect</a></i></small>');
}
break;
default:
break;
}
if ($_COOKIE['ddos'] == $this->indeficator)
@unlink($this->dir . ip2long($_SERVER["REMOTE_ADDR"]));
}
/**
* Функция проверяет не является ли клиент поисковым ботом
**/
function sbots()
{
$tmp = array();
foreach($this->searchbots as $bot)
{
$tmp[] = strpos(gethostbyaddr($_SERVER['REMOTE_ADDR']), $bot) !== false;
if($tmp[count($tmp) - 1] == true)
{
$this->is_bot = true;
break;
}
}
return $this->is_bot;
}
/**
* Функция бана
**/
private function ban()
{
if (! system($this->exec_ban))
{
$f = fopen($this->dir . 'banned_ips', "a");
fwrite($f, ip2long($_SERVER['REMOTE_ADDR']) . '|');
fclose($f);
}
die($this->ban_message);
}
/**
* Первый тип защиты
**/
function addos1()
{
if (empty($_COOKIE['ddos']) or !isset($_COOKIE['ddos']))
{
$counter = @file($this->dir . ip2long($_SERVER["REMOTE_ADDR"]));
setcookie('ddos', $this->indeficator, time() + 3600 * 24 * 7 * 356); // ставим куки на год.
if (count($counter) > 10) {
if (! $this->debug)
$this->ban();
else
die("Блокированы.");
}
if (! $_COOKIE['ddos_log'] == '1')
{
if (! $_GET['antiddos'] == 1)
{
setcookie('ddos_log', '1', time() + 3600 * 24 * 7 * 356); //чтоб не перекидывало постоянно рефрешем.
if(headers_sent())
die('Header already sended, check it, line '.__LINE__);
header("Location: ./?antiddos=1");
}
}
} elseif ($_COOKIE['ddos'] !== $this->indeficator)
{
if (! $this->debug)
$this->ban();
else
die("Блокированы.");
}
}
/**
* Второй тип защиты
**/
function addos2()
{
if (empty($_COOKIE['ddos']) or $_COOKIE['ddos'] !== $this->indeficator)
{
if (empty($_GET['antiddos']))
{
if (! $_COOKIE['ddos_log'] == '1')
//проверям есть ли запись в куках что был запрос
die('<meta http-equiv="refresh" content="0;URL=?antiddos=' . $this->indeficator . '" />');
} elseif ($_GET['antiddos'] == $this->indeficator)
{
setcookie('ddos', $this->indeficator, time() + 3600 * 24 * 7 * 356);
setcookie('ddos_log', '1', time() + 3600 * 24 * 7 * 356); //типо запрос уже был чтоб не перекидывало постоянно рефрешем.
}
else
{
if (!$this->debug)
$this->ban();
else
{
echo "May be shall not transform address line?";
die("Блокированы.");
}
}
}
}
/**
* Третий тип защиты
**/
function addos3()
{
if (! isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] !== $this->ddosuser || $_SERVER['PHP_AUTH_PW'] !== $this->ddospass)
{
header('WWW-Authenticate: Basic realm="Vvedite parol\': ' . $this->ddospass . ' | Login: ' . $this->ddosuser . '"');
header('HTTP/1.0 401 Unauthorized');
if (! $this->debug)
$this->ban();
else
die("Блокированы.");
die("<h1>401 Unauthorized</h1>");
}
}
}
/*
// Exmaple
$ad = new antiDdos(false);
$ad->dir = 'bots/';
$ad->ddos = 2;
$ad->start();
*/
?>
|
|
|
НЕкие скрипты для защиты ! |

05.01.2010, 21:13
|
|
Познающий
Регистрация: 20.12.2009
Сообщений: 33
Провел на форуме: 206864
Репутация:
40
|
|
НЕкие скрипты для защиты !
В этом топике постараюсь вам показать несколько скриптов, которые способны защитить от среднего HTTP флуда.
Начнём.
Первый, самый лёгкий скрипт, но даёт результат:
Код:
### security protection ::: ANTIDDOS ###
$google=false;
if(eregi("googlebot",$_SERVER['HTTP_USER_AGENT']))$google=true;
if(eregi("yandexbot",$_SERVER['HTTP_USER_AGENT']))$google=true;
$nn = md5("837sgsa".$_SERVER['REMOTE_ADDR']);
if (!isset($_COOKIE[$nn]) && FILE!=="/announce.php" && $google==false)
{
if (isset($_POST[$nn])){
setcookie($nn, "yes");
header("Location: http://google.com".$_SERVER['REQUEST_URI']);exit;
}
echo "<html><body><form id=\"f\" action=\"http://google.com".$_SERVER['REQUEST_URI']."\" method=\"post\"><input type=\"hidden\" name='".$nn."' value='a'><script>document.getElementById('f').submit();</script><input type=\"submit\" value='Continue'></form></body></html>";
die();
}
### security protection ::: ANTIDDOS ###
Скрипты будут ещё выкладываться.
Этот скрипт защищает немного сайт.. Пробовал ддосить сайт с обычной проги ламерской, не прошло 
|
|
|

05.01.2010, 21:34
|
|
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме: 1595333
Репутация:
291
|
|
относится как к eregi, так и к ereg:
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
|
|
|

19.02.2010, 14:34
|
|
Участник форума
Регистрация: 27.08.2006
Сообщений: 223
Провел на форуме: 2154209
Репутация:
341
|
|
http://www.vbulletin.org/forum/showthread.php?t=221739
Vbulletin antiddos.
|
|
|

18.03.2010, 22:53
|
|
Познающий
Регистрация: 14.02.2010
Сообщений: 95
Провел на форуме: 297862
Репутация:
49
|
|
пользы от них 000, если честно!
|
|
|

06.05.2010, 19:56
|
|
Новичок
Регистрация: 25.04.2010
Сообщений: 16
Провел на форуме: 40951
Репутация:
0
|
|
Сообщение от CuCbKa
пользы от них 000, если честно!
Если руки прямые то польза есть!Ибо мой сервер ддосили раза 4 и провал!!!
|
|
|

21.05.2010, 04:44
|
|
Постоянный
Регистрация: 05.01.2009
Сообщений: 684
Провел на форуме: 3281634
Репутация:
485
|
|
Сообщение от CuCbKa
пользы от них 000, если честно!
Сообщение от Dark~Angel
Если руки прямые то польза есть!Ибо мой сервер ддосили раза 4 и провал!!!
Смотря, что ты понимаешь под пользой.Если систему,которая будет блокировать сильно активные IP адреса и недопускать их до всего сайта, то очень даже хорошо помогают.
А если ты ожидал,что одним скриптиком упасаешься от 100м\бит'ной Ddos атаки, то видимо тебе они и вправду некчему.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|