INTEGRITY Документация

Обновление правил файрвола (firewall rules)

Cloudflare обновил существующие правила файрвола в пользовательские правила. С пользовательскими правилами вы получаете тот же уровень защиты и несколько дополнительных возможностей. Пользовательские правила доступны в панели управления Cloudflare в следующем расположении:

Основные различия

Основные различия между правилами файрвола и пользовательскими правилами WAF следующие:

Улучшенный ответ для действия Block

В пользовательских правилах WAF вы можете настроить ответ Block (действие).

Ответ блокировки по умолчанию — стандартная HTML-страница Cloudflare. Если вам нужно отправлять пользовательский ответ для Block — для этих действий настройте пользовательское правило так, чтобы оно возвращало фиксированный ответ с пользовательским кодом ответа (по умолчанию 403) и пользовательским телом (HTML, JSON, XML или обычный текст).

Отдельная страница ошибки для заблокированных запросов

Запросы, заблокированные firewall-правилом с действием Block получали бы от Cloudflare код ошибки 1020 . Пользователи Cloudflare могли настроить эту страницу ошибки для зоны в Error Pages > ошибки класса 1000.

Запросы, заблокированные пользовательским правилом WAF, получают другой ответ: ответ блокировки WAF. Чтобы настроить стандартный ответ блокировки, вы можете:

Если вы настроили свою страницу ошибок 1XXX в Error Pages для запросов, заблокированных правилами файрвола, вам потребуется создать новую страницу ответа для заблокированных запросов одним из перечисленных выше способов.

Дополнительную информацию об Error Pages см. в Custom Errors.

Новое действие Skip, заменяющее действия Allow и Bypass

Firewall Rules поддерживали Allow и Bypass, часто используемые вместе. Эти действия обычно применялись для обработки заведомо легитимных запросов — например, запросов с доверенных IP-адресов.

Когда запрос вызвал срабатывание Allow, все остальные правила файрвола не выполнялись, фактически пропуская запрос к следующему продукту безопасности. Bypass было создано, чтобы указывать, какие продукты безопасности (например, управляемые правила WAF, правила rate limiting и User Agent Blocking) не должны выполняться для запроса, вызвавшего это действие.

В Firewall Rules, если вы хотели остановить работу всех продуктов безопасности для данного запроса, нужно было создать два правила:

Требование иметь два правила для этого типичного сценария больше не относится к пользовательским правилам WAF. Теперь вам следует используйте Skip (действие), которое объединяет Allow и Bypass действия. Skip полностью заменяет Allow и Bypass действия, которые не поддерживаются в пользовательских правилах WAF.

С помощью Skip вы можете сделать следующее:

Вы также можете выбрать, журналировать ли события, совпадающие с пользовательским правилом с Skip или нет. Это особенно полезно при построении позитивной модели безопасности, чтобы не журналировать большие объёмы легитимного трафика.

Пользовательские правила выполняются по порядку

У действий firewall rules был определённый порядок приоритета при использовании упорядочивание по приоритету. В отличие от этого, у действий пользовательских правил такого порядка нет. Пользовательские правила всегда выполняются по порядку, и некоторые действия, такие как Block останавливает вычисление остальных правил.

Например, если вы использовали упорядочивание по приоритету и имели следующие правила файрвола с одинаковым приоритетом, оба из которых соответствовали входящему запросу:

Запрос был бы пропущен, поскольку Allow (действие) в Firewall Rules имело бы приоритет над Block (действие).

Напротив, если вы создадите два пользовательских правила, каждое из которых совпадает с входящим запросом:

Запрос был бы заблокирован, поскольку пользовательские правила вычисляются по порядку, и Block останавливает вычисление остальных правил.

Логи и события

События, журналируемые пользовательскими правилами, отображаются в Security Events с Custom Rules в качестве источника.

Вы всё ещё можете видеть события, сгенерированные Firewall Rules, на странице Security Events, если выбранный период включает дни перехода на пользовательские правила. Аналогично, вы можете видеть события одновременно с Skip и Allow (действия) в одном представлении на переходный период.

Новые ресурсы API и Terraform

Предпочтительный API для управления пользовательскими правилами WAF — Rulesets API. Rulesets API используется во всех современных продуктах безопасности Cloudflare для единообразного взаимодействия с нашим API. Подробнее о миграции на Rulesets API см. Значимые изменения для пользователей API.

Firewall Rules API и Filters API не поддерживаются с 2025-06-15. Теперь существует единый список правил для firewall rules и пользовательских правил WAF, и этот список содержит пользовательские правила WAF. Благодаря внутреннему процессу конвертации Firewall Rules API и Filters API возвращают firewall rules/фильтры, преобразованные из этих пользовательских правил WAF, вплоть до даты окончательного отключения этих API.

Если вы используете Terraform, вы должны обновить конфигурацию, чтобы использовать cloudflare_ruleset с http_request_firewall_custom для управления пользовательскими правилами. Дополнительную информацию об обновлении конфигурации Terraform см. в Значимые изменения для пользователей Terraform.

Важные изменения для пользователей панели управления

Вкладка Firewall Rules в дашборде Cloudflare теперь считается устаревшей. Правила файрвола отображаются как пользовательские правила в панели управления Cloudflare.

Для пользователей с доступом к обоим продуктам Firewall rules (вкладка) доступна только в старой панели управления в Security > WAF.

Значимые изменения для пользователей API

Firewall Rules API и связанный Cloudflare Filters API теперь устарели. Эти API не поддерживаются с 2025-06-15. Всю автоматизацию на основе Firewall Rules API или Cloudflare Filters API необходимо вручную перевести на Rulesets API, чтобы избежать проблем. Идентификаторы правил у правил файрвола и пользовательских правил различаются, что может повлиять на автоматизированные процессы, работающие с конкретными идентификаторами правил.

До даты окончательного отключения этих API Cloudflare внутренне преобразует ваши Firewall Rules API и Filters API вызовы в соответствующие Rulesets API (вызовы). Преобразованные вызовы API между Firewall Rules API/Filters API и Rulesets API отображаются в журналах аудита как выполненные Cloudflare, а не реальным пользователем, отправившим запросы. Для правил файрвола и пользовательских правил WAF будет использоваться единый список правил.

Некоторые новые возможности пользовательских правил WAF, такие как пользовательские ответы для заблокированных запросов и Skip (действие), не поддерживаются в Firewall Rules API. Чтобы воспользоваться этими возможностями, Cloudflare рекомендует использовать страницу пользовательских правил в панели управления Cloudflare или Rulesets API.

См. документацию WAF по примеры управления пользовательскими правилами WAF через Rulesets API.

Значимые изменения для пользователей Terraform

Следующие ресурсы Terraform из провайдера Cloudflare теперь устарели:

Эти ресурсы не поддерживаются с 2025-06-15. Если вы используете их для управления конфигурацией Firewall Rules, вы должны вручную обновить конфигурацию Terraform на cloudflare_ruleset (ресурсы), чтобы избежать проблем.

Для firewall rules и пользовательских правил WAF будет существовать единый список правил.

Некоторые новые возможности пользовательских правил WAF не поддерживаются в устаревших ресурсах Terraform. Чтобы воспользоваться этими возможностями, Cloudflare рекомендует использовать cloudflare_ruleset (ресурс).

Обратитесь к документации по Terraform для примеры настройки пользовательских правил WAF с помощью Terraform.

Замените конфигурацию с помощью cf-terraforming

Вы можете использовать cf-terraforming инструмент, чтобы сгенерировать конфигурацию Terraform для ваших текущих пользовательских правил WAF (преобразованных Cloudflare из ваших firewall rules). Затем импортируйте новые ресурсы в состояние Terraform.

Рекомендуемые шаги замены конфигурации правил файрвола (и фильтров) в Terraform на новую конфигурацию на основе наборов правил приведены ниже.

  1. Выполните следующую команду, чтобы сгенерировать все конфигурации наборов правил для зоны:

    cf-terraforming generate --zone <ZONE_ID> --resource-type "cloudflare_ruleset"
    resource "cloudflare_ruleset" "terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31" {
      kind    = "zone"
      name    = "default"
      phase   = "http_request_firewall_custom"
      zone_id = "<ZONE_ID>"
      rules {
        [...]
      }
      [...]
    }
    [...]
  2. Предыдущая команда может вернуть дополнительные конфигурации наборов правил для других продуктов Cloudflare, также основанных на Ruleset Engine. Поскольку вы переносите правила файрвола в пользовательские правила, оставьте только ресурс Terraform для http_request_firewall_custom фазы и сохраните его в .tf (файл конфигурации). Полное имя ресурса понадобится вам на следующем шаге.

  3. Импортируйте cloudflare_ruleset ресурс, определённый вами ранее, в состояние Terraform с помощью terraform import . Например:

    terraform import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31 zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Importing from ID "zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31"...
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Import prepared!
      Prepared cloudflare_ruleset for import
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    
    Import successful!
    
    The resources that were imported are shown above. These resources are now in
    your Terraform state and will henceforth be managed by Terraform.
  4. Выполните terraform plan , чтобы убедиться, что Terraform теперь проверяет состояние новых cloudflare_ruleset ресурс в дополнение к другим существующим ресурсам, уже управляемым Terraform. Например:

    terraform plan
    
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    cloudflare_filter.my_filter: Refreshing state... [id=14a2524fd75c419f8d273116815b6349]
    cloudflare_firewall_rule.my_firewall_rule: Refreshing state... [id=0580eb5d92e344ddb2374979f74c3ddf]
    [...]
  5. Удалите из состояния Terraform всё, что относится к правилам файрвола и фильтрам:

    1. Выполните следующую команду, чтобы найти все ресурсы, связанные с firewall rules и filters:

      terraform state list | grep -E '^cloudflare_(filter|firewall_rule)\.'
      cloudflare_filter.my_filter
      cloudflare_firewall_rule.my_firewall_rule
    2. Запустите terraform state rm ... в режиме dry-run, чтобы понять последствия удаления этих ресурсов без внесения каких-либо изменений:

      terraform state rm -dry-run cloudflare_filter.my_filter cloudflare_firewall_rule.my_firewall_rule
      Would remove cloudflare_filter.my_filter
      Would remove cloudflare_firewall_rule.my_firewall_rule
    3. Если влияние выглядит корректно, выполните ту же команду без -dry-run, чтобы действительно удалить ресурсы из состояния Terraform:

      terraform state rm cloudflare_filter.my_filter cloudflare_firewall_rule.my_firewall_rule
      Removed cloudflare_filter.my_filter
      Removed cloudflare_firewall_rule.my_firewall_rule
      Successfully removed 2 resource instance(s).
  6. После удаления ресурсов firewall rules и filters из состояния Terraform удалите cloudflare_filter и cloudflare_firewall_rule ресурсы из .tf (файлы конфигурации).

  7. Выполните terraform plan , чтобы убедиться, что удалённые из файлов конфигурации ресурсы больше не отображаются. Ожидающих изменений быть не должно.

    terraform plan
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    
    No changes. Your infrastructure matches the configuration.
    
    Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

Подробности об импорте ресурсов Cloudflare в Terraform и использовании cf-terraforming , обратитесь к следующим ресурсам:

Заключительные замечания

Любые незапаузированные правила файрвола с приостановленными фильтры станут включёнными после преобразования в пользовательские правила.