ルートルールセットは、すべてのファイアウォールポリシーを格納する最上位のコンテナーです。既存のルートルールセットがあるかどうかは、ダッシュボードまたは Account rulesets API で確認できます。Magic Transit の新規のお客様は、アカウントにルートルールセットがまだない場合があります。ルートルールセットの例は、Cloudflare Network Firewall の Terraform ドキュメント ↗ を参照してください。
デフォルトでは、作成できるポリシーは最大 200 件です。上限を上げる必要がある場合は、アカウントチームへ問い合わせてください。ポリシー管理を簡単にするため、ポリシー内から参照する IP アドレスのリストを作成することをおすすめします。
- Cloudflare ダッシュボード ↗ にログインし、Networking > Firewall policies を開きます。
- Add a policy を選びます。
- 新しいポリシーの情報を入力します。既存のポリシーはすべて IPv4 トラフィックだけに適用されます。Value を入力するときは Managed IP List を使えます。
- 完了したら Add new policy を選びます。
新しいポリシーを追加すると、ポリシーはデフォルトで Enabled になります。
Disabled のポリシーを作成するには、上記の ポリシーを追加する の手順に従い、Enabled をオフにします。ポリシーが無効のあいだは、Enabled にするまでアクションを実行しません。
既存のポリシーを無効にするには、Custom policies タブで Enabled トグルをオフにします。
- Cloudflare ダッシュボード ↗ にログインし、Networking > Firewall policies を開きます。
- 編集するポリシーを探し、三点メニュー > Edit を選びます。
- ポリシーを更新し、Save を選びます。
- 一覧から削除するポリシーを探します。
- 行の末尾で Delete を選びます。
- 削除を確定するため、もう一度 Delete を選びます。
次に、API で特定の操作を行う例を示します。
skip アクションは、一致したトラフィックについて現在のルールセットの評価を止め、実質的に通過を許可するようファイアウォールに指示します。ルールセット内のルールは上から下へ順に評価されます。次の例では、包括的な block が適用される前に一致トラフィック(ポート 8080)を許可するため、skip ルールを 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"
}
]
}'Cloudflare Network Firewall は、ip.src と ip.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"
}
]
}'ルール式の書き方については、式を作成する を参照してください。