workspace/skills/fwrule-analyzer/SKILL.md
Multi-vendor firewall rule analysis — overlap detection, shadowing, conflict identification, duplication checking across PAN-OS, ASA, FTD, IOS/IOS-XE, IOS-XR, Check Point, SRX, Junos, Nokia SR OS, and Fortinet FortiOS/FortiGate. Use when validating firewall rule changes, auditing rulesets for conflicts, or normalizing vendor configs to a common schema.
npx skillsauth add automateyournetwork/netclaw fwrule-analyzerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
uv run fwrule-mcp)git clone + uv sync (or pip install -e .)fastmcp>=2.0, pydantic>=2.0, Python 3.11+| Tool | What It Does |
|------|-------------|
| analyze_firewall_rule_overlap | Compare a candidate rule against an existing ruleset using 6-dimensional set intersection (zones, addresses, ports, protocols, actions, applications). Detects overlaps, shadowing, conflicts, and duplicates. Supports two input modes: vendor-native config via built-in parsers, or pre-normalized JSON. |
| parse_policy | Convert vendor-native firewall configurations into a standardized JSON schema. Enables inspection of parser output — rule counts, object resolution, address expansion — before running overlap analysis. |
| list_supported_vendors | Enumerate all supported firewall vendors, their aliases, configuration formats, and explain how to use normalized JSON input to bypass vendor-specific parsers. |
| Vendor | Config Format | Versions | Identifiers |
|--------|---------------|----------|-------------|
| Palo Alto PAN-OS | XML export | 9.x–11.x | panos, paloalto, panorama |
| Cisco ASA | show running-config | 9.x+ | asa, cisco-asa |
| Cisco FTD | FMC JSON | 6.x–7.x | ftd, firepower, fmc |
| Cisco IOS/IOS-XE | show running-config | 12.x–17.x | ios, iosxe, cisco-ios |
| Cisco IOS-XR | show running-config | 6.x+ | iosxr, ios-xr, xr |
| Check Point | JSON rulebase | R80.x–R82.x | checkpoint, cp, check-point |
| Juniper SRX | display set | 19.x+ | juniper, srx |
| Juniper Junos | display set | 18.x+ | junos, mx, ptx, qfx |
| Nokia SR OS | MD-CLI format | 20.x+ | sros, nokia, sr-os |
| Fortinet FortiOS | Full backup config | 5.x–7.x | fortios, fortigate, fortinet, forti, fgt, fmg |
⚠️ FortiOS parser contributed by SIA/NetClaw (Airowire Networks). PR open at AutomateIP/fwrule-mcp#1. Install from the fork until merged upstream:
pip install git+https://github.com/akshaysiddaram/fwrule-mcp.git
| Concept | What It Means | |---------|---------------| | Overlap | Candidate rule matches traffic already handled by existing rules | | Shadowing | Candidate rule is fully covered by a higher-priority existing rule — it will never match | | Conflict | Rules match the same traffic but have different actions (allow vs deny) | | Duplication | Candidate rule is functionally identical to an existing rule | | 6-Dimensional Analysis | Comparison across source/dest zones, source/dest addresses, services/ports, protocols, actions, and applications | | Normalized JSON | Vendor-agnostic rule schema with standardized fields (id, position, enabled, action, zones, addresses, services, applications) |
Pass raw vendor configuration text and let the built-in parsers normalize it:
vendor: Vendor identifier (e.g., panos, asa, ftd, ios, checkpoint, srx, junos, nokia, fortios)ruleset_payload: Complete firewall config in vendor formatcandidate_rule_payload: Single rule in vendor formatos_version: Optional version hint for parser selectioncontext_objects: Supplemental object definitions as JSONBypass parsers when structured data is already available:
existing_rules: JSON array of normalized rule objectscandidate_rule: Single normalized JSON rule objectWhen adding a new firewall rule to a policy:
parse_policy with vendor config — normalize to JSON, verify rule count and object resolutionanalyze_firewall_rule_overlap — check the proposed rule against the existing rulesetWhen auditing firewall rules across multiple platforms:
list_supported_vendors — confirm supported platformsparse_policy for each vendor config — normalize all rulesanalyze_firewall_rule_overlap against vendor B's normalized rulesWhen cleaning up an existing firewall policy:
parse_policy — normalize the full rulesetanalyze_firewall_rule_overlap — check the rule against all others in the same policy| Skill | How They Work Together |
|-------|----------------------|
| fmc-firewall-ops | FMC policy search + fwrule overlap analysis on retrieved rules |
| paloalto-panorama | Panorama policy export + fwrule cross-policy analysis |
| pyats-security | Device ACL retrieval via pyATS + fwrule overlap detection |
| pyats-asa-firewall | ASA config retrieval + fwrule ASA parser for rule normalization |
| fortimanager-ops | FortiManager policy export + fwrule FortiOS parser for cross-VDOM analysis |
| servicenow-change-workflow | ServiceNow CR gating + fwrule validation before rule deployment |
| github-ops | Commit firewall rule change analysis results to Git |
| gait-session-tracking | Audit trail for all firewall rule analysis operations |
testing
Human-in-the-loop escalation via HumanRail — route low-confidence agent decisions, pre-destructive operation approvals, and ambiguous incident tickets to real human engineers. Human answers are verified and returned as structured output. Workers are paid via Lightning Network. Use when the agent is uncertain, when a destructive change needs explicit human sign-off beyond a ServiceNow CR, or when an ambiguous ticket requires human triage before automated handling.
testing
Manage EVE-NG node lifecycle. Use when listing nodes, checking runtime state, creating or deleting nodes, starting or stopping nodes or whole labs, verifying node details, or wiping node NVRAM back to factory defaults.
development
Manage EVE-NG labs and platform inventory. Use when listing labs, checking lab metadata, creating or deleting labs, importing or exporting lab archives, checking EVE-NG health or auth, or verifying available node images before build work.
tools
Execute live CLI commands on running EVE-NG nodes over telnet console. Use when running show commands, making live config changes, verifying protocol state, testing connectivity, checking console readiness, or interacting with IOS, Junos, VPCS, EOS, or NX-OS nodes.