firewall-uat

Runs live egress probes inside a clawker container to verify firewall enforcement behavior.

54|6|Updated Jan 7, 2026
One-click install
npx skills add https://github.com/schmitthub/clawker --skill firewall-uat-schmitthub
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: firewall-uat
Source: https://github.com/schmitthub/clawker/tree/main/.agents/skills/firewall-uat
Command: npx skills add https://github.com/schmitthub/clawker --skill firewall-uat-schmitthub

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Golden files and envoy --mode validate only prove a generated firewall config is valid, not that it behaves correctly at runtime. This Skill closes that gap by running live egress probes from inside a clawker agent container whose traffic flows through the real firewall stack (eBPF redirect, Envoy, CoreDNS), catching contract regressions that static validation misses. ## Core Features & Use Cases - Live egress probing: Exercise HTTP, HTTPS, SSH, WebSocket, and DNS egress with in-container tools (curl, ssh, nghttp, h2load, websocat, openssl, gh) to confirm allow/deny behavior against the live Envoy and CoreDNS layers. - Behavioral discriminators: Distinguish DNS-layer blocks (NXDOMAIN), clawker path denies (403 with Forbidden body), Envoy upgrade refusals (empty-body 403), and true upstream reachability using a hard-won observation table. - Adversarial C2 testing: Probe a ngrok-exposed C2 host to verify exfiltration blocks on non-allowlisted hosts, paths, and protocols. - Use Case: After changing the controlplane firewall generator, ask the host operator to add or remove rules with clawker firewall add, then re-probe from inside the container to prove the new rules actually block or allow traffic before declaring the work done. ## Quick Start Run the firewall UAT probes from this container to verify the current egress rules behave as configured.

Frequently Asked Questions about firewall-uat

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test firewall egress rules from inside a container?▼

Run live egress probes with in-container tools like curl, ssh, nghttp, websocat, and openssl against target hosts. Traffic routes through the eBPF redirect, Envoy, and CoreDNS stack, so each probe directly exercises the enforcement path.

Why is envoy --mode validate not enough to verify firewall config?▼

Validation only proves the generated Envoy config is syntactically valid, not that it behaves correctly. A past regression dropped the health listener while golden files and validate passed, causing controlplane bringup to hang on the readiness probe.

What does a 403 with empty body and server envoy header mean?▼

An empty-body 403 with a server: envoy header indicates Envoy refused a WebSocket upgrade on a route without upgrade_configs, not a clawker deny. A clawker host or path deny returns 403 with a Forbidden body instead.

Can I test WebSocket over HTTP/2 through the firewall?▼

No in-container tool drives h2 or h3 Extended CONNECT WebSockets; websocat only supports HTTP/1.1. The h2 and h3 WebSocket paths are only config-confirmable by grepping the generated envoy.yaml for allow_connect settings.

Why does SSH to a blocked host still return a valid response?▼

Any real SSH server completes a valid handshake, so a misroute still returns a valid ssh -T response. Discriminate the true upstream by the banner or remote software version, and confirm distinct Envoy listener ports per opaque host.

Why should I not test egress against a clawker-net container IP?▼

Intra-net traffic between clawker-net containers is intentionally open and not redirected to Envoy, so hitting a sibling container's IP bypasses the firewall by design. Egress tests require a public destination such as the C2's ngrok edge.