Посоветуйте анти-дос или как защитится от доса?

Тема в разделе "Администрирование серверов", создана пользователем newbigmir, 15 сен 2008.

Статус темы:
Закрыта.
Модераторы: mefish
  1. HOSTER

    HOSTER

    Регистр.:
    22 апр 2008
    Сообщения:
    213
    Симпатии:
    38
    Вот у Вас 2 веб сервера а не сам апач)
    В перл скрипте есть строка вот такого содержания ( PeerAddr=> "127.0.0.1:80"); ) где 127.0.0.1 - IP где разположен АПАЧ и 80 порт на каком разположен апач, поскольку у Вас NGINX на 80 Вам нужно изменить порт в скрипте на тот где АПАЧ (думаю что он будет 8080).

    И перл скрипт без разницы где ложыть всеравно егу нужно запускать ТОЛЬКО ИЗ КОНСОЛИ!

    Добавлено через 4 минуты
    и данный метоб защиты он ДДОСА Вам не поможет поскольку у Вас 2 веб сервера!
    Поскольку не пользователей на прямую общается с апачем а нгинкс, и вовремя ддоса всем пользователям будет видно ошибку 403 вместо странички с сайтом и Ваш сервер всеже не будет работать (тобиж будет но толку ноль).
    Так что пересобирайте ядро с поддержкой PF
     
  2. andripoty

    andripoty Постоялец

    Регистр.:
    14 фев 2008
    Сообщения:
    135
    Симпатии:
    24
    да нет, спасибо, пересобирать наверно ничего не буду.. так как реально никаких атак нет, я просто интересовался на всякий случай.. но все равно спасибо за разьяснения.. хотя об этом я читал из других статей
    тут вот какое дело, я ведь не руками собирал апача и нгинкса. это делает панель сама.. и файервол она ставит сама, просто в панели кликаем установить и все.. остальное IPSmanager делает сам...
    добавил:
    а вот ваш мануал http://www.nulled.ws/showpost.php?p=799592&postcount=63
    там вы рассказываетет о том что у вас стоит тоже 2 вэб сервера, а мне тут отвечаете что вроде как толку не будет.. вобщем хотел бы посмотреть как должен выглядеть конфиг апача и нгинкса в связке, если можно в личку...
     
  3. HOSTER

    HOSTER

    Регистр.:
    22 апр 2008
    Сообщения:
    213
    Симпатии:
    38
    там вы рассказываетет о том что у вас стоит тоже 2 вэб сервера, а мне тут отвечаете что вроде как толку не будет - толку не будет с mod_evasive а не с PF
    И у меня на некоторый хостинг серверах тоже установлена панель ISPManager с дефолнтым конфигом Nginx'a какой генерит сам ISPManager,
    а если Вы хотите зделать тонкую настройку нгинкса рекомендую подписаться на рассылки Nginx там обсуждают много различный деректив Nginx

    На хостинг серверах у меня порт 8080 закрыт из мира а на порту 80 PF смотрит за трафиком.

    Если что пишите помогу.
     
  4. anchiru

    anchiru Создатель

    Регистр.:
    2 окт 2007
    Сообщения:
    30
    Симпатии:
    2
    Здравствуйте.

    у меня тоже почему то не срабатывает блокировка через модуль evasive. может подскажете возможные варианты ?
    $ cat /etc/apache2/mods-enable/mod-evasive.conf
    тестировал стандартным тестовым скриптом, идущим в комплекте с сорцами
    $ cat test.pl
    апач работает как бекенд, фронтендом выступает nginx. на апаче используется модуль realip.
    апач слушает на 127.0.0.1:80
    nginx на внешнем ip

    в логах апача всегда отдаётся код 200
     
  5. adramelech

    adramelech Постоялец

    Регистр.:
    23 фев 2009
    Сообщения:
    58
    Симпатии:
    20
    свои правила в файрвол написать, токо не жесткие. Самое действенное.
     
  6. Raistlin

    Raistlin Создатель

    Регистр.:
    15 фев 2010
    Сообщения:
    33
    Симпатии:
    4
    mod_evasive+apache.worker+apf
     
  7. Yuryus

    Yuryus

    Регистр.:
    3 апр 2007
    Сообщения:
    388
    Симпатии:
    148
    Как вариант на php ограничить количество запросов при атаке отсекая скриптом.

    PHP:
    <?php

    /* Время задержки в секундах */
    $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);
       }
    }
    ?> 
    Источник
     
  8. hangren

    hangren Постоялец

    Регистр.:
    16 окт 2009
    Сообщения:
    81
    Симпатии:
    76
    Вообще это слишком серьезный вопрос, чтобы ответить в двух словах. Надеюсь, Вы уже получили нужную информацию из ответов в топике, но за спасение от целенаправленной продолжительной ддос атаки специалисты берут очень неплохие деньги :)
     
Статус темы:
Закрыта.