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.
npx skills add HermeticOrmus/LibreSecOps-Claude-Code --skill firewall-patternsgit clone --depth 1 https://github.com/HermeticOrmus/LibreSecOps-Claude-CodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hermeticormus/libresecops-claude-code/firewall-patterns)<a href="https://agentmods.dev/skills/hermeticormus/libresecops-claude-code/firewall-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/libresecops-claude-code/firewall-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hermeticormus/libresecops-claude-code/firewall-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/libresecops-claude-code/firewall-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00045 | $0.02313 |
| Opus 5.5 | $0.00018 | $0.00925 |
| Sonnet 5.5 | $0.00009 | $0.00463 |
| Haiku 4.5 | $0.00005 | $0.00231 |
Grade A, and why
firewall-patterns scanned grade A with 0 findings 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 12d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Firewall Patterns
iptables/nftables rulesets, cloud security group patterns, and firewall design principles.
Knowledge Base
Firewall Processing Models
Different firewalls process rules differently. Understanding the model is critical for correct configuration:
| Firewall | Processing | Implication |
|---|---|---|
| iptables | Sequential (first match wins) | Rule order matters. A broad ACCEPT before a specific DROP makes the DROP unreachable. |
| nftables | Sequential within chains, but supports sets and maps for efficiency | More flexible than iptables, same sequential logic. |
| AWS Security Groups | All rules evaluated, any allow = allow. No deny rules. | Cannot deny specific IPs. Denies require NACLs. Stateful. |
| AWS NACLs | Sequential by rule number (lowest first). Has explicit deny. | Stateless -- must allow return traffic explicitly. |
| Azure NSGs | Priority-based (lowest number = highest priority) | Has deny rules. Stateful. Default rules at priority 65000+. |
| GCP Firewall Rules | Priority-based (lowest number = highest priority) | Has deny rules. Implied deny-all ingress, allow-all egress. |
Stateful vs Stateless
- Stateful (iptables with conntrack, security groups): Tracks connections. If outbound is allowed, the return traffic is automatically allowed.
- Stateless (NACLs, basic nftables without conntrack): Each packet evaluated independently. Must explicitly allow return traffic (ephemeral ports).
Patterns
Pattern 1: Linux Server Baseline (nftables)
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Allow established/related connections
ct state established,related accept
# Drop invalid packets
ct state invalid drop
# Allow loopback
iif "lo" accept
# Allow ICMP (ping) with rate limiting
ip protocol icmp icmp type echo-request limit rate 5/second accept
ip6 nexthdr icmpv6 icmpv6 type echo-request limit rate 5/second accept
# Allow ICMPv6 neighbor/router discovery (required for IPv6)
ip6 nexthdr icmpv6 icmpv6 type {
nd-neighbor-solicit,
nd-neighbor-advert,
nd-router-solicit,
nd-router-advert
} accept
# Allow SSH from management network only
ip saddr 10.0.1.0/24 tcp dport 22 accept
# Allow HTTP/HTTPS (if web server)
tcp dport { 80, 443 } accept
# Log dropped packets (rate limited to prevent log flooding)
limit rate 5/minute log prefix "[nftables-drop] " level warn
# Default policy: drop (set above)
}
chain forward {
type filter hook forward priority 0; policy drop;
# Drop all forwarded traffic unless this is a router/gateway
}
chain output {
type filter hook output priority 0; policy drop;
# Allow established/related
ct state established,related accept
# Allow loopback
oif "lo" accept
# Allow DNS
tcp dport 53 accept
udp dport 53 accept
# Allow HTTP/HTTPS outbound
tcp dport { 80, 443 } accept
# Allow NTP
udp dport 123 accept
# Allow SSH outbound (for git, deployments)
tcp dport 22 accept
# Log dropped outbound
limit rate 5/minute log prefix "[nftables-egress-drop] " level warn
}
}
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.
- 12d ago Changed · +5 lines · +45 tokens per session f6542e0b162b
- 1mo ago First seen · 270 lines · 0 tokens per session scan A 49743e2766fc
firewall-patterns is a skill published in the GitHub repository HermeticOrmus/LibreSecOps-Claude-Code (4 stars, last pushed 9d ago), licensed MIT. It adds 45 tokens to every session and 2,313 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
implementing-devsecops-security-scanning
Integrates Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), and Software Composition Analysis (SCA) into CI/CD pipelines using open-source tools. Covers Semgrep for SAST, Trivy for SCA and container scanning, OWASP ZAP for DAST, and Gitleaks for secrets detection. Activates for…
cloud-iam-deep
Cloud IAM red-team attack chain across AWS, Azure, GCP — focused on EXTERNAL exploitation paths and post-credential-discovery privilege analysis. Covers IAM enumeration (aws iam, az role, gcloud iam), STS/AssumeRole chaining, Azure Managed Identity abuse (via SSRF/leak), GCP service account JSON abuse, IMDSv1/v2…
building-devsecops-pipeline-with-gitlab-ci
Design and implement a comprehensive DevSecOps pipeline in GitLab CI/CD integrating SAST, DAST, container scanning, dependency scanning, and secret detection.
implementing-infrastructure-as-code-security-scanning
This skill covers implementing automated security scanning for Infrastructure as Code (IaC) templates using tools like Checkov, tfsec, and KICS. It addresses detecting misconfigurations in Terraform, CloudFormation, Kubernetes manifests, and Helm charts before deployment, establishing policy-based governance, and…
integrating-dast-with-owasp-zap-in-pipeline
This skill covers integrating OWASP ZAP (Zed Attack Proxy) for Dynamic Application Security Testing in CI/CD pipelines. It addresses configuring baseline, full, and API scans against running applications, interpreting ZAP findings, tuning scan policies, and establishing DAST quality gates in GitHub Actions and GitLab…
implementing-runtime-application-self-protection
Deploy Runtime Application Self-Protection (RASP) agents to detect and block attacks from within application runtime, covering OpenRASP integration, attack pattern detection, and security policy configuration for Java and Python web applications.