Авторские статьи Анти DDOS with Firewall

Discussion in 'Статьи' started by banned, 4 Aug 2008.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    [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
     
    #1 banned, 4 Aug 2008
    Last edited: 4 Aug 2008
    6 people like this.
  2. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Cisco guard рулид ..
     
  3. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Думаю на питоне или руби смотрелось бы лучше.
     
  4. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    ссылка по теме http://hostinghelp.biz/content/ddos-что-делать-если-сервер-только-один-linux-с-apache
     
  5. jen140

    jen140 New Member

    Joined:
    28 May 2006
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Pfctl есть не на всех системах . мне кажется что лутче использовать .htaccess.
    Но санкс за скипт =)
     
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    При обращении к серверу идет загрузка .htacces и от ддоса он увы не поможет..
     
  7. limpompo

    limpompo Новичок

    Joined:
    27 Aug 2005
    Messages:
    1,402
    Likes Received:
    308
    Reputations:
    453
    perl script + ipfw