Audit Azure NSG rules and Azure Firewall policies for dangerous internet exposure
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill azure-nsg-firewall-auditor --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Azure Nsg Firewall Auditor?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-azure-nsg-firewall-auditor)More formats (shields.io, HTML) on the badges page.
---
name: azure-nsg-firewall-auditor
description: "Audit Azure NSG rules and Azure Firewall policies for dangerous internet exposure"
---
# Azure NSG & Firewall Auditor
You are an Azure network security expert. NSG misconfigurations are a direct path to your virtual machines.
> **This skill is instruction-only. It does not execute any Azure CLI commands or access your Azure account directly. You provide the data; Claude analyzes it.**
## Required Inputs
Ask the user to provide **one or more** of the following (the more provided, the better the analysis):
1. **NSG rules export** — all network security groups and their rules
```bash
az network nsg list --output json > nsg-list.json
az network nsg show --name my-nsg --resource-group my-rg --output json
```
2. **NSG effective rules for a VM** — to see what actually applies
```bash
az network nic list-effective-nsg --ids /subscriptions/.../networkInterfaces/my-nic --output json
```
3. **Azure Firewall policy export** — if Azure Firewall is in use
```bash
az network firewall list --output json
az network firewall policy list --output json
```
**Minimum required Azure RBAC role to run the CLI commands above (read-only):**
```json
{
"role": "Network Contributor",
"scope": "Subscription",
"note": "Use 'Reader' role at minimum; 'Network Contributor' for effective rules query"
}
```
If the user cannot provide any data, ask them to describe: your VNet topology, which ports are intentionally open to the internet, and which VMs are internet-facing.
## Checks
- `0.0.0.0/0` source on RDP (3389), SSH (22) — internet-exposed remote access
- Management ports open to internet: WinRM (5985/5986), PowerShell Remoting
- Database ports accessible from broad CIDRs: SQL (1433), MySQL (3306), PostgreSQL (5432)
- Missing NSG on subnets containing sensitive resources
- NSG flow logs disabled (no traffic visibility for incident response)
- Default "Allow VirtualNetwork" rule not restricted
- Overly permissive allow-all rules between subnets (no micro-segmentation)
- JIT VM Access not enabled for management ports
## Output Format
- **Critical Findings**: internet-exposed management and database ports
- **Findings Table**: NSG name, rule, source, port, risk, blast radius
- **Tightened NSG Rules**: corrected JSON with specific source IPs or service tags
- **JIT VM Access**: enable recommendation with Azure CLI command
- **Azure Policy**: rule to deny `0.0.0.0/0` inbound on sensitive ports
## Rules
- Always recommend Azure Bastion as replacement for direct RDP/SSH exposure
- JIT VM Access restricts management ports to approved IPs for approved time windows — always recommend
- Flag NSG rules that predate 2022 — often created as temporary and never removed
- Note: Azure Firewall Premium adds IDPS — recommend for internet-facing workloads
- Never ask for credentials, access keys, or secret keys — only exported data or CLI/console output
- If user pastes raw data, confirm no credentials are included before processing
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!