ВАЖНО Защита от DDOS-атак в панели ISPManager 5

Тема в разделе "Защита от DDOS своими силами", создана пользователем X-Shar, 4 фев 2016.

↑ ↓
  1. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    upload_2016-2-4_12-35-39.

    Всем привет !

    В новых версиях панели, появилась возможность подключить и настроить защиту от небольших ддос-атак в пару кликов !My mind

    Итак, вообще способ похож на этот:Придумал прикольную защиту от ботов (или слабого DDOS)

    Но более совершенен, например не нужно ставить fail2ban и более производительные скрипты...

    В общем суть:

    Для работы системы используется модуль ngx_http_limit_req_module.

    Модуль ngx_http_limit_req_module позволяет ограничить скорость обработки запросов по заданному ключу или, как частный случай, скорость обработки запросов, поступающих с одного IP-адреса.

    Пример конфигурации:
    Код:
     http {
           limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
           server {
               location /search/ {
                   limit_req zone=one burst=5;
               }
    Задаёт зону разделяемой памяти (zone=one) и максимальный размер всплеска запросов (burst). Если скорость поступления запросов превышает описанную в зоне (rate=1r/s), то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит максимальный размер всплеска. При превышении запрос завершается с ошибкой 503 (Service Temporarily Unavailable). По умолчанию максимальный размер всплеска равен нулю.

    В зоне размером 1 мегабайт может разместиться около 16 тысяч состояний размером 64 байта. При переполнении зоны в ответ на последующие запросы сервер будет возвращать ошибку 503 (Service Temporarily Unavailable).

    Скорость задаётся в запросах в секунду (r/s).

    Для включения защиты от DDoS необходимо в настройках WWW-домена включить переключатель "Включить защиту от DDoS-атаки", после чего необходимо заполнить поля "Количество запросов в секунду" и "Максимальный размер всплеска".

    После сохранения изменений в файле $HOME_NGINX/conf.d/isplimitreq.conf будет создана запись, к примеру:

    limit_req_zone $binary_remote_addr zone=example.com:128k rate=2r/s;

    где:
    Код:
     zone - имя зоны разделяемой памяти, наывается по имени WWW-домена;
       размер зоны (128к) рассчитывается по формуле: "скорость запросов" * 64к;
       rate - скорость поступления запросов, определяется в поле формы "Количество запросов в секунду".
    Далее, будет создан файл $HOME_NGINX/vhost-resources/ИМЯ_ДОМЕНА/reqlimit.conf c содержимым:
    Код:
    limit_req zone=example.com burst=3;
       error_page 503 =429 @blacklist;
    где:
    Код:
     zone - имя зоны, определенной в предыдущем конфигурационном файле;
       burst - размер всплеска, определенной в поле формы "Максимальный размер всплеска";
       @blacklist - имя локейшена, в который осуществляется редирект, при  срабатывании ошибки 503, т.е. превышении порога количества запросов с IP-адреса.
    Далее, будет создан файл $HOME_NGINX/vhost-includes/blacklist.conf c содержимым:

    location @blacklist {
    Код:
    proxy_redirect off ;
           proxy_pass https://IPADDRESS;
           rewrite (.*) /mancgi/ddos break;
                   proxy_set_header Host $host;
                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                   proxy_set_header X-Forwarded-Proto $scheme;
    }
    где:
    Код:
    IPADDRESS - IP-адрес и порт который слушает IHTTPD. При изменении адреса панели, измененный адрес и порт перезаписываются в этом файле. Если IHTTPD настроен на прослушку любого адреса, то выбирается любой из валидных IP-адресов, настроенных на сервере.
    При превышении порога количества запросов IP-адрес, с которого поступают запросы, передается в скрипт /mancgi/ddos, который вносит данный IP-адрес в список заблокированных адресов на 5 минут. При блокировке в лог-файл $HOME_MGR/var/ddos.log вносится запись:

    WARNING Address (xxx.xxx.xxx.xxx) is blacklisted


    Сама блокировка осуществляется с помощью iptables (ip6tables для IPv6) и ipset.

    В iptables создается цепочка правило:
    Код:
    DROP       all  --  anywhere             anywhere            match-set ispmgr_limit_req src 
    привязанное к имени списка из ipset - ispmgr_limit_req (для IPv6 - ispmgr_limit_req6)

    в ipset создаются два набора ispmgr_limit_req и ispmgr_limit_req6 с параметрами: hash:ip (в списке хранятся только IP-адреса) и timeout 300 (срок хранения записи 5 минут).

    Чтобы проверить содержимое списка можно использовать команду: ipset -L ispmgr_limit_req. В выводе команды в поле "Members" будут отражены все адреса, попавшие в список, и время оставшееся до конца блокировки.

    КАК ПОДКЛЮЧИТЬ:


    1)В настройках www-домены, нужного домена, делаем галочку "Включить защиту от DDOS-атак":
    upload_2016-2-4_12-44-39.


    2)Далее ниже, настраиваем число запросов, обычно 1-2, далее число всплесков, настраивается в зависимости от ддос атак, если атаки нет можно поставить 15-20, если атака есть то 5-10...
    upload_2016-2-4_12-46-10.


    ВАЖНО:ТЕСТИРУЮ ЭТО ЗДЕСЬ, ОТПИСЫВАЙТЕСЬ, ЕСТЬ-ЛИ БЛОКИРОВКИ...nea88nea88nea88
     
    • Информативный пост Информативный пост x 2
  2. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    Ддос в этой теме что-то показал, что директивы не срабатывали...NO-no!!!NO-no!!!:Mem26::Mem25:

    Я начил разбираться и оказалось, что ISPManager криво правит конфиги, если они уже вручную когда-нить менялись и добовляет доп. секции Server !NO-no!!!

    Короче поправил и понял, что там запросы считаются для всего сайта, т.е. загрузка картинок и т.д., т.е. если поставить два запроса в секунду, то все в бан уйдут на форуме...Dmeh-Smeh-Smeh!!!Dmeh-Smeh-Smeh!!!Dmeh-Smeh-Smeh!!!

    Поэтому можно профиксить в конфиге хоста, а именно:

    1. Закоментарить:
    Код:
    #include /etc/nginx/vhosts-resources/MyDomen/*.conf;
    2.Добавить содержимое этого файла, что-бы действовало на динамику, т.е. php, html и т.д.:
    Примерно так:
    Код:
    location ~ [^/]\.ph(p\d*|tml)$ {
                limit_req zone=MyDomen burst=10 nodelay;
                error_page 503 =429 @blacklist;
                try_files /does_not_exists @fallback;
            }
    Тогда можно оставить 1-2 запросов в секунду, nodelay - что-бы запросы не ожидались, в принципе можно убрать...Не въехал!!!Не въехал!!!Не въехал!!!

    Вроде работает, даже сейчас какие-то айпи банит, тут незнаю если будут ложные срабатывания, то пишите...WinkSmile
     
    • Мне нравится Мне нравится x 1
  3. MountRain Заблокирован
    MountRain
    Ответить в чате

    Заблокирован

    Регистрация:
    04.07.2016
    Сообщения:
    3
    Симпатии:
    0
    Репа:
    +0 / 0 / -0
    Подскажи пожалуйста где я накосячил?
    #user 'dnz' virtual host 'dnz55.org.ua' configuration file
    server {
    server_name dnz55.org.ua www.dnz55.org.ua;
    charset UTF-8;
    disable_symlinks if_not_owner from=$root_path;
    index index.html index.php;
    root $root_path;
    set $root_path /var/www/****;
    access_log /var/www/*** ;
    error_log /var/www/httpd-logs/***
    include /etc/nginx/vhosts-includes/*.conf;
    #include /etc/nginx/***;
    location / {
    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    try_files $uri $uri/ @fallback;
    }
    location / {
    try_files /does_not_exists @fallback;
    }
    location ~ [^/]\.ph(p\d*|tml)$ {
    try_files /does_not_exists @fallback;
    }
    error_page 403 /disabled/index.html;
    deny all;
    }
    location @fallback {
    proxy_pass http://127.0.0.1:8080;
    proxy_redirect http://127.0.0.1:8080 /;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    access_log off ;
    }
    ssi on;
    listen 109.234.35.125:80;
    location ~ [^/]\.ph(p\d*|tml)$ {
    limit_req zone=dnz55.org.ua burst=10 nodelay;
    error_page 503 =429 @blacklist;
    error_page 403 /disabled/index.html;
    try_files /does_not_exists @fallback;
    deny all;
    }
    }
    Защиту в исп включил: 2016-07-04_18-54-08.png
     
    Последнее редактирование модератором: 4 июл 2016
  4. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    MountRain, не палите пути, а закрывайте их звёздочками....:)

    А какую ошибку выдаёт ?

    Бегло глянул ваш конфиг, бросилось в глаза директива deny all; по мойму она и блокирует доступ к серверу...
     
  5. MountRain Заблокирован
    MountRain
    Ответить в чате

    Заблокирован

    Регистрация:
    04.07.2016
    Сообщения:
    3
    Симпатии:
    0
    Репа:
    +0 / 0 / -0
    никаких ошибок - сайт работает, но и никаких блокировок((( ддос-флуд идет, ИОПС растет, хостер ругается - пришлось сайт отключить временно.
    ручная блокировка ип эффект дает не на долго... сайт бюджетного государственного детского сада - то бишь бюджета нет вообще
     
  6. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    Попробуйте тогда это:Инструкция - Защита от DDOS при помощи CloudFlare

    Только в панели отключите защиту, она так-себе, одно название и от сильных атак не поможет....:(

    И кому нужно ддосить сайт детского сада ?Не въехал!!!Не въехал!!!Не въехал!!!
     
  7. MountRain Заблокирован
    MountRain
    Ответить в чате

    Заблокирован

    Регистрация:
    04.07.2016
    Сообщения:
    3
    Симпатии:
    0
    Репа:
    +0 / 0 / -0
    КлоудФлар - не вариант( Любые английские буквы ужасно пугают сотрудников и родителей.
    Да и ддосом назвать это можно с трудом -обыкновенный спамфлуд который приводит к повышенной нагрузке на дисковую систему. поэтому фильтр помог бы идеально
     
  8. X-Shar :)
    X-Shar
    Ответить в чате

    Администрация

    Регистрация:
    03.06.2012
    Сообщения:
    5.812
    Симпатии:
    432
    Пол:
    Мужской
    Репа:
    +966 / 152 / -29
    Jabber:
    Skype:
    ICQ:

    638294628

    А какие там английские буквы ? Если атака такая слабая, то просто достаточно подключить проксирование и всё, никаких букв не будет !:)

    Есть ещё вот-что:Боремся с DDOS при помощи (D)DoS Deflate

    Также можно настроить iptablets на максимальное число коннектов с одного айпи, хотя в данном случае думаю достаточно (D)DoS Deflate будет !
     
Похожие темы:
  1. X-Shar
    Ответов:
    6
    Просмотров:
    1.617
  2. X-Shar
    Ответов:
    1
    Просмотров:
    961
  3. X-Shar
    Ответов:
    0
    Просмотров:
    1.538
  4. X-Shar
    Ответов:
    0
    Просмотров:
    945
  5. Антоха
    Ответов:
    1
    Просмотров:
    798
Загрузка...

Поделиться этой страницей