通过托管规则集,您可以快速部署由 Cloudflare 维护的预构建防火墙规则。您可以使用 Cloudflare Network Firewall 来控制启用哪些托管规则。
除了启用托管规则集之外,您还可以添加并启用自定义策略。请参阅添加策略。
要启用或禁用规则,您需要指定应重写(override)哪些属性。重写是在 Managed 阶段的根规则集(控制哪些托管规则处于活动状态的顶级规则集)中配置的。此根规则集只能包含一条规则,但该单条规则可以针对不同的托管规则包含多个重写。
Cloudflare 建议首先将 action 设置为 log 以评估影响,然后再切换为阻止(block)。
您有多种启用规则的选项:
- 选择单个规则并启用它。
- 通过在
magic-transit-phase中按类别启用以启用多个规则。 - 启用整个规则集。
要创建托管规则集,您必须首先构建一个包含以下内容的请求:
managed_ruleset_id:包含您要启用规则的 Managed 阶段 Managed 类型规则集的 ID。要找到此 ID,请使用GET /accounts/{account_id}/rulesets?kind=managed&phase=magic_transit_managed列出可用的托管规则集。managed_rule_id:您要启用规则的 ID。
此外,您还需要想要重写的属性。您可以重写的属性包括:
enabled:此值可以设置为true或false。当设置为true时,如果没有重写操作,该规则将匹配数据包并应用规则'的默认操作。当设置为false时,该规则将被禁用,且不匹配任何数据包。action:此值可以设置为log,以便该规则仅产生日志,而不是应用规则的默认操作。
规则的 enabled 和 action 属性在 Managed 阶段的 Managed 类型规则集中设置。目前,Managed 阶段中的所有规则默认都是禁用的。
下面的示例包含一个针对 Managed 阶段 Managed 类型规则集的请求。
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"
}
]
}
}
}
]
}'因为根规则集只能包含一条规则,所以当您想启用其他托管规则时,必须对该现有规则进行 PATCH 操作(而不是添加新规则)。
在第一步示例的基础上,下面的示例启用了一个类别,以便选择多条规则而不是单条规则。该类别将被设置为 log 模式,这意味着规则可以产生日志,但不会接收或丢弃数据包。
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"
}
]
}
}
}'要启用完整的规则集或启用所有规则,请发送以下请求。
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
}
}
}'要删除规则集,请参阅删除规则集中的规则。
您还可以使用仪表板来启用托管规则集:
- 登录到 Cloudflare 仪表板 ↗,然后转到 Networking(网络) > Firewall policies(防火墙策略)。
- 选择 Managed rulesets(托管规则集)。这是仪表板列出您所有托管规则的位置。
- 要启用规则,请开启 Status(状态)。
要编辑规则:
- 登录到 Cloudflare 仪表板 ↗,然后转到 Networking(网络) > Firewall policies(防火墙策略)。
- 选择 Managed rulesets(托管规则集)。这是仪表板列出您所有托管规则的位置。
- 选择三个点 > Edit(编辑)。
- 进行必要的更改,然后选择 Save(保存)。
要查看关于规则的基本信息:
- 登录到 Cloudflare 仪表板 ↗,然后转到 Networking(网络) > Firewall policies(防火墙策略)。
- 选择 Managed rulesets(托管规则集)。这是仪表板列出您所有托管规则的位置。
- 找到您的托管规则,选择三个点 > View(查看)。