Экстренная защита сервисов в Application Load Balancer от DDoS на уровне L7
- Условия применения руководства
- Порядок настройки защиты
- Необходимые платные ресурсы
- Создайте профиль безопасности
- Подключите профиль безопасности к виртуальному хосту
- Настройте существующий профиль безопасности
- Проверьте работу профиля безопасности
- Настройте дополнительные правила защиты от DDoS
- Как удалить созданные ресурсы
Важно
Часть ресурсов, необходимых для прохождения практического руководства, доступны только в регионе Россия.
Руководство поможет остановить DDoS-атаку
Условия применения руководства
- Ваши сервисы находятся в Yandex Cloud или подключены к Application Load Balancer через Cloud Interconnect.
- Сервисы опубликованы в интернете через L7-балансировщик Application Load Balancer.
- DDoS-атака происходит на уровне L7 — поступает аномально большое количество HTTP-запросов (GET/POST).
Совет
Определите типовую нагрузку на ваш сервис. Это можно сделать в сервисе Application Load Balancer, в разделе Мониторинг. На графике RPS отображается общее количество входящих запросов в секунду, поступающих на балансировщик. Для анализа нормальной нагрузки выберите период до DDoS-атаки.
Порядок настройки защиты
Защита от DDoS-атаки состоит в подключении сервиса Smart Web Security и настройке правил, блокирующих вредоносный трафик.
-
Подключите профиль безопасности к виртуальному хосту.
Если профиль безопасности был создан ранее и уже подключен к хосту, проверьте его настройки.
После остановки атаки можно настроить индивидуальную защиту вашего сервиса с помощью Smart Web Security. Если созданные ресурсы вам больше не нужны, удалите их.
Необходимые платные ресурсы
В стоимость инфраструктуры для защиты от DDoS входит плата за запросы, обработанные правилами профиля безопасности (см. тарифы Yandex Smart Web Security).
Создайте профиль безопасности
Профиль безопасности — основной элемент Smart Web Security. Профиль состоит из набора правил для обработки HTTP-трафика. Правила содержат условия фильтрации и действия, которые применяются к трафику, проходящему через виртуальный хост L7-балансировщика.
Для быстрого включения защиты используйте преднастроенный шаблон. В шаблоне собраны оптимальные настройки для базовой защиты веб-сервисов.
Чтобы создать профиль безопасности:
- В консоли управления
выберите каталог, в котором находятся защищаемые ресурсы. - В списке сервисов выберите Smart Web Security.
- На панели слева выберите Профили безопасности.
- Нажмите Создать профиль и выберите По преднастроенному шаблону.
- Введите имя профиля, например
anti-ddos. - В поле Действие для базового правила по умолчанию выберите
Запретить. - В списке SmartCaptcha оставьте значение
По умолчанию. - Нажмите Создать.
Подключите профиль безопасности к виртуальному хосту
Если балансировщик управляется Ingress-контроллером Application Load Balancer, используйте аннотацию ресурса Ingress.
Совет
Вместо Ingress-контроллера Application Load Balancer рекомендуется использовать новый контроллер Yandex Cloud Gwin.
-
На странице свойств профиля безопасности вверху справа нажмите кнопку
Подключить к хосту. -
Последовательно выберите:
-
Виртуальный хост. Вы можете подключить профиль безопасности сразу к нескольким хостам.
Чтобы подключить другой L7-балансировщик, нажмите кнопку Добавить балансировщик.
-
Нажмите кнопку Подключить.
На вкладке Подключенные хосты появятся подключенные виртуальные хосты.
Настройте существующий профиль безопасности
Если профиль безопасности был создан ранее, проверьте и скорректируйте его параметры:
-
SmartCaptcha —
По умолчанию. -
Проверьте наличие правила
sp-rule-1с параметрами:- Тип —
Smart Protection. - Действие —
Полная защита(защита сайтов, подозрительные запросы отправляются в SmartCaptcha) илиЗащита API(подозрительные запросы блокируются). - Условия —
Весь трафик. - Приоритет —
999900.
- Тип —
-
Проверьте наличие базового правила с параметрами:
- Действие —
Запретить. - Условия —
Весь трафик. - Приоритет —
1000000.
- Действие —
Проверьте работу профиля безопасности
Проверить работу профиля безопасности можно с помощью графиков мониторинга и записей в логах.
Мониторинг
- В списке сервисов выберите Smart Web Security.
- Выберите раздел Мониторинг.
- Посмотрите информацию на графиках:
- Denied by Security Profile RPS — количество входящих запросов в секунду, которые были проверены и заблокированы профилем безопасности.
- Redirected to SmartCaptcha RPS — количество входящих запросов в секунду, направленных в SmartCaptcha для дополнительной верификации.
- Denied by ARL Profile RPS — количество входящих запросов в секунду, превысивших лимит профиля ARL и заблокированных.
Подробное описание графиков см. в разделе Мониторинг в Smart Web Security.
Логирование
-
Убедитесь, что для L7-балансировщика настроено логирование.
-
В списке сервисов выберите Application Load Balancer.
-
Выберите балансировщик, к которому привязан профиль безопасности.
-
Выберите раздел Логи.
-
Выберите количество сообщений на одной странице и период. Например,
1 час. -
В строке Запрос укажите запрос на языке фильтрующих выражений и нажмите кнопку Выполнить.
Примеры запросов:
-
Показать запросы, для которых сработало правило Smart Protection с отправкой на капчу:
json_payload.smartwebsecurity.matched_rule.rule_type = SMART_PROTECTION and json_payload.smartwebsecurity.matched_rule.verdict = CAPTCHA -
Показать запросы, заблокированные правилами профиля ARL:
json_payload.smartwebsecurity.advanced_rate_limiter.verdict = DENY
-
Подробное описание работы с логами см. в разделе Настроить логирование через Smart Web Security.
Настройте дополнительные правила защиты от DDoS
Чтобы ограничить нетипичную нагрузку на ваш сервис, настройте лимит запросов в профиле ARL (Advanced Rate Limiter).
Настройте лимит запросов
-
В списке сервисов выберите Smart Web Security.
-
На панели слева выберите
Профили ARL. -
Нажмите кнопку Создать профиль ARL.
-
Введите имя профиля, например
anti-ddos-arl. -
Нажмите кнопку
Добавить правило и укажите:- Имя —
arl-rps. - Приоритет —
1000. - Трафик —
Весь трафик. - Группировать запросы —
Без группировки. - Лимит запросов — укажите типовое количество запросов для вашего сервиса с небольшим запасом. Все запросы сверх лимита будут заблокированы.
- Имя —
-
Нажмите кнопку Сохранить правило.
-
Нажмите Создать.
-
На панели слева выберите Профили безопасности.
-
Напротив профиля
anti-ddosнажмите и выберите Редактировать. -
В списке профилей ARL выберите
anti-ddos-arl. -
Нажмите кнопку Сохранить.
Настройте блокировку по спискам IP-адресов
Списки ненадежных адресов предустановлены в Smart Web Security и регулярно обновляются. Вы можете составить свои списки надежных или ненадежных адресов и добавлять их в условия фильтрации запросов.
- В списке сервисов выберите Smart Web Security.
- На панели слева выберите Профили безопасности.
- Выберите профиль безопасности
anti-ddos. - Нажмите кнопку
Добавить правило. - Введите Имя, например,
block-by-list. - Укажите параметры правила:
- Приоритет — выше, чем у правила
sp-rule-1. Например,1000. - Тип —
Базовое. - Действие —
ЗапретитьилиПоказать капчу. - Трафик —
При условии. - Условия —
IP. - Условия на IP —
IP принадлежит списку. - Выберите списки адресов. Запросы с этих адресов будут блокироваться:
is_ddoser— список IP-адресов, которые участвовали в DDoS-атаках.- Нажмите кнопку + или и выберите
is_tor— IP-адреса сети TOR, которая используется для анонимизации трафика. - Нажмите кнопку + или и выберите
is_anonimous— IP-адреса анонимных сетей, которые часто используются для сокрытия личности.
- Приоритет — выше, чем у правила
- Нажмите кнопку Добавить.
Настройте блокировку по региону IP-адресов
Заблокируйте запросы из региона, откуда происходит атака. Если ваш сервис не работает в определенных регионах, можно сразу заблокировать трафик из этих регионов. Часто DDoS-атаки происходят с IP-адресов нецелевых стран.
-
Выберите профиль безопасности
anti-ddos. -
Нажмите кнопку
Добавить правило. -
Введите Имя, например,
block-by-geo. -
Укажите параметры правила:
-
Приоритет — выше, чем у правила
sp-rule-1, но ниже, чем уblock-by-list. Например,2000. -
Тип —
Базовое. -
Действие —
ЗапретитьилиПоказать капчу. -
Трафик —
При условии. -
Условия —
IP. -
Условия на IP —
IP принадлежит региону. -
Выберите регион, из которого происходит атака. Например,
CN,US,IN.Чтобы добавить еще регион, нажмите кнопку + или.
Совет
Если ваш сервис работает только в некоторых регионах, выберите условие
IP не принадлежит региону. В списке укажите целевой регион, например,RU. Трафик из других регионов будет блокироваться.Уточнить регион по IP-адресу можно на сайте ipinfo.io
или с помощью ASN провайдера . -
-
Нажмите кнопку Добавить.
Проверьте работу правил с помощью графиков мониторинга и логов. При необходимости скорректируйте лимит запросов в профиле ARL.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы, воспользуйтесь одним из способов:
- Отключите профиль безопасности от виртуального хоста.
- Удалите профиль безопасности.