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

pfSense MCP Server

MCP Server

pfSense MCP Server 是一个通过自然语言管理 pfSense 防火墙的服务,提供327种工具和9层安全保障,支持对话式操作。

工具数

19

提示词数

0

GitHub Stars

69

资源数

0
安全PythonClaude自然语言处理Claude

安装说明

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

作者 / 组织

gensecaihq

提供方

gensecaihq

最后核验

2026/5/17 20:20

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

pfSense MCP服务器

](https://github.com/gensecaihq/pfsense-mcp-server/releases/tag/v1.0.0) ![License](LICENSE) ![MCP 2025-11-25](https://modelcontextprotocol.io) ![pfSense REST API](https://pfrest.org/) ![Tests](#testing) ![Tools](#what-you-can-do)

使用自然语言管理pfSense防火墙。327工具。9层安全。一个启动命令。
You: "Block all traffic from 203.0.113.5 on WAN"
Claude: Creates block rule → applies changes → confirms with rollback instructions

为什么存在

管理pfSense防火墙意味着点击web UI选项卡,记住字段名称,并希望您不要错过一条将您拒之门外的规则。有了这个MCP服务器,你可以用简明的英语描述你想要什么,AI处理REST API调用,验证输入,并在任何破坏性的事情发生之前警告你。

是什么让它与众不同:

  • 每一次破坏性操作都需要明确的确认,并向您准确显示会发生什么
  • 每次删除/重新启动之前自动进行配置备份——使用一行回滚命令
  • 速率限制可防止失控的AI循环用规则淹没防火墙
  • 输入净化会阻止每个参数中的命令注入、路径遍历和XSS

快速开始

先决条件: Python 3.10+,pfSense REST API v2软件包 安装

git clone https://github.com/gensecaihq/pfsense-mcp-server.git
cd pfsense-mcp-server
pip install -r requirements.txt
cp .env.example .env
# Edit .env: set PFSENSE_URL, AUTH_METHOD, and credentials

连接到克劳德桌面 --添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pfsense": {
      "command": "python3",
      "args": ["-m", "src.main"],
      "cwd": "/path/to/pfsense-mcp-server",
      "env": {
        "PFSENSE_URL": "https://192.168.1.1",
        "AUTH_METHOD": "basic",
        "PFSENSE_USERNAME": "admin",
        "PFSENSE_PASSWORD": "your-password",
        "PFSENSE_VERSION": "CE_2_8_0",
        "VERIFY_SSL": "false"
      }
    }
  }
}

开始与防火墙对话。 打开克劳德桌面并询问:

  • *“显示过去一小时内所有堵塞的交通”*
  • *“正在运行哪些服务?”*
  • *“为端口443创建一个端口转发到192.168.1.50”*
  • *“运行完整的系统健康检查”*

你能做什么

每个主要pfSense子系统都有327个工具:

领域工具你能做什么
防火墙规则9创建、更新、删除、重新排序规则。批量阻止IP。查看已编译的规则集。
别名5管理主机/网络/端口/URL别名。添加和删除地址。
网络地址转换16端口转发、出站NAT、1:1 NAT——全生命周期管理。
虚拟专用网络51OpenVPN服务器和客户端、IPsec隧道、WireGuard对等端——CRUD、状态、应用。
路由16网关、网关组、静态路由、默认网关管理。
域名系统24未绑定的解析器和dnsmasq转发器:主机覆盖、域覆盖、访问列表。
动态主机配置协议17租约、静态映射、地址池、自定义选项、服务器配置。
证书15证书、CA、CRL——生成、续订、导出PKCS12。
用户12用户帐户、组、LDAP/RADIUS身份验证服务器配置。
接口14接口配置、VLAN、网桥、组。
系统44状态、设置、诊断、配置历史、重新启动、ping。
服务14启动/停止/重新启动服务。NTP、cron、SSH、服务监视器。
日志3使用解析的IPv4/IPv6过滤日志数据进行防火墙日志分析。
流量整形12用于带宽管理的整形器、队列和限制器。
日程表8基于时间的防火墙规则调度。
虚拟IPS5CARP、ProxyARP和IP别名管理。
故障排除10诊断连接、阻塞流量、VPN、DHCP、DNS、HA。完整的健康报告。
包裹43HAProxy、ACME/Let’s Encrypt、BIND DNS、FreeRADIUS。
效用9HATEOAS导航、对象ID管理、护栏状态。

安全第一

人工智能管理生产防火墙需要护栏。此服务器有9层:

"Delete firewall rule 5"

  1. CLASSIFY    → HIGH risk (destructive)
  2. ALLOWLIST   → tool is permitted
  3. SANITIZE    → parameters clean (no injection)
  4. RATE LIMIT  → under 10 deletes/minute
  5. DRY RUN?    → user can preview first
  6. CONFIRM     → blocked until confirm=True
  7. BACKUP      → config revision captured
  8. EXECUTE     → API call made
  9. AUDIT LOG   → action recorded with redacted params

Response includes:
  "config_backup": {
    "pre_change_revision_id": 42,
    "rollback_instruction": "restore_config_backup(revision_id=42, confirm=True)"
  }

破坏性操作(52个删除/重新启动/停止工具)需要 confirm=True. 创建和更新操作(112个工具)受到速率限制和净化。 敏感参数(密码、密钥、令牌)在日志和输出中被编辑。

您还可以:

  • 通过 dry_run=True 预览任何破坏性操作而不执行
  • 通过 verify_descr="Allow HTTPS" 验证您是否删除了正确的规则(防止ID转换)
  • MCP_READ_ONLY=true 仅公开118个只读工具(搜索、获取、诊断)
  • MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_log 仅限于特定工具

支持的pfSense版本

版本REST API状态
pfSense CE 2.8.1v2.7.3已验证
pfSense Plus 25.11v2.7.3已验证
pfSense CE 2.8.0v2.6.0+支持
pfSense Plus 24.11v2.6.0+支持

认证

支持三种方法(在中配置 .env):

方法配置最适合
基本认证AUTH_METHOD=basic +用户名/密码快速设置,本地用户
API密钥AUTH_METHOD=api_key +系统中的密钥>REST API>密钥自动化,服务帐户
JWTAUTH_METHOD=jwt +用户名/密码短期令牌,自动刷新

部署选项

标准 (默认)--对于克劳德桌面和克劳德代码:

python3 -m src.main

超文本传输协议 --对于远程访问和多客户端设置:

python3 -m src.main -t streamable-http --port 3000

码头工人 --具有只读文件系统的强化容器:

docker compose up

容器安全:非root用户(mcp:1000)只读文件系统,所有功能均已删除, noexec tmpfs, no-new-privileges.

配置

变量必填默认描述
PFSENSE_URL--pfSense URL(例如。, https://192.168.1.1)
AUTH_METHODapi_keyapi_key, basic,或 jwt
PFSENSE_API_KEY\*-REST API密钥
PFSENSE_USERNAME\*--pfSense用户名(用于基本/jwt)
PFSENSE_PASSWORD\*--pfSense密码(用于基本/jwt)
PFSENSE_VERSIONCE_2_8_0CE_2_8_0, CE_2_8_1, CE_26_03, PLUS_24_11, PLUS_25_11
VERIFY_SSLtruefalse 用于自签名证书
API_TIMEOUT30请求超时(秒)
MCP_READ_ONLYfalse仅公开只读工具

All configuration options

变量默认值描述
ENABLE_HATEOASfalse在API响应中启用HAEOAS链接
LOG_LEVELINFODEBUG, INFO, WARNING, ERROR
MCP_TRANSPORTstdiostdiostreamable-http
MCP_HOST127.0.0.1HTTP模式的绑定地址
MCP_PORT3000HTTP模式端口
MCP_API_KEY--HTTP传输的承载令牌(必需)
MCP_ALLOWED_ORIGINSlocalhost允许使用逗号分隔的源
MCP_AUDIT_LOG--审计日志文件的路径(JSON行)
MCP_RATE_LIMIT_DELETE10每60秒的最大删除次数
MCP_RATE_LIMIT_CREATE20每60秒的最大创建次数
MCP_RATE_LIMIT_CRITICAL2每300秒的最大关键操作数
MCP_ALLOWED_TOOLSall逗号分隔的工具列表
MCP_ROLLBACK_BUFFER50回滚条目保存在内存中

测试

python3 -m pytest tests/ -v          # 308 tests
python3 -m pytest tests/ --cov=src   # with coverage

MCP规范合规性

符合 MCP 2025-11-25 (最新):

  • ToolAnnotations 在所有327个工具上(readOnlyHint、destructiveHint、幂等Hint)
  • serverInfo.versioninstructions 提供
  • 源标头验证(必须要求)
  • 带有定时安全比较的承载令牌认证
  • 根据规范,应默认绑定到localhost
  • stdio和流式HTTP传输

项目结构

src/
  main.py              Entry point
  server.py            FastMCP instance + API client
  client.py            pfSense REST API v2 HTTP client
  guardrails.py        9-layer defense-in-depth system
  helpers.py           Validation, parsing, safety guards
  models.py            Data models
  middleware.py        HTTP auth + Origin validation
  tools/               34 tool modules (327 tools)
tests/                 308 tests

贡献

我们需要在不同的pfSense环境中进行真实世界的测试。看 贡献 或者:

  1. 分叉并创建特征分支
  2. python3 -m pytest tests/ -v
  3. 提交PR

思想: 针对真实pfSense的集成测试、额外的包支持(Snort、Suricata)、Ollama本地LLM桥、多实例管理。

许可证

麻省理工学院

致谢

目录标签

目录标签

安全PythonClaude自然语言处理防火墙管理本地部署网络安全自动化工具pfSense

支持客户端

Claude

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

19

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP