跳转到内容
搜索文档

SaaS 的 WAF

最后更新 查看 MarkdownAgent 设置

Web Application Firewall (WAF) 允许您通过 Cloudflare 创建额外的安全措施。作为 SaaS 提供商,您可以将自定义规则、速率限制规则和托管规则关联到自定义主机名。这可让您更好地控制,保护域名免受恶意流量影响。

作为 SaaS 提供商,您可能希望对不同的自定义主机名应用不同的安全措施。借助 SaaS 的 WAF,您可以创建多套 WAF 配置,并将其应用到不同的自定义主机名集合。这种额外的灵活性和安全性有助于为终端客户的域名提供更优保护。


前提条件

使用 SaaS 的 WAF 之前,您需要创建自定义主机名。如果尚未完成,请参阅 Cloudflare for SaaS 快速入门

您也可以通过 API 创建自定义主机名:

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
Create Custom Hostnamebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"hostname": "<CUSTOM_HOSTNAME>",
		"ssl": {
				"wildcard": false
		}
	}'

1. 将自定义元数据关联到自定义主机名

要对自定义主机名应用 WAF,需要在客户域名与希望附加的 WAF 配置之间建立关联。Cloudflare 的 自定义元数据 产品允许您通过 API 完成此操作。

  1. 查找您的 zone ID,可在 Cloudflare 仪表板中获取。

  2. API Tokens(API 令牌) 页面的 Global API Key(全局 API 密钥) 下查找您的身份验证密钥。

  3. 通过 API 发起 GET 调用以查找自定义主机名 ID:

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
  • SSL and Certificates Read
List Custom Hostnamesbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  1. 规划您的 自定义元数据。该字段完全可自定义。在下面的示例中,我们选择了标签 "security_level",并预期为其分配三个值(low、medium 和 high)。
  1. 使用您的 Cloudflare 邮箱和上面收集的 ID,按以下格式发起 API 调用:

Required API token permissions

At least one of the following token permissions is required:
  • SSL and Certificates Write
Edit Custom Hostnamebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames/$CUSTOM_HOSTNAME_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"custom_metadata": {
				"customer_id": "12345",
				"security_level": "low"
		}
	}'

这会将自定义元数据分配给您的自定义主机名,使其 ID 关联安全标签。

2. 基于标签触发安全产品

  1. 在 WAF 运行的 Ruleset Engine 中定位自定义元数据字段。可用于触发不同产品配置,例如 WAF 自定义规则速率限制规则Transform Rules

  2. 通过 仪表板 或 API 构建规则。以下 API 调用展示了与 "security_level" 为 low 对应的速率限制规则示例。

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_ratelimit/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "block",
						"ratelimit": {
								"characteristics": [
										"cf.colo.id",
										"ip.src"
								],
								"period": 10,
								"requests_per_period": 2,
								"mitigation_timeout": 60
						},
						"expression": "lookup_json_string(cf.hostname.metadata, \"security_level\") eq \"low\" and http.request.uri contains \"login\""
				}
		]
	}'

要通过仪表板构建规则:

  1. 在 Cloudflare 仪表板中,前往 WAF 页面。

    Go to WAF ↗
  2. 根据您的安全目标,按照仪表板上针对自定义规则、速率限制规则或托管规则的说明操作。

  3. 规则生效后,您应能在相应选项卡(自定义规则、速率限制或托管规则)下看到它。

这篇文档对您有帮助吗?