Token导航 LogoToken导航TokenDH.com
Fwrule MCP logo
安全风控stdio官方级别未说明来源级核验

Fwrule MCP

MCP Server

一款用于分析多厂商防火墙策略中规则重叠、重复、遮蔽和冲突的服务器。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
安全Python开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AutomateIP

提供方

AutomateIP

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run pytest

详细介绍

FWRule MCP——防火墙规则分析器

一个MCP服务器,用于分析跨多供应商防火墙策略的防火墙规则重叠、重复、阴影和冲突。

支持的供应商

供应商格式版本
Palo Alto PAN-OS/全景XML配置导出9.x-11.x
思科ASAshow running-config 文本9.x+
思科FTD从FMC导出JSON6.x-7.x
思科IOS/IOS-XEshow running-config 文本12.x-17.x
思科IOS-XRshow running-config 文本6.x+
检查点JSON show-access-rulebaseR80.x-R82.x
Juniper SRXdisplay set 格式19.x+
Juniper Junos(MX/PTX/QFX)display set 格式18.x+
诺基亚SR操作系统MD-CLI信息/平面格式20.x+
Fortinet FortiOS/FortiGateshow full-configuration 文本6.x-7.x

快速开始

# Install
uv sync

# Run tests
uv run pytest

# Start the MCP server
uv run fwrule-mcp

MCP工具

analyze_firewall_rule_overlap

分析候选防火墙规则是否与现有规则集重叠。支持两种输入模式。

模式1——供应商本地配置 (内置解析器):

  • vendor --供应商标识符(panos, asa, ftd, ios, iosxr, checkpoint, juniper, junos, sros, fortios)
  • ruleset_payload --以供应商原生格式完成防火墙配置
  • candidate_rule_payload --供应商原生格式的单一候选规则
  • os_version --可选操作系统版本字符串
  • context_objects --可选JSON,带有补充对象定义

模式2——预规范化JSON (调用者提取结构化规则):

  • existing_rules --JSON字符串:规范化规则对象数组
  • candidate_rule --JSON字符串:单个规范化规则对象

共享:

  • candidate_position --可选的基于1的预期插入位置

规范化规则架构:

{
  "id": "rule-1",
  "position": 1,
  "enabled": true,
  "action": "permit",
  "source_zones": ["trust"],
  "destination_zones": ["untrust"],
  "source_addresses": ["10.0.0.0/24", "192.168.1.0/24"],
  "destination_addresses": ["any"],
  "services": [{"protocol": "tcp", "ports": "443"}],
  "applications": ["any"]
}

检测:

  • 完全重复
  • 影子规则(候选人永远不会解雇)
  • 行动冲突(交通重叠、行动相反)
  • 部分重叠
  • 超集/子集关系

parse_policy

解析供应商本地防火墙配置并返回规范化的JSON规则。在运行重叠分析之前,使用此功能检查内置解析器提取的内容。

  • vendor --供应商标识符
  • ruleset_payload --完成防火墙配置
  • os_version --可选操作系统版本字符串
  • context_objects --可选JSON,带有补充对象定义

返回被接受的相同规范化架构 analyze_firewall_rule_overlap.

batch_analyze_overlap

在一次调用中,根据同一现有规则集分析多个候选规则。比打电话更有效率 analyze_firewall_rule_overlap 多次——现有规则被解析一次,并为每个候选者重用。

  • existing_rules --规范化规则对象数组(来自 parse_policy 输出)
  • candidate_rules --要分析的候选规则对象数组

退货 {"success": true, "results": [{"candidate_id": "...", ...analysis result...}, ...]}.

list_supported_vendors

列出所有支持的防火墙供应商及其格式要求。

测试

# Full test suite
uv run pytest

# Mock payload tests (vendor parsers)
uv run pytest tests/test_mock_payloads.py -v

# Normalized input tests
uv run pytest tests/test_normalized_input.py -v

# Testing agent with formatted report
uv run python tests/test_agent.py

# Single vendor / scenario
uv run python tests/test_agent.py --vendor panos --scenario conflict --verbose

建筑

MCP Client Request
       │
       ├── Mode 1: vendor + raw config
       │         │
       │         v
       │    Vendor Parser (plugin registry)
       │    [PAN-OS │ ASA │ FTD │ IOS │ IOS-XR │ CP │ SRX │ Junos │ SR OS │ FortiOS]
       │         │
       │         v
       │    Normalization Layer (object resolution, address expansion)
       │         │
       │         └──────────────┐
       │                        v
       ├── Mode 2: normalized JSON ──> Schema Validation
       │                        │
       │                        v
       └──────────────────> Analysis Engine (6-dimension set intersection)
                                │
                                v
                          Result Generator
                                │
                                v
                       Compact JSON Response

许可证

Apache 2.0

______________________________________________________________________

附录:为什么有两种输入模式?

此MCP服务器专为大型防火墙规则集的自动合规性检查而设计,在这些规则集中,误报和漏报会产生真正的安全后果。该架构平衡了两个相互竞争的问题:

内置解析器的情况(模式1)

防火墙配置包含 命名对象图 --规则可以引用 PROD-SERVERS,这是一个包含以下内容的地址组 WEB-TIERDB-TIER,每个引用CIDR。正确解决这些问题需要具有循环检测和保守回退的递归扩展(不可求解的引用被视为 any 以避免假阴性)。内置解析器以确定性的方式执行此操作。通过推理实现这一点的LLM偶尔会错过嵌套的组成员或产生幻觉的解决方案——这对安全策略决策很重要。

归一化输入的情况(模式2)

供应商解析器是脆弱性的来源。每个解析器包含约400行特定于格式的代码,当供应商操作系统版本更改输出格式时,这些代码可能会中断。我们已经看到PAN-OS解析器中的错误(包装配置中的XML元素选择错误)。当解析器的格式错误时,分析引擎会产生不正确的结果,调用者无法知道。

混合解决方案

模式2(标准化JSON)在保持正确性的同时解决了脆弱性问题:

  • 当调用者已经拥有结构化数据时 (例如,从REST API,或者当AI代理可以可靠地提取字段时),它完全绕过脆弱的解析器,并将解析的地址直接发送到分析引擎。
  • 当调用者有原始的CLI/config输出时,模式1的解析器处理复杂的提取和对象解析。
  • parse_policy 弥合差距 --调用者可以检查解析器提取的内容,验证规则计数和地址解析,并决定是信任解析器输出还是手动重新提取。

分析引擎——执行CIDR算法、端口范围交集和多维集比较的部分——是不可替代的价值。它与供应商无关,具有确定性,并且经过充分测试。解析器是一个便利层;规范化的模式是真正的API表面。

目录标签

目录标签

安全Python开发工具防火墙分析本地部署网络安全规则冲突检测多厂商支持自动化合规检查

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP