← ClaudeAtlas

cloudflare-block-countrieslisted

Block specific countries via Cloudflare WAF Custom Rules using the Cloudflare API. Use when user wants to geo-block traffic, block countries in Cloudflare, set up WAF country rules, or mentions blocking regions. Handles both creating new rulesets and updating existing ones.
oleg-koval/agent-skills · ★ 2 · AI & Automation · score 74
Install: claude install-skill oleg-koval/agent-skills
# Cloudflare Country Block via WAF Custom Rules Block traffic from specific countries using Cloudflare WAF Custom Rules and the Cloudflare API. ## Prerequisites - Cloudflare API Token with `Zone:Rulesets:Edit` permission - Zone ID for the target domain - `curl` and `jq` installed ## Workflow ### 1. Get Zone IDs ```bash curl -s -X GET \ "https://api.cloudflare.com/client/v4/zones?account.id=YOUR_ACCOUNT_ID&status=active" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" | jq '.result[] | {name: .name, id: .id}' ``` ### 2. Check Existing Custom Firewall Rulesets ```bash curl -s -X GET \ "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/rulesets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" | \ jq '.result[] | select(.phase == "http_request_firewall_custom")' ``` If the output is empty — no existing ruleset. Go to **3a**. If a ruleset exists, note its `id` and go to **3b**. ### 3a. Create NEW Ruleset with Block Rule ```bash curl -s -X POST \ "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/rulesets" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ --data '{ "name": "default", "description": "WAF Custom Rules", "kind": "zone", "phase": "http_request_firewall_custom", "rules": [ { "action": "block", "description": "Block traffic from sanctioned countries", "enabled": true, "