梭子鱼CloudGen防火墙MCP服务器v2
](https://modelcontextprotocol.io/) ](https://www.python.org/)  ](https://www.docker.com/) ](<>)
模型上下文协议(MCP)服务器,用于通过其REST API管理Barracuda CloudGen防火墙。版本2同时支持这两种功能 策略驱动 和 基于规则的标准 具有自动模式检测功能的防火墙。
🆕 v2中的新功能
- 自动模式检测:检测您的防火墙是策略驱动的还是基于标准规则的
- 双模式支持:与两种防火墙类型无缝协作
- 增强的规则管理:在标准防火墙上创建、修改和删除规则
- 动态规则支持:列出并管理动态防火墙规则
- 改进了错误处理:针对特定模式的限制提供更好的反馈
- 扩展API覆盖范围:支持更多端点和操作
🎯 特性
通用功能(两种模式)
- 系统监控:实时健康状态和系统指标
- 服务管理:列出并监视防火墙服务
- 网络对象:查看、筛选和管理网络对象
- 服务对象:浏览和管理服务定义
- 模式检测:自动识别防火墙操作模式
标准模式功能
- 规则管理:创建、修改和删除防火墙规则
- 规则列表:查看所有包含详细信息的规则
- 动态规则:管理动态防火墙规则
- 规则搜索:按名称查找特定规则
- 双向规则:配置双向交通规则
策略驱动模式功能
- 状态监测:系统健康和事件监控
- 对象管理:网络和服务对象配置
- 策略状态:检查策略配置状态
- 限制规则访问:仅查看对规则信息的访问
📋 先决条件
- Python 3.11+
- Docker(可选)
- 启用REST API的Barracuda CloudGen防火墙
- 用于身份验证的API令牌
- Claude Desktop(用于MCP集成)
🚀 快速开始
选项1:Docker(推荐)
# Clone the repository
git clone https://github.com/yourusername/barracuda-cgf-mcp-v2.git
cd barracuda-cgf-mcp-v2
# Build the Docker image
docker build -t barracuda-mcp:v2 .
# Run with your firewall credentials
docker run -it --rm \
-e BARRACUDA_HOST=http://your-firewall:8080 \
-e BARRACUDA_API_TOKEN=your-token \
barracuda-mcp:v2选项2:Python
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export BARRACUDA_HOST="http://your-firewall:8080"
export BARRACUDA_API_TOKEN="your-api-token"
# Run the server
python barracuda_server_v2.py🔧 配置
环境变量
| 变量 | 描述 | 示例 |
|---|---|---|
BARRACUDA_HOST | 带协议和端口的防火墙URL | http://192.168.1.1:8080 |
BARRACUDA_API_TOKEN | API身份验证令牌 | your-api-token |
LOG_LEVEL | 日志记录级别(可选) | INFO, DEBUG |
Claude桌面集成
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"barracuda-cgf-v2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--name", "barracuda-mcp-v2",
"-e", "BARRACUDA_HOST=http://your-firewall:8080",
"-e", "BARRACUDA_API_TOKEN=your-token",
"barracuda-mcp:v2"
]
}
}
}🛠️ 可用工具
通用工具
| 工具 | 描述 | 工作环境 |
|---|---|---|
get_system_status | 系统健康和状态 | 两种模式 |
detect_firewall_mode | 识别防火墙操作模式 | 两种模式 |
list_services | 列出所有正在运行的服务 | 两种模式 |
list_network_objects | 列出具有过滤功能的网络对象 | 两种模式 |
list_service_objects | 列出具有筛选功能的服务对象 | 两种模式 |
规则管理工具
| 工具 | 描述 | 工作环境 |
|---|---|---|
list_firewall_rules | 列出所有防火墙规则及其详细信息 | 标准模式 |
get_firewall_rule | 获取特定规则配置 | 标准模式 |
create_firewall_rule | 创建新的防火墙规则 | 标准模式 |
delete_firewall_rule | 删除现有规则 | 标准模式 |
list_dynamic_rules | 列出动态防火墙规则 | 标准模式 |
📝 使用示例
检测防火墙模式
"What type of firewall am I connected to?"
"Detect the firewall mode"系统状态
"Show me the system status"
"Check firewall health"规则管理(标准模式)
"List all firewall rules"
"Show me the rule named 'BOX-LAN-2-INTERNET'"
"Create a rule to allow HTTP from LAN to Internet"
"Delete the test rule"对象管理
"List all network objects"
"Show service objects containing 'HTTP'"
"Filter network objects for 'VPN'"🧪 测试防火墙类型
测试标准模式(基于规则)
curl -X 'GET' \
'http://your-firewall:8080/rest/config/v1/forwarding-firewall/rules?expand=false&envelope=false' \
-H 'accept: application/json' \
-H 'X-API-Token: your-token'标准模式响应:返回规则列表 政策驱动的回应:返回409错误
🔍 防火墙模式检测
服务器在启动时会自动检测您的防火墙模式:
- 标准模式:可直接操纵规则
- 政策驱动模式:通过控制中心管理的规则
- 未知模式:某些功能可能受到限制
🐛 故障排除
常见问题
| 问题 | 解决方案 |
|---|---|
| 连接被拒绝 | 验证防火墙URL和端口 |
| 401未授权 | 检查API令牌有效性 |
| 409关于规则操作 | 防火墙是策略驱动的 |
| 模式检测失败 | 检查API权限 |
调试模式
启用详细日志记录:
export LOG_LEVEL=DEBUG
python barracuda_server_v2.py🔒 安全
- API令牌从不以生产模式登录
- 支持HTTP和HTTPS连接
- Docker容器中的非root用户
- 所有操作的输入验证
🤝 贡献
- 复刻仓库
- 创建要素分支
- 提交您的更改
- 推到分支
- 打开拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件
🙏 致谢
- 模型上下文协议 通过Anthropic
- Barracuda CloudGen防火墙API
📊 兼容性
经过测试的防火墙版本
- 梭子鱼CloudGen防火墙F系列
- 梭子鱼CloudGen防火墙V系列
- 固件版本8.x及以上
按模式支持的操作
| 操作 | 标准模式 | 策略驱动模式 |
|---|---|---|
| 查看系统状态 | ✅ | ✅ |
| 列出服务 | ✅ | ✅ |
| 列出网络对象 | ✅ | ✅ |
| 列出服务对象 | ✅ | ✅ |
| 列出防火墙规则 | ✅ | ❌ |
| 创建规则 | ✅ | ❌ |
| 修改规则 | ✅ | ❌ |
| 删除规则 | ✅ | ❌ |
| 管理动态规则 | ✅ | ❌ |
______________________________________________________________________
