防火墙管理服务器

Barracuda CloudGen Firewall MCP Server v2 是一个用于通过REST API管理Barracuda CloudGen防火墙的模型上下文协议服务器,支持策略驱动和标准基于规则的防火墙,具有自动模式检测功能。

  • by LanceHardwoodXXX
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 LanceHardwoodXXX/Barracuda-MCP-v2

使用说明

梭子鱼CloudGen防火墙MCP服务器v2

模型上下文协议(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用户
  • 所有操作的输入验证

🤝 贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 打开拉取请求

📄 许可证

MIT许可证-请参阅 许可证 文件

🙏 致谢

📊 兼容性

经过测试的防火墙版本

  • 梭子鱼CloudGen防火墙F系列
  • 梭子鱼CloudGen防火墙V系列
  • 固件版本8.x及以上

按模式支持的操作

操作 标准模式 策略驱动模式
查看系统状态 ✅ ✅
列出服务 ✅ ✅
列出网络对象 ✅ ✅
列出服务对象 ✅ ✅
列出防火墙规则 ✅ ❌
创建规则 ✅ ❌
修改规则 ✅ ❌
删除规则 ✅ ❌
管理动态规则 ✅ ❌