DDoS-атака уровня L7 — это атака на уровне протокола приложений: HTTP, HTTPS, DNS и др. Как правило, DDoS L7 направлены на сайты, веб-приложения и сетевые сервисы.
Чтобы защититься от DDoS L7, в Рег.ру вы можете заказать услугу «Защита от DDoS на уровне L7».
Для чего нужна защита от DDoS L7
Все выделенные серверы Рег.ру защищены от DDoS-атак на уровнях L3-L4 по умолчанию. Защита реализована на уровне сети и активируется автоматически при заказе сервера. Подробнее об уровнях OSI и типах вредоносных атак вы можете узнать в статье.
Однако существует риск столкнуться с высокоуровневой DDoS-атакой на сайт или веб-приложение. Чаще всего злоумышленники реализуют такую атаку при помощи HTTP или HTTPS флуда — способа, который позволяет генерировать большое число запросов от нелегитимных ботов, которые имитируют реальных пользователей. От таких DDoS-атак требуется дополнительная защита уровня L7.
Как работает защита от DDoS L7
Защита от высокоуровневой DDoS реализована при помощи обратного проксирования (Reverse Proxy). Как это работает:
- 1. Для сайта предоставляется защищенный IP-адрес. Его необходимо указать в A-записи для домена.
- 2. После того как вы прописали IP, все запросы к сайту направляются на защищенный адрес и проходят через фильтры безопасности. Далее очищенный трафик направляется на целевой адрес — то есть на IP-адрес вашего сервера.
Как выбрать тариф
В Рег.ру доступно 3 тарифа защиты от DDoS-атак L7:
- Base,
- Normal,
- Profi,
- Max.
Условия по каждому тарифу вы можете узнать в разделе «Надежность и безопасность».
Сравнение тарифов
Если у вас возникнут вопросы по выбору тарифа, напишите заявку в службу поддержки.
Как подключить защиту от высокоуровневой DDoS
Чтобы подключить услугу, напишите заявку в службу поддержки. Укажите в ней:
- список доменов и поддоменов, которые необходимо защитить;
- данные SSL-сертификата (при наличии): сертификат, цепочку сертификатов и приватный ключ.
После отправки данных в ответном письме вы получите защищенный IP-адрес. Его нужно указать в A-записи домена.
Обратите внимание
Защита от DDoS L7 распространяется только на поддомены, которые направлены на IP-адрес основного домена. Также для корректной работы услуги на всех поддоменах вам потребуется Wildcard-сертификат.
Статистику по трафику и другие подробности работы защиты от DDoS вы можете получить при обращении в службу поддержки.
Возможные проблемы
Атака продолжается после подключения услуги
Если вы подключили защиту, но на сервер по-прежнему поступают нелегитимные запросы, скорее всего, атака ведется на целевой IP-адрес — тот, на котором расположен сайт. В этом случае рекомендуем ограничить доступ к веб-серверу при помощи системного файервола. Если на вашем сервере расположен один сайт или несколько сайтов с такой же защитой, используйте утилиту iptables. Для этого подключитесь к серверу по SSH и выберите инструкцию для вашего файервола.
iptables
Выполните команды:
iptables -I INPUT -s 77.220.207.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 77.220.207.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 45.10.240.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 45.10.240.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 45.10.241.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 45.10.241.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 45.10.242.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 45.10.242.0/24 -p tcp --dport 443 -j ACCEPT
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
iptables -I INPUT -s 186.2.164.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 186.2.164.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 186.2.167.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 186.2.167.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 186.2.168.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 186.2.168.0/24 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 185.178.209.197 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 185.178.209.197 -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -s 190.115.30.44 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 190.115.30.44 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
UFW
Выполните команды:
sudo ufw allow from 77.220.207.0/24 to any port 80 proto tcp
sudo ufw allow from 77.220.207.0/24 to any port 443 proto tcp
sudo ufw allow from 45.10.240.0/24 to any port 80 proto tcp
sudo ufw allow from 45.10.240.0/24 to any port 443 proto tcp
sudo ufw allow from 45.10.241.0/24 to any port 80 proto tcp
sudo ufw allow from 45.10.241.0/24 to any port 443 proto tcp
sudo ufw allow from 45.10.242.0/24 to any port 80 proto tcp
sudo ufw allow from 45.10.242.0/24 to any port 443 proto tcp
sudo ufw allow from 186.2.160.0/24 to any port 80 proto tcp
sudo ufw allow from 186.2.160.0/24 to any port 443 proto tcp
sudo ufw allow from 186.2.164.0/24 to any port 80 proto tcp
sudo ufw allow from 186.2.164.0/24 to any port 443 proto tcp
sudo ufw allow from 186.2.167.0/24 to any port 80 proto tcp
sudo ufw allow from 186.2.167.0/24 to any port 443 proto tcp
sudo ufw allow from 186.2.168.0/24 to any port 80 proto tcp
sudo ufw allow from 186.2.168.0/24 to any port 443 proto tcp
sudo ufw allow from 185.178.209.197 to any port 80 proto tcp
sudo ufw allow from 185.178.209.197 to any port 443 proto tcp
sudo ufw allow from 190.115.30.44 to any port 80 proto tcp
sudo ufw allow from 190.115.30.44 to any port 443 proto tcp
sudo ufw deny 80 proto tcp
sudo ufw deny 443 proto tcp
nftables
Выполните команды:
nft add table ip ddg_filter
nft add chain ip ddg_filter input '{ type filter hook input priority 0; policy accept; }'
nft add rule ip ddg_filter input ip saddr 77.220.207.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 45.10.240.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 45.10.241.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 45.10.242.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 186.2.160.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 186.2.164.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 186.2.167.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 186.2.168.0/24 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 185.178.209.197 tcp dport {80, 443} accept
nft add rule ip ddg_filter input ip saddr 190.115.30.44 tcp dport {80, 443} accept
nft add rule ip ddg_filter input tcp dport {80, 443} drop
firewalld
Выполните команды:
firewall-cmd --permanent --new-zone=ddg
firewall-cmd --permanent --zone=ddg --add-port=80/tcp
firewall-cmd --permanent --zone=ddg --add-port=443/tcp
firewall-cmd --permanent --zone=ddg --add-source=186.2.160.0/24
firewall-cmd --permanent --zone=ddg --add-source=77.220.207.0/24
firewall-cmd --permanent --zone=ddg --add-source=45.10.240.0/24
firewall-cmd --permanent --zone=ddg --add-source=45.10.241.0/24
firewall-cmd --permanent --zone=ddg --add-source=186.2.167.0/24
firewall-cmd --permanent --zone=ddg --add-source=186.2.168.0/24
firewall-cmd --permanent --zone=ddg --add-source=45.10.242.0/24
firewall-cmd --permanent --zone=ddg --add-source=186.2.164.0/24
firewall-cmd --permanent --zone=ddg --add-source=185.178.209.197/32
firewall-cmd --permanent --zone=ddg --add-source=190.115.30.44/32
firewall-cmd --reload
Если на вашем сервере размещено несколько сайтов без защиты, ограничение нужно настроить на стороне веб-сервера. Например, веб-сервер Apache позволяет управлять доступами в файле .htaccess. Для настройки ограничений к сайту:
- 1 Подключитесь к серверу по SSH.
-
2
Откройте файл .htaccess с помощью одной из команд:
sudo nano /var/www/test.ru/.htaccess vim /var/www/test.ru/.htaccess
Вместо /var/www/test.ru/.htaccess укажите путь к файлу, который размещен в директории защищенного сайта.
-
3
Добавьте строки:
order deny,allow deny from all allow from 186.2.160.0/24 allow from 77.220.207.192/27 allow from 77.220.207.0/24 allow from 45.10.240.0/24 allow from 45.10.241.0/24 allow from 45.10.242.0/24 allow from 186.2.164.0/24 allow from 186.2.167.0/24 allow from 186.2.168.0/24 allow from 185.178.209.197 allow from 190.115.30.44
После этого сохраните изменения и закройте файл.
В логах сервера отображаются неверные IP-адреса посетителей сайта
После того как вы защитили сайт от DDoS L7, в логах посещений будут отображаться IP-адреса сервиса защиты вместо пользовательских. Это связано с особенностями услуги: защита реализована методом проксирования, поэтому все клиентские запросы проходят через серверы фильтрации. IP одного из них вы можете увидеть в логах вместо пользовательского адреса.
Чтобы в статистике и логах веб-сервера отображались реальные IP посетителей, необходимо добавить настройки в конфигурацию веб-сервера. Для этого:
- 1 Подключитесь к серверу по SSH.
- 2 Выберите инструкцию для вашего веб-сервера.
Apache
-
3
Откройте файл remoteip.conf с помощью одной из команд:
sudo nano /etc/apache2/conf-available/remoteip.conf vim /etc/apache2/conf-available/remoteip.conf
-
4
Добавьте строки:
RemoteIPHeader X-Forwarded-For 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
Затем сохраните изменения и закройте файл.
-
5
Проверьте синтаксис конфигурационного файла:
apachectl -t
Если в файле нет ошибок, перезагрузите веб-сервер с помощью одной из команд:
systemctl restart apache2 systemctl restart httpd
Nginx
-
3
Откройте файл nginx.conf с помощью одной из команд:
sudo nano /etc/nginx/nginx.conf vim /etc/nginx/nginx.conf
-
4
В секцию «HTTP» добавьте строки:
set_real_ip_from 186.2.160.0/24; set_real_ip_from 77.220.207.192/27; 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.164.0/24; set_real_ip_from 186.2.167.0/24; set_real_ip_from 186.2.168.0/24;
Затем сохраните изменения и закройте файл.
-
5
Проверьте синтаксис конфигурационного файла:
nginx -t
Если в файле нет ошибок, перезагрузите веб-сервер с помощью команды:
systemctl restart nginx
Как отключить защиту от DDoS L7
Если вы хотите отказаться от защиты, подготовьте сервер: это нужно, чтобы ваш сайт продолжал работать. Для этого:
- 1. Снимите ограничения на запросы к сайту.
- 2. В зоне домена замените значение A-записи на IP-адрес сервера сайта.
После этого напишите заявку в службу поддержки с просьбой удалить услугу защиты от DDoS L7.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊