← Документация WAF / managed-rules / reference
Cloudflare Managed Ruleset
Этот набор правил разработан командой безопасности Cloudflare и обеспечивает быструю и эффективную защиту для всех ваших приложений. Он часто обновляется, чтобы учитывать новые уязвимости и снижать количество ложных срабатываний.
Cloudflare рекомендует включить правила, теги которых соответствуют вашему технологическому стеку. Например, если вы используете WordPress, включите правила с тегом wordpress.
Cloudflare Журнал изменений WAF позволяет отслеживать текущие изменения в управляемых наборах правил WAF.
Разверните Cloudflare Managed Ruleset
-
В панели управления Cloudflare перейдите в раздел Security Настройки страницу.
Перейдите в Настройки ↗ -
(Необязательно) Отфильтруйте по Эксплойты веб-приложений.
-
Включите управляемый набор правил Cloudflare.
-
Просмотрите настройки развёртывания. При необходимости отредактируйте область действия, чтобы применить набор правил только к части входящих запросов, или настройте пользовательские параметры (также известные как переопределения).
-
Выберите Save.
Эта операция развёртывает управляемый набор правил для текущей зоны, создавая новое правило с Выполнить действие.
Настройка в панели управления
Cloudflare Managed Ruleset можно настроить (или переопределить его конфигурацию по умолчанию) на нескольких уровнях:
Когда вы создаёте несколько переопределений на разных уровнях, более конкретные конфигурации (на уровне тега и правила) имеют приоритет над менее конкретными конфигурациями (на уровне набора правил). См. Переопределение управляемого набора правил в документации Ruleset Engine, где приведена дополнительная информация.
Конфигурация на уровне набора правил
В дашборде Cloudflare можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset:
-
Область действия: Если вы определяете пользовательское выражение фильтра для области действия, Cloudflare Managed Ruleset применяется только к подмножеству входящих запросов. По умолчанию управляемый набор правил, развёрнутый в панели управления, применяется ко всему входящему трафику.
-
Действие набора правил: Когда вы задаёте действие для набора правил, вы переопределяете действие по умолчанию, заданное для каждого правила. Доступные действия: Block, Log, Non-Interactive Challenge, Managed Challenge, а также Interactive Challenge. Чтобы убрать переопределение действия на уровне набора правил, задайте для действия набора правил значение По умолчанию.
-
Статус набора правил: Включает или отключает все правила в наборе правил.
-
Журналирование полезной нагрузки: При включении регистрирует информацию о запросе (payload), вызвавшую срабатывание конкретного правила управляемого набора правил. Для шифрования payload необходимо настроить открытый ключ.
После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить это в панели управления:
-
На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.
Перейдите в Правила безопасности ↗ -
(Необязательно) Отфильтруйте по Управляемые правила.
-
Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.
-
Выберите имя правила (содержащее название управляемого набора правил), чтобы открыть страницу конфигурации развёртывания.
-
(Необязательно) Чтобы выполнять Cloudflare Managed Ruleset для подмножества входящих запросов, выберите Изменить область действия и настройка выражения который определит область действия текущего правила, разворачивающего управляемый набор правил.
-
В разделе настройки набора правил задайте параметры для всех правил Cloudflare Managed Ruleset, указав одно или несколько полей в раскрывающихся списках.
Например, выберите действие, которое нужно выполнить для всех правил набора.
-
Выберите Save.
Конфигурация на уровне тега
В дашборде можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для правил, помеченных хотя бы одним из выбранных тегов:
- Действие правила: Задаёт действие правила для всех правил с выбранными тегами. Доступные действия: Block, Log, Non-Interactive Challenge, Managed Challenge, а также Interactive Challenge.
- Статус правила: Задаёт статус правила для всех правил с выбранными тегами.
После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить правила с определенными тегами в панели управления:
-
На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.
Перейдите в Правила безопасности ↗ -
(Необязательно) Отфильтруйте по Управляемые правила.
-
Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.
-
Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.
-
Под строкой поиска выберите один или несколько тегов, по которым нужно отфильтровать правила, а затем установите флажок в левом верхнем углу таблицы, чтобы выбрать все правила, показанные на текущей странице.
Если не все правила отображаются на текущей странице, распространите выбор на все правила с выбранными тегами на всех страницах, выбрав Выбрать все <NUMBER> правил.
-
Обновите одну или несколько настроек выбранных правил с помощью кнопок в правом верхнем углу таблицы (например, Задать статус).
-
Выберите Далее.
-
Появляется диалоговое окно с вопросом, следует ли настраивать новые правила с выбранными тегами с использованием выбранных вами значений полей.
- Выберите Включить новые правила если хотите применять свои настройки к любым новым правилам с выбранными тегами.
- Выберите Только выбранные правила чтобы применить ваши настройки только к выбранным правилам.
-
Выберите Save.
Конфигурация на уровне правила
В дашборде можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для выбранных правил:
- Действие правила: Задаёт действие для одного правила или, если выбрано несколько правил, для всех выбранных правил. Доступные действия: Block, Log, Non-Interactive Challenge, Managed Challenge, а также Interactive Challenge. После изменения конфигурации правила вы можете в любой момент вернуть её к значению по умолчанию, заданному в Cloudflare Managed Ruleset.
- Статус правила: Задаёт статус (включено или отключено) для одного правила или, если выбрано несколько правил, для всех выбранных правил.
После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить отдельные правила набора правил в панели управления:
-
На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.
Перейдите в Правила безопасности ↗ -
(Необязательно) Отфильтруйте по Управляемые правила.
-
Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.
-
Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.
-
Найдите правила с помощью доступных фильтров.
-
В списке результатов измените нужные значения для каждого правила с помощью отображаемых раскрывающихся списков и переключателей. Например, измените статус правила с помощью Статус рядом с правилом.
Чтобы настроить несколько правил с одинаковым значением, установите флажки для всех правил, которые нужно настроить. Если на текущей странице отображаются не все правила, вы можете распространить выбор на все правила на всех страницах, выбрав Выбрать все <NUMBER> правил. Затем используйте кнопки в правом верхнем углу таблицы, например Задать статус, чтобы обновить одно или несколько полей для выбранных правил.
-
Выберите Далее, а затем выберите Save.
Настройка через API
Чтобы развернуть Cloudflare Managed Ruleset для заданной зоны через API, создайте правило с execute действие в ruleset точки входа для http_request_firewall_managed фазы.
Пример
Следующий пример развёртывает Cloudflare Managed Ruleset к http_request_firewall_managed фаза заданной зоны ($ZONE_ID) путём создания правила, которое выполняет управляемый набор правил.
-
Вызовите Получить входной набор правил зоны операцию для получения определения входного набора правил для
http_request_firewall_managedфаза. Вам понадобится ID зоны для этой задачи.Получить входной набор правил зоныcurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "description": "Zone-level phase entry point", "id": "<RULESET_ID>", "kind": "zone", "last_updated": "2024-03-16T15:40:08.202335Z", "name": "zone", "phase": "http_request_firewall_managed", "rules": [ // ... ], "source": "firewall_managed", "version": "10" }, "success": true, "errors": [], "messages": [] } -
Если входной набор правил уже существует (то есть если вы получили
200 OKкод состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила набора правил зоны операцию для добавленияexecuteправило в существующий набор правил, разворачивающий Cloudflare Managed Ruleset (с IDefb7b8c949ac4650a09736fc376e9aee). По умолчанию правило добавляется в конец списка правил, уже присутствующих в наборе правил.Создание правила набора правил зоныcurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset" }'{ "result": { "id": "<RULESET_ID>", "name": "Zone-level phase entry point", "description": "", "kind": "zone", "version": "11", "rules": [ // ... any existing rules { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", "version": "latest" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset", "last_updated": "2024-03-18T18:08:14.003361Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2024-03-18T18:08:14.003361Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] } -
Если входной набор правил не существует (то есть если вы получили
404 Not Foundкод состояния на шаге 1), создайте его с помощью Создание набора правил зоны операцию. Включите одно правило вrulesмассив, который выполняет Cloudflare Managed Ruleset (с IDefb7b8c949ac4650a09736fc376e9aee) для всех входящих запросов в зоне.Создание набора правил зоныcurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "My ruleset", "description": "Entry point ruleset for WAF managed rulesets", "kind": "zone", "phase": "http_request_firewall_managed", "rules": [ { "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "true", "description": "Execute the Cloudflare Managed Ruleset" } ] }'
Следующие шаги
Чтобы настроить Cloudflare Managed Ruleset через API, создайте переопределения с помощью Rulesets API. Вы можете выполнять следующие настройки:
Укажите действие, которое нужно выполнить для всех правил в наборе правил, создав переопределение набора правил.
Отключите или настройте действие отдельных правил, создав переопределения правил.
Примеры создания переопределений через API см. в Переопределение управляемого набора правил.
Дополнительные ресурсы
Дополнительную информацию о работе с управляемыми наборами правил через API см. в Работа с управляемыми наборами правил в документации по Ruleset Engine.
Настройка с помощью Terraform
Следующий пример развёртывает Cloudflare Managed Ruleset для зоны и переопределяет действие и статус конкретного правила.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:
Zone WAF Write
Настройте cloudflare_ruleset ↗ ресурс:
# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
zone_id = var.cloudflare_zone_id
name = "Managed WAF entry point ruleset"
description = "Zone-level WAF Managed Rules config"
kind = "zone"
phase = "http_request_firewall_managed"
# Execute Cloudflare Managed Ruleset
rules = [{
ref = "execute_cloudflare_managed_ruleset"
description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
expression = "true"
action = "execute"
action_parameters = {
id = "efb7b8c949ac4650a09736fc376e9aee"
overrides = {
rules = [{
id = "5de7edfa648c4d6891dc3e7f84534ffa"
action = "log"
enabled = true
}]
}
}
}]
}# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
zone_id = var.cloudflare_zone_id
name = "Managed WAF entry point ruleset"
description = "Zone-level WAF Managed Rules config"
kind = "zone"
phase = "http_request_firewall_managed"
# Execute Cloudflare Managed Ruleset
rules {
ref = "execute_cloudflare_managed_ruleset"
description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
expression = "true"
action = "execute"
action_parameters {
id = "efb7b8c949ac4650a09736fc376e9aee"
overrides {
rules {
id = "5de7edfa648c4d6891dc3e7f84534ffa"
action = "log"
enabled = true
}
}
}
}
}Подробнее см. в Настройка WAF Managed Rules с помощью Terraform.