防火墙管理连接器

Cisco Secure Firewall FMC MCP连接器是一个提供高级工具集的服务器,用于管理Cisco Secure Firewall Management Center (FMC)。

  • by sdntechforum
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sdntechforum/FMC-MCP

使用说明

思科安全防火墙FMC MCP连接器

MCP服务器,为思科安全防火墙管理中心(FMC)提供高级工具。核心工具:

  • list_fmc_profiles –发现已配置的FMC实例。
  • find_rules_by_ip_or_fqdn –搜索特定的访问策略。
  • find_rules_for_target –将FTD设备/HA/集群解析为其分配的策略并进行搜索。
  • search_access_rules –使用指标+策略过滤器进行FMC范围内的搜索,包括身份指标(SGT、领域用户/组)。

1.配置FMC访问

单FMC(环境模式)

复制 .env.example 到 .env (或导出env变量)并至少填写:

FMC_BASE_URL=https://<fmc-host>
FMC_USERNAME=<api-user>
FMC_PASSWORD=<password>
FMC_VERIFY_SSL=false

多个FMC(剖面模式)

在下为每个FMC定义一个环境文件 profiles/.复制 profiles/.env.example 转换为新的文件名(例如。, profiles/fmc-north-south.env)并填写:

FMC_PROFILE_ID=fmc-north-south
FMC_PROFILE_DISPLAY_NAME=FMC North-South
FMC_PROFILE_ALIASES=north,north-south,10.0.0.5
FMC_BASE_URL=https://10.0.0.5
FMC_USERNAME=adminapi
FMC_PASSWORD=***
FMC_VERIFY_SSL=false

将服务器指向以下目录:

FMC_PROFILES_DIR=profiles
FMC_PROFILE_DEFAULT=fmc-north-south

当 FMC_PROFILES_DIR 设置后,服务器将自动加载 *.env 该文件夹中的文件,并通过以下方式公开它们 list_fmc_profiles。如果未设置,则使用单个FMC环境变量。

日志记录和HTTP跟踪

日志记录级别可以在活动配置文件(配置文件模式)或根目录中设置 .env (单FMC模式或Docker环境)。默认配置文件的日志记录值在启动时应用。

LOG_LEVEL=DEBUG           # overall app logging
HTTPX_TRACE=1             # log FMC request URLs and status codes
HTTPX_LOG_LEVEL=WARNING   # httpx/httpcore verbosity (default WARNING)

笔记:

  • 在配置文件模式下,将这些文件放入默认配置文件中(命名为 FMC_PROFILE_DEFAULT).
  • 在Docker中,根 .env (或 docker-compose.yml 环境)仍必须提供服务器级设置,如 FMC_PROFILES_DIR, FMC_PROFILE_DEFAULT, MCP_HOST,以及 MCP_PORT.

2.运行MCP服务器

码头工人

docker compose up -d --build

撰写文件需要您 .env 在repo根(或点)中 env_file 在特定的配置文件中)。更改后重建 requirements.txt 或配置文件。

本地Python

您可以直接运行服务器而无需Docker:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m sfw_mcp_fmc.server

通过配置传输 .env (默认为HTTP开启 http://0.0.0.0:8000/mcp 对于本地/dev)。当公开它时,用HTTPS作为前缀,例如 https://<host>:8000/mcp日志显示加载了哪些FMC配置文件。

HTTP承载认证说明

之前描述的README版本 MCP_AUTH_TOKEN,但当前的FastMCP客户端不能可靠地执行它,因此服务器在没有承载身份验证的情况下运行。如果你想继续尝试令牌支持的流,你可以保留env-var并连接代理级身份验证,或者在此仓库中贡献一个工作实现。

3.手动测试

client/test_client.py 是一种交互式线束,它:

  1. 呼叫 list_fmc_profiles 显示可用的FMC,并允许您选择一个。
  2. 使用您的输入(指标、目标、策略过滤器)调用工具。

在MCP服务器启动时从主机运行它:

python client/test_client.py

4.自动化测试

单元测试包括配置解析、配置文件发现和规则搜索引擎(网络+身份指示器)。在本地或容器内执行:

pip install -r requirements.txt   # once per environment
python -m pytest tests

5.与LLM代理商整合

由于服务器遵循MCP协议(通过FastMCP),任何支持MCP的代理平台都可以使用它:

  1. 注册MCP端点(stdio或HTTP)。对于HTTP,请指向 https://<host>:8000/mcp 公开时(使用 http://localhost:8000/mcp 对于本地/dev)。
  2. 从代理人那里,打电话 list_fmc_profiles 选择FMC(通过 id 或别名)。
  3. 调用其他工具 fmc_profile 加上你的指标/过滤器。
  4. 使用结构化的JSON响应来驱动后续步骤(摘要、补救、后续搜索)。

这使得单个MCP实例能够为人类或自动化代理提供多个FMC。