Настройка оборудования для опции защиты L7

Для работы защиты L7, доступной на Оптимальном уровне защиты сети, необходимо правильно настроить целевой сервер и сеть.

После очистки от атакующих запросов трафик направляется на ваш сервер или в вашу сеть через прокси-серверы DDoS-Guard. Чтобы не потерять трафик, настройте свое оборудование для корректной обработки пакетов и запросов из наших сетей.

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

77.220.207.0/24
45.10.240.0/24
45.10.241.0/24
45.10.242.0/24
186.2.160.0/24
186.2.164.0/24
186.2.167.0/24
186.2.168.0/24
185.178.209.197/32
190.115.30.44/32

Чтобы видеть реальные IP-адреса посетителей сайта при прохождении трафика через L7-защиту, настройте расшифровку заголовка X-Forwarded-For для сетей из списка выше.

Примеры настроек для популярных веб-серверов:

Веб-сервер Apache до версии 2.4

Измените файл /etc/apache2/mods-enabled/rpaf.conf, добавив следующие строки:

<IfModule rpaf_module>
  RPAFenable On
  # When enabled, take the incoming X-Host header
  # and update the virtualhost settings accordingly:
  RPAFsethostname On
  # Define which IP's are your frontend proxies that sends
  # the correct X-Forwarded-For headers:
  RPAFproxy_ips 77.220.207.0/24 45.10.240.0/24 45.10.241.0/24 45.10.242.0/24 186.2.160.0/24 186.2.164.0/24 186.2.167.0/24 186.2.168.0/24
  # Change the header name to parse from the default
  # X-Forwarded-For to something of your choice:
  # RPAFheader DDG-Connecting-IP
</IfModule>
 

Данная конфигурация возможна при использовании модуля: https://github.com/gnif/mod_rpaf

При использовании стандартного mod_rpaf корректная работа будет обеспечена только в случае перечисления всех адресов в RPAFproxy_ips.

Веб-сервер Apache версии 2.4 и выше

Деактивируйте mod_rpaf командой a2dismod rpaf, активируйте mod_remoteip командой a2enmod mod_remoteip и перезагрузите Apache.

Создайте или измените файл /etc/apache2/conf-available/remoteip.conf, добавив следующие строки:

<IfModule remoteip_module>
  # Take the incoming X-Host header and
  # update the virtualhost settings accordingly:
  RemoteIPHeader X-Forwarded-For
  # Define which IP's are your frontend proxies that sends
  # the correct X-Forwarded-For headers:
  RemoteIPTrustedProxy 77.220.207.0/24 45.10.240.0/24 45.10.241.0/24 45.10.242.0/24 186.2.160.0/24 186.2.164.0/24 186.2.167.0/24 186.2.168.0/24
</IfModule>

Перезагрузите Apache.

Веб-сервер Nginx

Добавьте следующие строки в секцию http-файла /etc/nginx/nginx.conf:

set_real_ip_from 77.220.207.0/24;
set_real_ip_from 45.10.240.0/24;
set_real_ip_from 45.10.241.0/24;
set_real_ip_from 45.10.242.0/24;
set_real_ip_from 186.2.160.0/24;
set_real_ip_from 186.2.164.0/24;
set_real_ip_from 186.2.167.0/24;
set_real_ip_from 186.2.168.0/24;

Если вы подключали защиту сети без автономной системы, после завершения настройки расшифровки можно переходить к управлению защитой L7 в личном кабинете.

Пользователям с собственной автономной системой для управления защитой L7 необходимо настроить BGP.

После установки BGP-сессии с DDoS-Guard в настройках оборудования необходимо разрешить прием этих и более специфичных служебных анонсов (от /24 до /32):

Из-за специфики работы L7-защиты часть этих анонсов недоступна через интернет и анонсируется только в рамках прямой BGP-сессии

77.220.207.0/24 - /32
45.10.240.0/24 - /32
45.10.241.0/24 - /32
45.10.242.0/24 - /32
186.2.160.0/24 - /32
186.2.164.0/24 - /32
186.2.167.0/24 - /32
186.2.168.0/24 - /32
185.178.209.197/32
190.115.30.44/32

Служебные префиксы будут анонсироваться со стороны DDoS-Guard по мере необходимости.

Примеры настроек для маршрутизирующего оборудования:

Это примерные команды, а не готовый набор настроек для вашего оборудования — используйте их, убедившись, что они не нарушат работу проекта

Juniper
prefix-list bind {
  45.10.240.0/24;
  45.10.241.0/24;
  45.10.242.0/24;
  77.220.207.0/24;
  185.178.209.197/32;
  186.2.160.0/24;
  186.2.164.0/24;
  186.2.167.0/24;
  186.2.168.0/24;
  190.115.30.44/32;
}
prefix-list default {
  0.0.0.0/0;
}
policy-statement DDG-IN {
    term default {
        from {
            prefix-list-filter default exact;
        }
        then accept;
    }
    term bind {
        from {
            prefix-list-filter bind orlonger;
        }
        then accept;
    }
    then reject;
}
Cisco IOS-XR
prefix-set bind
  77.220.207.0/24 le 32,
  45.10.240.0/24 le 32,
  45.10.241.0/24 le 32,
  45.10.242.0/24 le 32,
  186.2.160.0/24 le 32,
  186.2.164.0/24 le 32,
  186.2.167.0/24 le 32,
  186.2.168.0/24 le 32,
  185.178.209.197/32,
  190.115.30.44/32
end-set
!
prefix-set default
  0.0.0.0/0
end-set
!
route-policy DDG-IN
  if destination in default or destination in bind then
    pass
  else
    drop
  endif
end-policy
!
Cisco IOS/IOS-XE
ip prefix-list bind seq 10 permit 77.220.207.0/24 le 32
ip prefix-list bind seq 20 permit 45.10.240.0/24 le 32
ip prefix-list bind seq 30 permit 45.10.241.0/24 le 32
ip prefix-list bind seq 40 permit 45.10.242.0/24 le 32
ip prefix-list bind seq 50 permit 186.2.160.0/24 le 32
ip prefix-list bind seq 60 permit 186.2.164.0/24 le 32
ip prefix-list bind seq 70 permit 186.2.167.0/24 le 32
ip prefix-list bind seq 80 permit 186.2.168.0/24 le 32
ip prefix-list bind seq 90 permit 185.178.209.197/32
ip prefix-list bind seq 100 permit 190.115.30.44/32
!
ip prefix-list default seq 10 permit 0.0.0.0/0
!
route-map DDG-IN permit 10
 match ip address prefix-list default
!
route-map DDG-IN permit 20
 match ip address prefix-list bind
Mikrotik ROS 6x
routing filter
add action=accept chain=DDG_BGP_in prefix=0.0.0.0/0 prefix-length=0 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=77.220.207.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=45.10.240.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=45.10.241.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=45.10.242.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=186.2.164.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=186.2.160.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=186.2.167.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=186.2.168.0/24 prefix-length=24-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=185.178.209.197/32 prefix-length=32-32 protocol=bgp
add action=accept chain=DDG_BGP_in prefix=190.115.30.44/32 prefix-length=32-32 protocol=bgp
add action=discard chain=DDG_BGP_in protocol=bgp

Пользователям с собственной автономной системой доступна опция L7-защиты без смены А-записей. Это обеспечивает перехват и проксирование веб-трафика непосредственно на IP-адресе целевого веб-сервера. Подробнее о проксировании без смены А-записей

После завершения настройки оборудования можно переходить к созданию правил перехвата трафика