通过模型上下文协议(MCP)实现专业的SonicWall日志分析和威胁检测
git clone https://github.com/gensecaihq/sonicwall-mcp-server.git
cd sonicwall-mcp-server
# 复制示例配置文件
cp .env.example .env
# 使用nano编辑配置文件,填入SonicWall详细信息
nano .env
必需的配置如下:
SONICWALL_HOST=192.168.1.1
SONICWALL_USERNAME=admin
SONICWALL_PASSWORD=your_password
SONICWALL_VERSION=7 # 若使用SonicOS 8.x,则改为8
使用Docker(推荐):
docker compose up -d
# 或者使用npm脚本
npm run docker:up
使用Node.js:
npm install
npm run build
npm start
# 检查服务器健康状态
curl http://localhost:3000/health
# 预期响应:
# {"status":"healthy","protocol":"MCP/2025-06-18","version":"1.0.0"}
docker-compose
命令已弃用,请使用docker compose
。# 生产环境部署(后台运行)
docker compose up -d
# 开发模式(支持热重载)
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
# 查看日志
docker compose logs -f sonicwall-mcp
# 停止所有服务
docker compose down
# 重建并重启
docker compose up --build -d
# 生产环境部署
npm run docker:up
# 开发模式,支持热重载
npm run docker:dev
# 查看日志
npm run docker:logs
# 停止服务
npm run docker:down
# 仅构建镜像
npm run docker:build
# 使用环境文件
cp .env.example .env
# 编辑.env文件,填入SonicWall详细信息,然后启动容器
docker compose up -d
# 或者直接传递环境变量
SONICWALL_HOST=192.168.1.1 \
SONICWALL_USERNAME=admin \
SONICWALL_PASSWORD=your_password \
docker compose up -d
docker-compose.yml
:生产环境配置。docker-compose.dev.yml
:开发环境覆盖配置。docker-compose.override.yml
:本地自定义配置(可选)。# 连接到Claude,在Claude桌面配置文件(claude_desktop_config.json)中添加以下内容
{
"mcpServers": {
"sonicwall": {
"transport": "sse",
"url": "http://localhost:3000/mcp/v1/sse"
}
}
}
完成上述配置后,即可在Claude中开始使用SonicWall分析功能,例如:
"Show me blocked connections from the last hour"(显示过去一小时内被阻止的连接) "Find critical security threats from today"(查找今天的关键安全威胁) "Analyze VPN authentication failures"(分析VPN认证失败情况)
analyze_logs
使用自然语言进行日志分析并获得智能洞察
// 在Claude中的示例用法
"Show me suspicious network activity from external IPs in the last 2 hours"(显示过去两小时内来自外部IP的可疑网络活动)
"Find brute force attacks on SSH and RDP ports"(查找SSH和RDP端口的暴力攻击)
"Analyze malware detections and their source locations"(分析恶意软件检测情况及其来源位置)
get_threats
实时威胁监控和分析
// 获取关键威胁
{
"severity": "critical",
"limit": 20
}
search_connections
高级连接搜索和调查
// 调查特定IP
{
"sourceIp": "192.168.1.100",
"hoursBack": 24,
"limit": 500
}
get_stats
获取网络统计信息和安全指标
// 获取排名前十的被阻止IP
{
"metric": "top_blocked_ips",
"limit": 10
}
export_logs
导出过滤后的日志,用于合规性检查和分析
// 以CSV格式导出安全事件
{
"format": "csv",
"filters": {
"severity": ["critical", "high"],
"startTime": "2024-01-01T00:00:00Z"
}
}
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
│ Claude Code │◄──►│ MCP Server │◄──►│ SonicWall │
│ │SSE │ (Port 3000) │API │ Device │
└─────────────┘ └─────────────────┘ └─────────────┘
│
▼
┌─────────────────┐
│ Log Analysis │
│ & Intelligence │
└─────────────────┘
关键组件:
# SonicWall连接配置
SONICWALL_HOST=your.firewall.ip
SONICWALL_USERNAME=admin
SONICWALL_PASSWORD=secure_password
SONICWALL_VERSION=7
# 服务器设置
PORT=3000
LOG_LEVEL=info
CACHE_TTL_SECONDS=300
# 身份验证(可选)
MCP_BEARER_TOKEN=your_secret_token
# 性能调优
CACHE_MAX_SIZE=1000
API_TIMEOUT=30000
MAX_RETRIES=3
# 安全设置
CORS_ORIGINS=https://claude.ai,https://localhost:3000
RATE_LIMIT_MAX=100
# 检查服务器状态
curl http://localhost:3000/health
# 测试MCP端点
curl -H "Accept: text/event-stream" http://localhost:3000/mcp/v1/sse
# 测试身份验证
curl -k https://YOUR_SONICWALL/api/sonicos/auth \
-H "Content-Type: application/json" \
-d '{"user":"admin","password":"your_password"}'
# 运行所有测试
npm test
# 运行MCP合规性测试
npm run test:mcp
# 运行SonicWall集成测试
npm run test:integration
问题:无法连接到SonicWall API。
# 检查API是否已启用
# SonicWall: MANAGE > System Setup > Appliance > SonicOS API ✓
# 测试网络连接
ping YOUR_SONICWALL_HOST
curl -k https://YOUR_SONICWALL_HOST/api/sonicos/auth
问题:日志查询返回空响应。
# 检查SonicWall中的日志级别
# Log > Settings > Categories > Enable required log types
# 验证时间同步
date
问题:浏览器阻止MCP请求。
# 将你的域名添加到CORS_ORIGINS
CORS_ORIGINS=https://claude.ai,https://your-domain.com
# 获取详细的健康状态
curl http://localhost:3000/health | jq
# 响应内容包括:
# - 服务器正常运行时间和状态
# - SonicWall连接状态
# - 缓存统计信息
# - 内存使用情况
# 查看性能日志
docker compose logs sonicwall-mcp | grep "executed successfully"
# 示例输出:
# {"timestamp":"2024-01-01T12:00:00.000Z","level":"info","message":"Tool analyze_logs executed successfully","executionTime":245,"resultSize":15420}
# 监控错误日志
docker compose logs sonicwall-mcp | grep ERROR
# 跟踪性能日志
docker compose logs sonicwall-mcp | grep "execution time"
我们欢迎大家贡献代码!请阅读我们的贡献指南。
# Fork项目并克隆到本地
git clone https://github.com/your-username/sonicwall-mcp-server.git
cd sonicwall-mcp-server
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 运行测试
npm test
# 提交PR
git checkout -b feature/amazing-feature
git commit -m "Add amazing feature"
git push origin feature/amazing-feature
本项目采用MIT许可证,详情请参阅LICENSE文件。
🔒 基于安全优先原则为企业网络安全团队构建
开始使用 • API文档 • 故障排除