PDA

Просмотр полной версии : Анти DDOS with Firewall


Isis
04.08.2008, 02:11
[Intro]
Много писать не буду, все понятно!
Надоело видеть ошибку 504 при заходе на свой сайт?
Я помогу Вам избавиться от этого с помощью Firewall.
Естественно защитить от огромного кол-ва ботов вы не сможете, однако :)


[Script]
<?php
error_reporting(0);

$array = array('66.249.64.', '81.19.64.', '89.208.19.', '213.180.206.', '72.30.0.', '87.250.230.', '213.180.216.', '222.0.0.');

$position = explode('.', $_SERVER['REMOTE_ADDR']);
$pos = $position[0].'.'.$position[1].'.'.$position[2].'.';

if(!in_array($pos, $array))
{
$dir = 'bots/';

$cook = strrev(sha1('Fuck you' . md5(getenv('HTTP_USER_AGENT'))));

function ban()
{
system("/bin/sudo pfctl -t dl -T add " . escapeshellarg($_SERVER["REMOTE_ADDR"]));
die('Firewall has been you!!!<br/>Cookie must be on');
}

if (empty($_COOKIE['ddos']))
{
$counter = @file($dir . $_SERVER["REMOTE_ADDR"]);
if(count($counter) > 5) ban();
setcookie('ddos', $cook, time() + 9800);
$f = @fopen($dir . $_SERVER["REMOTE_ADDR"], "a");
fwrite($f, "Antiddos by xeka.ru\r\n");
fclose($f);
header('Location: ' . $_SERVER['PHP_SELF']);
die();
}

if ($_COOKIE['ddos'] !== $cook)
{
ban();
die();
}

if ($_COOKIE['ddos'] == $cook)
{
system("/bin/sudo pfctl -t dl -T del " . $_SERVER["REMOTE_ADDR"]);
@unlink($dir . $_SERVER["REMOTE_ADDR"]);
}
}
?>

Script/pastebin.x3k.ru (http://pastebin.x3k.ru/433)

[Description]
$array - массив с IP адресами поисковых ботов, которых мы НЕ баним!
$dir - папка, куда будем записывать файлы с IP адресами плохих отрубей. CHMOD права на папку 0777
$cook - пишите что хотите, записываем шифр в куки :)
function ban() - Создаем функцию бана с помощью команды к файрволу.
Далее проверки и отделение хороших от отрубей :)


Copyright xeka.ru (http://forum.xeka.ru/f25/t4811/)

BlackSun
04.08.2008, 02:46
Cisco guard рулид ..

Alexsize
04.08.2008, 09:15
Думаю на питоне или руби смотрелось бы лучше.

-=lebed=-
04.08.2008, 09:50
ссылка по теме http://hostinghelp.biz/content/ddos-что-делать-если-сервер-только-один-linux-с-apache

jen140
13.08.2008, 05:28
Pfctl есть не на всех системах . мне кажется что лутче использовать .htaccess.
Но санкс за скипт =)

Isis
14.08.2008, 03:09
Pfctl есть не на всех системах . мне кажется что лутче использовать .htaccess.
Но санкс за скипт =)
При обращении к серверу идет загрузка .htacces и от ддоса он увы не поможет..

limpompo
14.08.2008, 04:55
perl script + ipfw