跳转到内容
搜索文档

启用托管规则集

最后更新 查看 MarkdownAgent 设置

借助托管规则集,您可以快速部署由 Cloudflare 维护的规则,并且您可以使用 Cloudflare Network Firewall(前称 Magic Firewall)来控制启用哪些规则。

要启用或禁用某条规则,您可以指定应该重写 (override) 哪些属性。重写发生在托管阶段 (Managed phase) 的根种类 (root kind) 规则集中。目前,您在根规则集中只能拥有一条规则,但单条规则可以包含多个重写。

您有多种方式来启用规则:

  • 选择单个规则并启用它。
  • 通过在 magic-transit-phase 中按类别启用以启用多个规则。
  • 启用整个规则集。

API

1. 创建 Managed 阶段 Managed 种类规则集

要创建托管规则集,您必须首先构建一个包含以下内容的请求:

  • managed_ruleset_id:包含您要启用的规则的 Managed 阶段 Managed 种类规则集的 ID。
  • managed_rule_id:您要启用的规则的 ID。

此外,您还需要想要重写的属性。您可以重写的属性包括:

  • enabled:此值可以设置为 truefalse。当设置为 true 时,规则将匹配数据包,并在操作未被重写时应用规则的默认操作。当设置为 false 时,该规则被禁用,不会匹配任何数据包。
  • action:该值可以设置为 log,以便规则仅产生日志,而不应用规则的默认操作。

规则的 enabledaction 属性是在 Managed 阶段 Managed 种类规则集中设置的。Managed 阶段中的所有规则目前默认均被禁用。

下面的示例包含对 Managed 阶段 Managed 种类规则集的请求。

示例请求 - 创建 Managed 阶段 Managed 种类规则集bash
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "name": "execute ruleset",
  "description": "Ruleset containing execute rules",
  "kind": "root",
  "phase": "magic_transit_managed",
  "rules": [
    {
      "expression": "true",
      "action": "execute",
      "description": "Enable one rule ",
      "action_parameters": {
        "id": "<MANAGED_RULESET_ID>",
        "version": "latest",
        "overrides": {
          "rules": [
            {
              "id": "<MANAGED_RULE_ID>",
              "enabled": true,
              "action": "log"
            }
          ]
        }
      }
    }
  ]
}'

2. 修补 Managed 阶段 Managed 种类规则集

为了确保 root 种类规则集仅包含一条规则,请修补 (patch) 该规则以启用新的托管规则。

基于上一步的示例,下面的示例通过启用一个类别来选择多个规则,而不是单个规则。该类别将被设置为 log 模式,这意味着规则可以产生日志,但不会接收或丢弃数据包。

示例请求 - 修补 Managed 阶段 Managed 种类规则集bash
curl --request PATCH \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{root_kind_ruleset}/rules/{root_kind_rule} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "expression": "true",
  "action": "execute",
  "action_parameters": {
    "id": "<MANAGED_RULESET_ID>",
    "version": "latest",
    "overrides": {
      "rules": [
        {
          "id": "<MANAGED_RULE_ID>",
          "enabled": true
        }
      ],
      "categories": [
        {
          "category": "simple",
          "enabled": true,
          "action": "log"
        }
      ]
    }
  }
}'

3. 启用所有规则

要启用整个规则集或启用所有规则,请发送以下请求。

启用所有规则的示例请求bash
curl --request PATCH \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/{root_kind_ruleset}/rules/{root_kind_rule} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "expression": "true",
  "action": "execute",
  "action_parameters": {
    "id": "<MANAGED_RULESET_ID>",
    "version": "latest",
    "overrides": {
      "enabled": true
    }
  }
}'

4. 删除规则集

要删除规则集,请参阅删除规则集中的规则

Cloudflare 仪表板

您还可以使用仪表板来启用托管规则集。

  1. 在 Cloudflare 仪表板中,前往 Firewall Policies (防火墙策略) 页面。
  2. Managed rulesets(托管规则集) 选项卡中,选择 Deploy managed ruleset(部署托管规则集)
  3. 页面将刷新并向您显示由 Cloudflare 配置的、适用于您账户的规则集。通过 Manage(管理) 选择您想要的规则集。如果未显示您想要的规则集,请联系您的客户经理以获取所有 Network Firewall 托管规则集的列表。
  4. Ruleset configuration(规则集配置) 下,从下拉菜单中配置 Ruleset action(规则集操作)。Cloudflare 建议您在决定采取何种操作之前,先将此设置更改为 Log(记录),以评估该规则集对您流量的影响。有关更多信息,请参阅重写托管规则集
  5. 同样在 Ruleset configuration(规则集配置) 下,为 Ruleset status(规则集状态) 下拉菜单选择 Enabled (已启用)。这将对规则集中所有规则的默认状态应用重写。
  6. 选择 Save(保存) 以部署不带规则级重写的 Network Firewall 托管规则集。

添加规则级重写

应用规则级重写允许您自定义托管规则集的行为。如果您实施了 Cloudflare 上述针对规则集配置的建议,规则将被设置为 Log 操作和 Enabled 状态。

另一方面,如果您在上一步中没有应用 Cloudflare 的建议,规则集将在应用其所有默认值的情况下实施。

要在仪表板中添加规则级重写:

  1. 在 Cloudflare 仪表板中,前往 Firewall Policies (防火墙策略) 页面。
  2. Managed rulesets(托管规则集) 选项卡中,找到您要添加规则重写的 Network Firewall 托管规则集,然后选择 Manage(管理)
  3. 选择 Browse rules(浏览规则)
  4. 在您需要更改的规则中,从下拉菜单中选择一个 Action(操作) 以更改其操作,或使用切换开关来禁用或启用该规则。
  5. 选择 Next(下一步)
  6. 选择 Save(保存)

Cloudflare 仪表板现在应该向您显示您已设置的规则级重写。

删除 Network Firewall 托管规则集

  1. 在 Cloudflare 仪表板中,前往 Firewall Policies (防火墙策略) 页面。
  2. Managed rulesets(托管规则集) 选项卡中,找到您要删除的 Network Firewall 托管规则集,然后选择 Manage(管理)
  3. 选择 Delete deployment(删除部署)

您的 Cloudflare Network Firewall 托管规则集现在已被删除。

这篇文档对您有帮助吗?