База знаний

Защита от DDoS-атак на уровне L7

DDoS-атаки на уровне 7 OSI, называемые также атаками на уровне приложения, нацелены на нарушение работы приложений путем перегрузки сервера штатными запросами. Этот тип атаки представляет особую опасность, так как трудно отличить вредоносные запросы от обычных.

Чтобы включить защиту от DDoS-атак на седьмом уровне, выполните следующие действия:

Шаг 1. Запросите подключение защиты на уровне L7. Через Личный кабинет CLO обратитесь в техподдержку, указав доменное имя и IP-адрес защищаемого ресурса. Сообщите, если поддомены сайта также нуждаются в защите.

Если домен использует защищенное соединение, то нужно также выполнить одно из действий:

  • Приложить к запросу ваш полный SSL-сертификат, а именно: сам сертификат для вашего домена, приватный ключ, цепочку промежуточных сертификатов
  • Использовать сертификат, выданный провайдером услуги защиты от DDoS-атак

Это необходимо, чтобы сотрудники поддержки выполнили настройку на стороне сервиса защиты от DDoS-атак.

Шаг 2. Настройте веб-сервер, чтобы сетевые службы распознавали реальный IP-адрес сервера, а не адрес, предоставляемый службой защиты от DDoS-атак.

Если вы используете веб-сервер nginx, необходимо чтобы он был скомпилирован с опцией --with-http_realip_module (по умолчанию поддержка уже есть во всех популярных дистрибутивах). В файле /etc/nginx/nginx.conf в секцию http необходимо добавить опции конфигурации следующим образом:

  • Через ssh-клиент подключитесь к серверу, введите в консоль:

nano /etc/nginx/nginx.conf

В раздел http добавьте:

set_real_ip_from 186.2.160.0/24;
real_ip_header X-Real-IP;
  • Затем нажмите Ctrl+O, Enter, далее Ctrl+X

186.2.160.0/24 — это служебная подсеть DDoS-Guard. Вышеприведенная команда позволит передать из неё новый защищенный IP на сервер.

  • Если вы используете веб-сервер Apache, и при этом не установлен nginx, то в нём должна быть включена поддержка модуля remote_ip (по умолчанию она включена во всех популярных дистрибутивах). Введите:

nano /etc/httpd/conf/httpd.conf — в CentOS

nano /etc/apache2/apache2.conf — в Debian / Ubuntu

в открывшемся файле добавьте:

RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 186.2.160.0/24
  • Далее нажмите Ctrl+O, Enter и Ctrl+X.

Шаг 3. Настройте файервол. Это необязательно, но данный шаг закроет доступ к портам веб-сервера для всех IP не из защищенной сети, и, как следствие, повысит защищенность. Данная настройка выполняется после подключения защищенного канала к серверу.

Добавьте правила для фаервола через утилиту iptables или iptables-nft (если используется nftables), чтобы открыть доступ к серверу через порты 80 и 443 только для подсетей DDoS-Guard 186.2.160.0/24 и 77.220.207.192/27

  • Убедитесь в наличии на сервере утилиты iptables командой:

iptables -V

  • Если iptables не установлена, то выполните:

yum install iptables-services

systemctl enable iptables

systemctl start iptables

  • Далее введите в консоль следующие значения:

iptables -I INPUT -s 186.2.160.0/24 -p tcp --dport 80 -j ACCEPT

iptables -I INPUT -s 186.2.160.0/24 -p tcp --dport 443 -j ACCEPT