跳转到内容
搜索文档

添加策略

最后更新 查看 MarkdownAgent 设置

根规则集(root ruleset)是保存您所有防火墙策略的顶级容器。您可以通过仪表板或 账户规则集 API 来检查现有的根规则集。如果您是 Magic Transit 的新客户,您的账户可能尚未创建根规则集。要查看根规则集的示例,请查阅 Cloudflare Network Firewall Terraform 文档

默认情况下,您最多可以创建 200 条策略。如果需要更高的限制,请联系您的账户团队。我们建议您创建 IP 地址列表以在策略中引用,以简化策略管理。

添加策略

  1. 登录 Cloudflare 仪表板,转到 Networking(网络) > Firewall policies(防火墙策略)
  2. 选择 Add a policy(添加策略)
  3. 填写新策略的信息。所有现有策略仅适用于 IPv4 流量。在填写 Value(值) 时,您可以使用 托管 IP 列表
  4. 完成后,选择 Add new policy(添加新策略)

创建禁用的策略

当您添加新策略时,策略默认处于 **Enabled(启用)**状态。

要创建处于 **Disabled(禁用)**状态的策略,请遵循上面添加策略中的步骤,并将 Enabled(已启用) 切换为 off(关闭)。当策略处于禁用状态时,策略将不会执行任何操作,直到将其设置为 Enabled(已启用)

要禁用现有策略,请从 Custom policies(自定义策略) 选项卡中,将 Enabled(已启用) 切换键设置为 off。

更新策略

  1. 登录 Cloudflare 仪表板,转到 Networking(网络) > Firewall policies(防火墙策略)
  2. 找到您要编辑的策略,选择三个点 > Edit(编辑)
  3. 使用您的更改更新策略,然后选择 Save(保存)

删除现有策略

  1. 在列表中找到您要删除的策略。
  2. 在行尾,选择 Delete(删除)
  3. 再次选择 Delete(删除) 以确认删除。

API

下面,您可以找到如何使用 API 执行某些操作的示例。

Skip 操作

skip 操作告诉防火墙停止评估当前规则集中匹配的流量,从而有效地允许其通过。规则集中的规则按从上到下的顺序进行评估。在下面的示例中,skip 规则必须出现在 block 规则之前,以便匹配的流量(端口 8080)在应用全部阻断(catch-all block)之前被允许通过。

curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "name": "Example ruleset",
  "kind": "root",
  "phase": "magic_transit",
  "description": "Example ruleset description",
  "rules": [
    {
      "action": "skip",
      "action_parameters": { "ruleset": "current" },
      "expression": "tcp.dstport in { 8080 } ",
      "description": "Allow port 8080"
    },
    {
      "action": "block",
      "expression": "tcp.dstport in { 1..65535 }",
      "description": "Block all TCP ports"
    }
  ]
}'

阻止国家/地区

下面的示例通过在 ISO 3166-1 Alpha 2 格式中使用其 2 字母国家代码,阻止来自巴西的源或目的 IP 地址的所有数据包。

curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "name": "Example ruleset",
  "kind": "root",
  "phase": "magic_transit",
  "description": "Example ruleset description",
  "rules": [
    {
      "action": "block",
      "expression": "ip.src.country == \"BR\"",
      "description": "Block traffic from Brazil"
    }
  ]
}'

使用 IP 列表

Cloudflare Network Firewall 支持在 ip.srcip.dst 字段的表达式中使用列表。支持的列表为:

  • $cf.anonymizer —— 匿名化代理
  • $cf.botnetcc —— 僵尸网络命令与控制通道
  • $cf.malware —— 恶意软件来源
  • $<IP_LIST_NAME> —— 账户级别 IP 列表的名称
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "name": "Example ruleset",
  "kind": "root",
  "phase": "magic_transit",
  "description": "Example ruleset description",
  "rules": [
    {
      "action": "block",
      "expression": "ip.src in $cf.anonymizer",
      "description": "Block traffic from anonymizer proxies"
    }
  ]
}'

后续步骤

有关如何编写规则表达式的更多信息,请参阅构建表达式

这篇文档对您有帮助吗?