plan-b-systems/siem-docker
GitHub: plan-b-systems/siem-docker
基于 Docker 的轻量级本地 SIEM 解决方案,集成 OpenSearch 存储、Next.js 仪表盘和 AI 日志分析,面向网络设备 syslog 日志的集中采集、威胁检测与取证调查。
Stars: 0 | Forks: 0
# Plan-B Systems SIEM v2.1
本地 SIEM 设备,具有品牌仪表盘、syslog 数据接入、OpenSearch 存储、自动许可证管理和可选的 AI 日志分析功能。
v1/Graylog 已停用。支持的部署路径是 `main` 分支中的 v2.1 技术栈。
## 架构
```
Network devices
| syslog UDP:514 / TCP:1514
v
plan-b-syslog (Node.js)
| parsed RFC 3164/5424/FortiGate logs
v
plan-b-opensearch (OpenSearch 2.x)
| logs, settings, retention policies
v
plan-b-dashboard (Next.js)
plan-b-license-checker (Python)
| daily license check + encrypted AI key delivery
v
Plan-B cloud license API
```
## 容器
| 容器 | 用途 | 暴露端口 |
|-----------|---------|----------|
| `plan-b-opensearch` | 日志存储、搜索、保留 | 内部 Docker 网络 |
| `plan-b-syslog` | Syslog 接收器和解析器 | UDP `514`, TCP `1514` |
| `plan-b-dashboard` | Web UI、健康检查、取证、AI 聊天 | HTTP `3000` |
| `plan-b-license-checker` | 许可证验证和 AI 密钥分发 | 内部 Docker 网络 |
## 系统要求
| 组件 | 最低要求 | 推荐配置 |
|-----------|---------|-------------|
| CPU | 2 核 | 4 核 |
| RAM | 4 GB | 8 GB+ |
| Disk | 40 GB | 200 GB+ |
| OS | Ubuntu 22.04/24.04 或带 WSL2 的 Windows 10/11 | Ubuntu 24.04 |
| Docker | 24.0+ | 最新版 |
## 一键安装
Linux:
```
curl -fsSL https://raw.githubusercontent.com/plan-b-systems/siem-docker/main/install-linux.sh | sudo bash
```
Windows,在 PowerShell 中以管理员身份运行:
```
irm https://raw.githubusercontent.com/plan-b-systems/siem-docker/main/install.ps1 | iex
```
详细指南:
| 平台 | 指南 |
|----------|-------|
| Ubuntu/Linux | [UBUNTU-DEPLOY.md](UBUNTU-DEPLOY.md) |
| Windows | [WINDOWS-DEPLOY.md](WINDOWS-DEPLOY.md) |
## 安装提示
| 提示 | 描述 | 示例 |
|--------|-------------|---------|
| Client name | 简短的站点标识符,不含空格 | `acme-tlv` |
| Client ID | Plan-B 门户中的许可证 ID | `BYI-tWuwmUCprt0XdX1w` |
| LAN IP | 设备网络 IP | `192.168.1.100` |
| Dashboard password | 初始管理员密码 | `MySecurePass1` |
| Timezone | TZ 数据库名称 | `Asia/Jerusalem` |
| Retention | 日志保留天数 | `730` |
| Data path | 可选的外部存储路径 | `/mnt/siem-data` |
## 仪表盘
URL:
```
http://:3000
```
主要页面:
| 页面 | 用途 |
|------|---------|
| Overview | 日志量、严重程度分布、主要来源、时间线 |
| Threats | 高严重性筛选、攻击时间线、来源关联 |
| Forensics | 可搜索的日志查看器、筛选器、分页、CSV 导出 |
| Sources | 设备清单、最后出现时间、健康状态、严重性摘要 |
| Health | 磁盘、内存、EPS、OpenSearch、许可证状态 |
| Settings | 语言、时区、保留策略、客户端信息、OpenSearch 状态 |
| AI Chat | 授权后由 Claude 驱动的日志调查功能 |
## 日志来源
| 协议 | 端口 | 用例 |
|----------|------|----------|
| Syslog UDP | `514` | 防火墙、交换机、路由器 |
| Syslog TCP | `1514` | 服务器和可靠传输 |
支持的解析包括 RFC 5424、RFC 3164 和 FortiGate 的 key=value 日志。
rsyslog 转发示例:
```
*.* @@:1514
```
FortiGate 示例:
```
config log syslogd setting
set status enable
set server ""
set port 514
set facility local0
end
```
## 许可证检查器
许可证检查器会在每天当地时间 12:00 验证 Plan-B 订阅状态。
| 状态 | 服务 | 检查间隔 |
|-------|----------|----------------|
| `NORMAL` | 所有服务运行中 | 每天 12:00 |
| `GRACE_PERIOD` | 宽限期内所有服务运行中 | 每天 12:00 |
| `EXPIRED` | Syslog 和仪表盘已停止 | 每 10 分钟 |
常用命令:
```
docker exec plan-b-license-checker cat /data/license_state.json
docker restart plan-b-license-checker
```
## 配置
安装程序会写入 `/opt/plan-b-siem/config.env`。
重要变量:
| 变量 | 描述 |
|----------|-------------|
| `CLIENT_NAME` | 站点标识符 |
| `CLIENT_ID` | Plan-B 门户中的许可证 ID |
| `HOST_IP` | 设备局域网 IP |
| `DASHBOARD_PASSWORD` | 初始仪表盘密码 |
| `TIMEZONE` | 本地时区 |
| `RETENTION_DAYS` | 日志保留期 |
| `OPENSEARCH_HEAP_SIZE` | OpenSearch JVM 堆内存 |
| `SYSLOG_UDP_PORT` | Syslog UDP 端口 |
| `SYSLOG_TCP_PORT` | Syslog TCP 端口 |
| `DASHBOARD_PORT` | 仪表盘 Web 端口 |
| `LICENSE_API_URL` | Plan-B 云许可证端点 |
| `CLIENT_SECRET` | 用于 AI 密钥分发的可选密钥 |
| `DATA_PATH` | 可选的外部存储路径 |
## 常用命令
```
# Stack 状态
docker compose --env-file config.env ps
# 实时日志
docker compose --env-file config.env logs -f
# 重启 dashboard
docker restart plan-b-dashboard
# 检查日志计数
docker exec plan-b-opensearch curl -s localhost:9200/logs-*/_count
# Health check
./resilience/health-check.sh
# 停止所有内容
docker compose --env-file config.env down
# 启动所有内容
docker compose --env-file config.env up -d
```
## 仓库结构
```
siem-docker/
├── install-linux.sh # Linux one-line bootstrap
├── deploy-ubuntu.sh # Linux interactive deploy
├── install.ps1 # Windows one-line bootstrap
├── deploy-windows.ps1 # Windows deploy
├── docker-compose.yml # Linux compose stack
├── docker-compose.windows.yml # Windows/WSL compose stack
├── config.env.template # Installer config template
├── dashboard/ # Next.js dashboard
├── syslog-receiver/ # Node.js syslog receiver
├── license-checker/ # Python license checker
├── resilience/ # Health checks and auto-start helpers
├── UBUNTU-DEPLOY.md
└── WINDOWS-DEPLOY.md
```
## 技术支持
Plan-B Systems - https://plan-b.systems
标签:AI分析, AMSI绕过, CIDR输入, Docker, FortiGate, GNU通用公共许可证, Google搜索, Graylog, HTTP/HTTPS抓包, MITM代理, MongoDB, Node.js, OISF, Python, Syslog, 合规监控, 威胁检测, 子域名变形, 安全仪表盘, 安全运营, 安全防御评估, 容器化部署, 密码管理, 态势感知, 扫描框架, 无后门, 无线安全, 日志管理, 日志解析, 日志采集, 本地部署, 特权提升, 系统运维, 网络安全, 网络安全审计, 自动化攻击, 自动化部署, 证书伪造, 请求拦截, 逆向工具, 隐私保护