← Cloudflare DDoS Protection / ddos-protection / managed-rulesets / http / http-overrides
Настройка через API
Настройте управляемый набор правил HTTP DDoS Attack Protection, определив переопределения с помощью Rulesets API.
В каждой зоне набор управляемых правил HTTP DDoS Attack Protection включён по умолчанию. Это значит, что вам не нужно развёртывать управляемый набор правил в ddos_l7 набора правил фазы явно. Создавать правило в наборе правил фазы для развертывания управляемого набора правил нужно только в том случае, если требуется настроить переопределения.
Если вы используете Terraform, см. Настройка управляемых наборов правил защиты от DDoS с помощью Terraform.
Настройте переопределение для управляемого набора правил HTTP DDoS Attack Protection
Используйте переопределения для настройки управляемого набора правил HTTP DDoS Attack Protection. Переопределения позволяют задать действие или уровень чувствительности, отличные от значений по умолчанию. Подробнее о доступных значениях действий и уровней чувствительности читайте в Параметры набора правил.
Переопределения могут иметь область действия набора правил, тега или отдельного правила. Настройки тегов и правил имеют больший приоритет, чем настройки набора правил.
Вы можете создавать переопределения на уровне зоны и на уровне аккаунта. Переопределения на уровне аккаунта позволяют одним правилом применить одно и то же переопределение сразу к нескольким зонам аккаунта. Например, с помощью переопределения на уровне аккаунта можно снизить чувствительность конкретного правила из управляемого набора или исключить Список IP-адресов для нескольких зон. Однако если у конкретной зоны есть переопределения для управляемого набора правил HTTP DDoS Attack Protection, переопределения на уровне аккаунта для этой зоны учитываться не будут.
Создание нескольких правил
Создавайте несколько правил в ddos_l7 точки входа фазы, чтобы задать разные переопределения для разных наборов входящих запросов. Настройте выражение каждого правила в соответствии с трафиком, для которого требуется изменить защиту HTTP DDoS.
Правила в наборе правил точки входа фазы, где вы создаете переопределения, проверяются по порядку, пока не найдется совпадение по выражению правила и уровню чувствительности, после чего Cloudflare применяет первое подходящее правило. Поэтому порядок правил в наборе точки входа очень важен.
Примеры вызовов API
Пример настройки на уровне зоны
Следующие PUT в примере создаётся новый набор правил фазы (или обновляется существующий) для ddos_l7 на уровне зоны. Запрос включает несколько переопределений для настройки поведения по умолчанию управляемого набора правил HTTP DDoS Attack Protection. Эти переопределения перечислены ниже:
- Все правила управляемого набора правил будут использовать
managed_challengeдействие и имеют уровень чувствительностиmedium. - Все правила с тегом
<TAG_NAME>будет иметь уровень чувствительностиlow. - Правило с ID
<MANAGED_RULESET_RULE_ID>будет использоватьblockдействие.
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/ddos_l7/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"description": "Execute HTTP DDoS Attack Protection managed ruleset in the zone-level phase entry point ruleset",
"rules": [
{
"action": "execute",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"sensitivity_level": "medium",
"action": "managed_challenge",
"categories": [
{
"category": "<TAG_NAME>",
"sensitivity_level": "low"
}
],
"rules": [
{
"id": "<MANAGED_RULESET_RULE_ID>",
"action": "block"
}
]
}
},
"expression": "true"
}
]
}'В ответе возвращается созданный (или обновленный) набор правил точки входа фазы.
Ответ
{
"result": {
"id": "<PHASE_ENTRY_POINT_RULESET_ID>",
"name": "default",
"description": "Execute HTTP DDoS Attack Protection managed ruleset in the zone-level phase entry point ruleset",
"kind": "zone",
"version": "1",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"version": "latest",
"overrides": {
"action": "managed_challenge",
"categories": [
{
"category": "<TAG_NAME>",
"sensitivity_level": "low"
}
],
"rules": [
{
"id": "<MANAGED_RULESET_RULE_ID>",
"action": "block"
}
],
"sensitivity_level": "medium"
}
},
"expression": "true",
"last_updated": "2021-06-16T04:14:47.977741Z",
"ref": "<RULE_REF>",
"enabled": true
}
],
"last_updated": "2021-06-16T04:14:47.977741Z",
"phase": "ddos_l7"
}
}Подробнее о настройке override для управляемых наборов правил через Rulesets API см. в Переопределение управляемого набора правил в документации по Ruleset Engine.
Пример конфигурации на уровне аккаунта
Следующие PUT в примере создаётся новый набор правил фазы (или обновляется существующий) для ddos_l7 на уровне аккаунта. В примере определяется одно переопределение правила для запросов, поступающих с IP-адресов из allowlisted_ips Список IP-адресов, со следующей конфигурацией:
- Правило с ID
<MANAGED_RULESET_RULE_ID>, входящее в управляемый набор правил HTTP DDoS Attack Protection (с ID<MANAGED_RULESET_ID>), будет иметьeoff(Практически отключено) уровень чувствительности, и будет выполненоlogдействие.
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/phases/ddos_l7/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"description": "Disable a managed ruleset rule for allowlisted IP addresses",
"rules": [
{
"expression": "ip.src in $allowlisted_ips",
"action": "execute",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"rules": [
{
"id": "<MANAGED_RULESET_RULE_ID>",
"action": "log",
"sensitivity_level": "eoff"
}
]
}
}
}
]
}'В ответе возвращается созданный (или обновленный) набор правил точки входа фазы.
Ответ
{
"result": {
"id": "<PHASE_ENTRY_POINT_RULESET_ID>",
"name": "default",
"description": "Disable a managed ruleset rule for allowlisted IP addresses",
"kind": "root",
"version": "1",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"version": "latest",
"overrides": {
"rules": [
{
"id": "<MANAGED_RULESET_RULE_ID>",
"action": "log",
"sensitivity_level": "eoff"
}
]
}
},
"expression": "ip.src in $allowlisted_ips",
"last_updated": "2022-10-16T04:14:47.977741Z",
"ref": "<RULE_REF>",
"enabled": true
}
],
"last_updated": "2022-10-16T04:14:47.977741Z",
"phase": "ddos_l7"
}
}Подробнее о настройке override для управляемых наборов правил через Rulesets API см. в Переопределение управляемого набора правил в документации по Ruleset Engine.