firewall-networking

A guide to controlling which network traffic can reach or leave services on Control Plane, including rules based on IP ranges, hostnames, locations, or request headers.

In plain words
What is it for?
Use it to configure inbound and outbound firewall rules, block IPs, allow specific CIDR ranges, restrict by country, route by headers, and protect internal endpoints.
Why use it?
It helps prevent unwanted access and makes service-to-service connections explicit. It also explains how firewall changes affect running workloads.

Skill for Claude CodeCodex

Part of the cpln plugin — 30 skills, 2 commands, 2 agents, 1 hook, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/controlplane-com/ai-plugin/firewall-networking
Any agent
npx skills add controlplane-com/ai-plugin --skill firewall-networking
Clone the repo
git clone --depth 1 https://github.com/controlplane-com/ai-plugin

Made for: Claude Code, Codex.

Or install cpln, the plugin that ships this one along with the rest of its 30 skills, 2 commands, 2 agents, 1 hook, 1 MCP server.

Per session 53 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,870 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00053 $0.02870
Opus 5 $0.00026 $0.01435
Sonnet 5 $0.00011 $0.00574
Haiku 4.5 $0.00005 $0.00287

Measured 3d ago against content hash 7ee3f5f29a86, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

firewall-networking scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

3. Probe inbound with `curl` from an allowed and a blocked vantage. For an outbound probe from inside the container, use the `cpln` CLI after reading the `cpln` skill.
plugins/cpln/skills/firewall-networking/SKILL.md · 178 lines

How it starts

The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Firewall & Networking

Tool availability: some MCP tools named here live in the full toolset profile — if one is not advertised on this connection, tell the user to reconnect the MCP server with ?toolsets=full (or use the cpln CLI fallback). Reads work on every profile via the generic list_resources / get_resource tools; delete_resource is on every profile except readonly.

Deep detail for spec.firewallConfig and the enforcement model behind it; the workload skill owns the summary (deny-by-default, exposure decided at create time, LB picker). Set firewallConfig with create_workload / update_workload — or public: true, the shortcut that opens inbound AND outbound to 0.0.0.0/0 (mutually exclusive with an explicit firewallConfig). A firewall change creates a new deployment version — a rolling replace, live in about a minute (vm workloads are the exception: firewall updates apply in place without restarting the VM).

How rules are enforced

Inbound is checked per request at the mesh sidecar. It counts as fully open only when inboundAllowCIDR contains the literal 0.0.0.0/0 AND inboundBlockedCIDR is empty; anything else is allow-list mode. Blocked beats allowed; a bare IP means /32. Header and geo filters apply to HTTP traffic only — tcp-protocol ports are CIDR-filtered at the connection level instead.

Outbound has two separate paths, which is why CIDR rules beat hostname rules:

  • CIDR path — traffic to outboundAllowCIDR ranges bypasses the sidecar and exits directly, on ALL ports unless outboundAllowPort is set.
  • Hostname path — everything else transits the sidecar, which only admits outboundAllowHostname entries, matched by Host header (HTTP) or TLS SNI, on ports 80, 443, and 445 (SMB) by default.
  • outboundBlockedCIDR is subtracted at the network layer and beats both paths — an allowed hostname that resolves into a blocked range still fails.
  • Outbound is fully open only with the literal 0.0.0.0/0 in outboundAllowCIDR.

Read the full file on GitHub · 178 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 178 lines · 53 tokens per session scan A 7ee3f5f29a86

Subscribe to this mod's changes

firewall-networking is a skill published in the GitHub repository controlplane-com/ai-plugin (10 stars, last pushed 9d ago), licensed MIT. It adds 53 tokens to every session and 2,870 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

rustfs-release-publish

Run the end-to-end RustFS console gate, version bump, preview validation, human confirmation, and final-tag publication pipeline. Use only when the user explicitly asks to release or publish a RustFS version (发版/发布).

rustfs/rustfs · 52 tokens

rust-code-quality

Run a focused Rust quality review when the user requests one, when reviewing a Rust PR/commit, or when another selected review workflow delegates Rust-specific checks. Do not auto-load for every implementation edit.

rustfs/rustfs · 44 tokens

pr-review

Review a GitHub PR end-to-end from a URL or number — fetch metadata, inspect the diff, run multi-role adversarial review, check CI status, and post the review comment. Use when the user provides a PR link and asks to review it.

rustfs/rustfs · 55 tokens

issue-triage

Triage a GitHub issue — determine if it is already fixed, needs implementation, or should be closed. Searches related commits and PRs, verifies implementation status, and posts a triage comment or closes the issue. Use when the user provides an issue URL and asks whether it can be closed or needs work.

rustfs/rustfs · 68 tokens

security-advisory-lessons

Perform a dedicated RustFS security/advisory review for authn/authz, IAM, RPC trust, paths, secrets, browser isolation, encryption, Object Lock, or other security boundaries. Use only when the user requests a security/advisory review or an adversarial review explicitly escalates to the full advisory map; do not…

rustfs/rustfs · 83 tokens

tier-debug

Debug ILM tiering / lifecycle transition issues — NoSuchVersion on tier GET, restore failures, xl.meta inspection, remote-tier versionId tracing. Use when investigating tiered/transitioned objects, warm backends, or transition metadata.

rustfs/rustfs · 51 tokens