pfSense MCP 服务器是一款生产级的模型上下文协议(MCP)服务器,它能让你通过 Claude Desktop 等生成式人工智能(GenAI)应用与 pfSense 防火墙进行自然语言交互。
# 克隆仓库
git clone https://github.com/gensecaihq/pfsense-mcp-server.git
cd pfsense-mcp-server
# 复制环境模板
cp .env.example .env
# 编辑配置
nano .env # 添加你的 pfSense 详细信息
# 构建并启动
docker-compose up -d
# 检查健康状态
curl http://localhost:8000/health
在你的 Claude Desktop 配置文件(macOS 系统路径为 ~/Library/Application Support/Claude/claude_desktop_config.json)中添加以下内容:
{
"mcpServers": {
"pfsense": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", "/path/to/.env", "pfsense-mcp:latest"],
"env": {
"MCP_MODE": "stdio"
}
}
}
}
或者在本地运行:
{
"mcpServers": {
"pfsense": {
"command": "python",
"args": ["/path/to/pfsense-mcp-server/main.py"],
"env": {
"PFSENSE_URL": "https://your-pfsense.local",
"PFSENSE_API_KEY": "your-api-key"
}
}
}
}
| 级别 | 描述 | 示例用户 |
|---|---|---|
READ_ONLY |
监控和查看 | 安全分析师 |
SECURITY_WRITE |
修改安全规则 | 安全工程师 |
ADMIN_WRITE |
完全系统访问 | 管理员 |
COMPLIANCE_READ |
审计和合规检查 | 合规专员 |
EMERGENCY_WRITE |
应急响应 | 事件响应人员 |
以下是一些使用自然语言与 pfSense 交互的示例提示:
"Show me the system status"(显示系统状态)
"What IPs are currently blocked?"(当前哪些 IP 被阻止了?)
"Block IP 192.168.1.100"(阻止 IP 192.168.1.100)
"Run a PCI compliance check"(运行 PCI 合规性检查)
"Analyze threats from the last hour"(分析过去一小时的威胁)
"EMERGENCY: Block all traffic from Russia"(紧急情况:阻止来自俄罗斯的所有流量)
# 测试连接
python scripts/test_connection.py
# 运行测试
pytest tests/
# 生成令牌
python scripts/generate_token.py alice READ_ONLY
本项目采用 MIT 许可证,详情请参阅 LICENSE。