デフォルトでは、作成できるポリシーは最大 200 件です。ポリシー管理を簡単にするため、ポリシー内から参照する IP アドレスのリストを作ることを推奨します。
- Cloudflare One ↗ ダッシュボードで Firewall policies > Custom policies を開きます。
- Add a policy を選択します。
- 新しいポリシーの情報を入力します。既存のポリシーはすべて IPv4 に適用されます。Value を埋めるときは、マネージドの IP リスト ↗ を使えます。
- 入力が終わったら、Add new policy を選択します。
新しいポリシーを追加すると、デフォルトで Enabled になります。
Disabled のポリシーを作るには、上記の ポリシーを追加する の手順に従い、Enabled をオフにします。無効状態のポリシーは、Enabled にするまでアクションを実行しません。
既存のポリシーを無効にするには、Custom policies タブで Enabled をオフにします。
- Cloudflare One ↗ ダッシュボードで Firewall policies > Custom policies を開きます。
- 編集するポリシーを探し、三点リーダー > Edit を選択します。
- 変更を反映し、Save を選択します。
- 一覧から削除するポリシーを探します。
- 行の末尾で Delete を選択します。
- 削除を確定するため、もう一度 Delete を選択します。
次に、API で特定の操作を行う例を示します。
次の例では、すべての TCP ポートをブロックしつつ、skip アクションでポート 8080 だけを許可します。
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"
}
]
}'