workspace/skills/pyats-asa-firewall/SKILL.md
Cisco ASA firewall operations via pyATS — VPN sessions, failover state, interfaces, routing, service policies, resource usage, AnyConnect monitoring. Use when checking ASA failover status, monitoring VPN sessions, auditing ASA security, or troubleshooting AnyConnect connectivity.
npx skillsauth add automateyournetwork/netclaw pyats-asa-firewallInstall 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.
ASA devices in the pyATS testbed with os: asa:
devices:
asa-fw-01:
os: asa
type: firewall
connections:
cli:
protocol: ssh
ip: 10.0.0.10
port: 22
credentials:
default:
username: "%ENV{NETCLAW_USERNAME}"
password: "%ENV{NETCLAW_PASSWORD}"
enable:
password: "%ENV{NETCLAW_ENABLE}"
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"asa-fw-01","command":"<command>"}'
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show version"}'
ASA software version, hardware model, serial number, RAM, flash, license, uptime, last reload reason.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show inventory"}'
Hardware inventory: chassis, modules, SFPs with serial numbers and PIDs.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show resource usage"}'
Per-context resource utilization: connections, xlates, hosts, NAT, routes, ACL elements. Critical for multi-context ASA — identifies contexts approaching resource limits.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show failover"}'
Failover state (Active/Standby), peer state, last failover time, failover reason, stateful failover stats. Check this first on any HA pair.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show failover interface"}'
Failover and stateful failover link status, IP addresses, hello interval, peer monitoring.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show interface ip brief"}'
Compact interface table: interface name, IP address, status (up/down), method.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show interface detail"}'
Full interface details: speed, duplex, MAC, input/output packets/bytes/errors, collision counts, CRC errors.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show interface summary"}'
Summary traffic stats per interface.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show nameif"}'
Maps physical interface names to security zone names (e.g., GigabitEthernet0/0 → outside, GigabitEthernet0/1 → inside). Shows security level per interface.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show route"}'
Full routing table: connected, static, OSPF, EIGRP, BGP routes with next-hop, interface, metric, age.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show arp"}'
ARP cache: interface, IP address, MAC address, age. Cross-reference with NetBox for MAC verification.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show asp drop"}'
Packets dropped by the ASP — categorized by reason: flow-drop, acl-drop, inspect-drop, rpf-violated, no-route, etc. Critical for troubleshooting — reveals why traffic is being blocked.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show context"}'
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show context detail"}'
Multi-context ASA: list all security contexts, allocated interfaces, resource class, admin state. detail shows interface allocation and URL mappings.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show traffic"}'
Per-interface traffic rates: input/output packets/sec and bytes/sec.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show service-policy"}'
Modular Policy Framework hit counts: class-maps, inspect actions, policing, shaping, QoS. Shows connection counts per policy.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn-sessiondb summary"}'
Summary of all active VPN sessions by type: AnyConnect, L2L, WebVPN, clientless, total sessions, peak concurrent.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn-sessiondb"}'
Full VPN session database — all types, user, duration, bytes, encryption.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn-sessiondb anyconnect"}'
AnyConnect SSL VPN sessions: username, duration, bytes tx/rx, IP assignment, tunnel group, encryption, NAC result.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn-sessiondb anyconnect sort inactivity"}'
AnyConnect sessions sorted by inactivity time — useful for identifying idle sessions consuming licenses.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn-sessiondb webvpn"}'
Clientless WebVPN sessions: user, duration, bytes, inactivity.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show vpn load-balancing"}'
VPN cluster load distribution across ASA peers — sessions per member, load percentage.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show crypto ikev2 sa"}'
IKEv2 Security Associations: peer, state (READY), local/remote IDs, encryption, PRF, DH group, lifetime.
pyats_run_show_command '{"device_name":"asa-fw-01","command":"show ip local pool vpn-pool"}'
VPN IP address pool usage: available, in use, range. Monitor for pool exhaustion — running out of addresses blocks new VPN connections.
show version → ASA version, model, uptime, last reload
→ show failover → HA state (Active/Standby), peer health
→ show interface ip brief → interface up/down state
→ show resource usage → context resource utilization
→ show asp drop → dropped packet analysis
→ Severity-sort → GAIT
show vpn-sessiondb summary → total sessions by type, peak concurrent
→ show vpn-sessiondb anyconnect → active AnyConnect users
→ show vpn-sessiondb anyconnect sort inactivity → idle sessions
→ show ip local pool vpn-pool → address pool utilization
→ show vpn load-balancing → cluster distribution
→ show crypto ikev2 sa → IKEv2 tunnel state
→ Flag: pool > 80% used, sessions near license limit, idle > 8h
→ GAIT
show failover → verify Active/Standby state
→ show failover interface → failover link health
→ show interface ip brief → all interfaces match expected state
→ show route → routing table consistent with active role
→ show vpn-sessiondb summary → VPN sessions present on active unit
→ GAIT
show version → verify supported ASA version (cross-reference NVD CVE)
→ show asp drop → analyze drop reasons for anomalies
→ show service-policy → policy hit counts, inspect actions
→ show context detail → verify context isolation (multi-context)
→ show traffic → per-interface throughput baseline
→ GAIT
show vpn-sessiondb anyconnect → verify user session exists
→ show crypto ikev2 sa → IKEv2 tunnel established?
→ show interface ip brief → outside interface up?
→ show route → default route present?
→ show ip local pool vpn-pool → addresses available?
→ show asp drop → packets being dropped for this flow?
→ show service-policy → inspect policies blocking traffic?
→ GAIT
Run ASA health checks across multiple firewalls concurrently:
# ASA Pair - Primary
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"asa-fw-01","command":"show failover"}'
# ASA Pair - Secondary
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"asa-fw-02","command":"show failover"}'
# Remote Site ASA
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"asa-remote-01","command":"show failover"}'
| Skill | Integration | |-------|-------------| | pyats-network | Core pyATS commands for IOS-XE/NX-OS devices alongside ASA firewalls | | pyats-security | CIS benchmark-style audits complement ASA-specific security checks | | pyats-parallel-ops | pCall pattern for fleet-wide ASA health checks | | fmc-firewall-ops | FMC manages FTD; ASA is managed directly — different platforms, similar mission | | ise-posture-audit | ISE NAC results correlate with ASA VPN session NAC status | | netbox-reconcile | Cross-reference ASA interfaces, IP assignments with NetBox | | nvd-cve | Scan ASA version against NVD vulnerability database | | servicenow-change-workflow | Gate ASA config changes behind ServiceNow CRs | | gait-session-tracking | Every ASA command logged in GAIT |
configure terminal or write memory via this skilltools
Zoom meeting intelligence — correlates a live or referenced Zoom meeting discussion against NetClaw's historical meeting record (via the official Zoom Meetings MCP) and today's actual network state. Use when someone in a Zoom meeting references a past discussion or incident ('didn't we have this issue before?'), or asks to search prior meetings for a topic. Does not itself recognize live in-meeting questions — that happens automatically inside zoom-rtms-mcp's own extractor (spec 118) before this skill is ever invoked.
tools
Manage Lantronix out-of-band (OOB) infrastructure via Percepxion central management platform: device inventory, serial port inspection via SLC CLI, firmware compliance, config management, security auditing, and closed-loop incident remediation. Use during outages, maintenance windows, compliance cycles, and AI-assisted automation workflows.
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
Track token consumption, enforce session budgets, and display cost for every NetClaw interaction.