Документация Запланировать пилот

Cloudflare Managed Ruleset

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

Cloudflare рекомендует включить правила, теги которых соответствуют вашему технологическому стеку. Например, если вы используете WordPress, включите правила с тегом wordpress.

Cloudflare Журнал изменений WAF позволяет отслеживать текущие изменения в управляемых наборах правил WAF.

Разверните Cloudflare Managed Ruleset

  1. В панели управления Cloudflare перейдите в раздел Security Настройки страницу.

    Перейдите в Настройки ↗
  2. (Необязательно) Отфильтруйте по Эксплойты веб-приложений.

  3. Включите управляемый набор правил Cloudflare.

  4. Просмотрите настройки развёртывания. При необходимости отредактируйте область действия, чтобы применить набор правил только к части входящих запросов, или настройте пользовательские параметры (также известные как переопределения).

  5. Выберите Save.

Эта операция развёртывает управляемый набор правил для текущей зоны, создавая новое правило с Выполнить действие.

Настройка в панели управления

Cloudflare Managed Ruleset можно настроить (или переопределить его конфигурацию по умолчанию) на нескольких уровнях:

Когда вы создаёте несколько переопределений на разных уровнях, более конкретные конфигурации (на уровне тега и правила) имеют приоритет над менее конкретными конфигурациями (на уровне набора правил). См. Переопределение управляемого набора правил в документации Ruleset Engine, где приведена дополнительная информация.

Конфигурация на уровне набора правил

В дашборде Cloudflare можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить это в панели управления:

  1. На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.

  4. Выберите имя правила (содержащее название управляемого набора правил), чтобы открыть страницу конфигурации развёртывания.

  5. (Необязательно) Чтобы выполнять Cloudflare Managed Ruleset для подмножества входящих запросов, выберите Изменить область действия и настройка выражения который определит область действия текущего правила, разворачивающего управляемый набор правил.

  6. В разделе настройки набора правил задайте параметры для всех правил Cloudflare Managed Ruleset, указав одно или несколько полей в раскрывающихся списках.

    Например, выберите действие, которое нужно выполнить для всех правил набора.

    Страница Configure deployment с доступными параметрами для переопределения всех правил в наборе Cloudflare Managed Ruleset: действие набора правил и статус набора правил.
  7. Выберите Save.

Конфигурация на уровне тега

В дашборде можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для правил, помеченных хотя бы одним из выбранных тегов:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить правила с определенными тегами в панели управления:

  1. На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.

  4. Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.

    Дашборд Cloudflare со списком правил в наборе Cloudflare Managed Ruleset.
  1. Под строкой поиска выберите один или несколько тегов, по которым нужно отфильтровать правила, а затем установите флажок в левом верхнем углу таблицы, чтобы выбрать все правила, показанные на текущей странице.
    Если не все правила отображаются на текущей странице, распространите выбор на все правила с выбранными тегами на всех страницах, выбрав Выбрать все <NUMBER> правил.

    Страница Configure deployment с правилами, выбранными по тегу 'sqli', в наборе Cloudflare Managed Ruleset.
  2. Обновите одну или несколько настроек выбранных правил с помощью кнопок в правом верхнем углу таблицы (например, Задать статус).

  3. Выберите Далее.

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

    • Выберите Включить новые правила если хотите применять свои настройки к любым новым правилам с выбранными тегами.
    • Выберите Только выбранные правила чтобы применить ваши настройки только к выбранным правилам.
  5. Выберите Save.

Конфигурация на уровне правила

В дашборде можно настроить (или переопределить) следующие параметры Cloudflare Managed Ruleset для выбранных правил:

После того как вы развернули Cloudflare Managed Ruleset, выполните следующие действия, чтобы настроить отдельные правила набора правил в панели управления:

  1. На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.

    Перейдите в Правила безопасности ↗
  2. (Необязательно) Отфильтруйте по Управляемые правила.

  3. Найдите Cloudflare Managed Ruleset. Найдите правило с Выполнить действие.

  4. Выберите имя правила (содержащее название управляемого набора правил), а затем выберите Browse rules.

    Дашборд Cloudflare со списком правил в наборе Cloudflare Managed Ruleset.
  1. Найдите правила с помощью доступных фильтров.

  2. В списке результатов измените нужные значения для каждого правила с помощью отображаемых раскрывающихся списков и переключателей. Например, измените статус правила с помощью Статус рядом с правилом.

    Чтобы настроить несколько правил с одинаковым значением, установите флажки для всех правил, которые нужно настроить. Если на текущей странице отображаются не все правила, вы можете распространить выбор на все правила на всех страницах, выбрав Выбрать все <NUMBER> правил. Затем используйте кнопки в правом верхнем углу таблицы, например Задать статус, чтобы обновить одно или несколько полей для выбранных правил.

    Страница Configure deployment с выбранными правилами в наборе Cloudflare Managed Ruleset.
  3. Выберите Далее, а затем выберите Save.

Настройка через API

Чтобы развернуть Cloudflare Managed Ruleset для заданной зоны через API, создайте правило с execute действие в ruleset точки входа для http_request_firewall_managed фазы.

Пример

Следующий пример развёртывает Cloudflare Managed Ruleset к http_request_firewall_managed фаза заданной зоны ($ZONE_ID) путём создания правила, которое выполняет управляемый набор правил.

  1. Вызовите Получить входной набор правил зоны операцию для получения определения входного набора правил для 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": []
    }
  2. Если входной набор правил уже существует (то есть если вы получили 200 OK код состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила набора правил зоны операцию для добавления execute правило в существующий набор правил, разворачивающий Cloudflare Managed Ruleset (с ID efb7b8c949ac4650a09736fc376e9aee). По умолчанию правило добавляется в конец списка правил, уже присутствующих в наборе правил.

    Создание правила набора правил зоны
    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": []
    }
  3. Если входной набор правил не существует (то есть если вы получили 404 Not Found код состояния на шаге 1), создайте его с помощью Создание набора правил зоны операцию. Включите одно правило в rules массив, который выполняет Cloudflare Managed Ruleset (с ID efb7b8c949ac4650a09736fc376e9aee) для всех входящих запросов в зоне.

    Создание набора правил зоны
    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.

Запросите бесплатный пилот

Запланировать пилот