Показать сообщение отдельно

Анти DDOS with Firewall
  #1  
Старый 04.08.2008, 02:11
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


Exclamation Анти DDOS with Firewall

[Intro]
Много писать не буду, все понятно!
Надоело видеть ошибку 504 при заходе на свой сайт?
Я помогу Вам избавиться от этого с помощью Firewall.
Естественно защитить от огромного кол-ва ботов вы не сможете, однако
[Script]
PHP код:
<?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) > 5ban();
            
setcookie('ddos'$cooktime() + 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
[Description]
$array - массив с IP адресами поисковых ботов, которых мы НЕ баним!
$dir - папка, куда будем записывать файлы с IP адресами плохих отрубей. CHMOD права на папку 0777
$cook - пишите что хотите, записываем шифр в куки
function ban() - Создаем функцию бана с помощью команды к файрволу.
Далее проверки и отделение хороших от отрубей
Copyright xeka.ru

Последний раз редактировалось Isis; 04.08.2008 в 02:15..