8.4 KiB
Executable File
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
Sirius Scan
Sirius 是一款开源漏洞扫描器,支持自动发现、基于 CVE 的检测,并提供现代化的 Web UI。克隆仓库、运行四条命令,即可开始扫描。
快速开始
git clone https://github.com/SiriusScan/Sirius.git
cd Sirius
docker compose -f docker-compose.installer.yaml run --rm sirius-installer
docker compose up -d
打开 http://localhost:3000 并登录:
admin@example.com |
|
| Password | 由安装程序打印(在输出中查找 INITIAL_ADMIN_PASSWORD) |
就这么简单。全部六个服务会自动启动。安装程序在首次运行时会生成安全密钥,可安全地重复运行。
默认情况下,安装程序会保持 IMAGE_TAG 未设置,因此 Compose 会从 GHCR 拉取 latest。若要固定某个发布版本(例如在 .env 中指定 v1.0.0),请仅在全部六个容器镜像都已存在该标签后再执行;请从未登录 ghcr.io 的 shell 中,使用 bash scripts/verify-ghcr-public-access.sh v1.0.0 进行验证。
要求: Docker Engine 20.10+ 且配备 Compose V2,4 GB RAM,10 GB 磁盘空间。支持 Linux、macOS 和 Windows(WSL2)。
Sirius 的功能
- 网络发现(Network Discovery) -- 通过 Nmap 自动枚举主机与服务
- 漏洞检测(Vulnerability Detection) -- 基于 CVE 的扫描,并提供 CVSS 评分
- 风险仪表盘(Risk Dashboards) -- 实时扫描进度、严重性趋势与修复指导
- 远程代理(Remote Agents) -- 通过 gRPC 在多个环境中进行分布式扫描
- 交互式终端(Interactive Terminal) -- PowerShell 控制台,用于高级脚本编写与自动化
- REST API -- 与现有安全工作流集成(端口 9001 上的
X-API-Key认证)
部署选项
安装步骤始终相同。仅 docker compose up 命令会有所不同。
| 模式 | 命令 | 使用场景 |
|---|---|---|
| Standard | docker compose up -d |
大多数用户 -- 从 GHCR 拉取完整发布栈 |
| Development | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d |
本地代码开发的实时重载 |
| Source Build | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build |
显式进行本地全栈构建 |
| Production | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d |
加固配置,pull_policy: always |
非交互式安装(CI / Terraform / 自动化)
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
轮换密钥
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
验证安装
docker compose ps # all 6 services should show "healthy" or "running"
curl http://localhost:3000 # UI responds
curl http://localhost:9001/health # API responds
预期服务:sirius-ui (3000)、sirius-api (9001)、sirius-engine (5174, 50051)、sirius-postgres (5432)、sirius-rabbitmq (5672, 15672)、sirius-valkey (6379)。
架构
graph TD
subgraph clients [Clients]
UI["Sirius UI (Next.js)"]
CLI["Terminal and Agent Runtime"]
end
subgraph core [Core Services]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infrastructure]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP publish"| MQ
MQ -->|"Queue consume"| Engine
API -->|"SQL read/write"| DB
Engine -->|"SQL read/write"| DB
API -->|"Session/cache ops"| Cache
Engine -->|"Scan state cache ops"| Cache
| 服务 | 技术栈 | 端口 | 用途 |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Web 界面 |
| sirius-api | Go, Gin | 9001 | REST API 与业务逻辑 |
| sirius-engine | Go + 嵌入式 gRPC agent | 5174, 50051 | 扫描器、终端与代理服务 |
| sirius-postgres | PostgreSQL 15 | 5432 | 漏洞与扫描数据 |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | 服务间消息传递 |
| sirius-valkey | Valkey(兼容 Redis) | 6379 | 缓存与会话数据 |
界面
| Dashboard | Scanner | Vulnerability Navigator |
|---|---|---|
![]() |
![]() |
![]() |
| Environment | Host Details | Terminal |
|---|---|---|
![]() |
![]() |
![]() |
API
Sirius 在端口 9001 上暴露 REST 端点,由 内部服务 API 密钥(internal service API key) 保护。优先使用 Docker 密钥文件(SIRIUS_API_KEY_FILE,默认 /run/secrets/sirius_api_key);SIRIUS_API_KEY 仍可作为环境变量回退方案。安装程序会写入 ./secrets/sirius_api_key.txt(模式 0644,以便非 root 应用 UID 可读取 bind-mounted 密钥),并完成两项配置。
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"
完整 API 文档:REST API Reference
安全建议
生产环境部署时:
- 轮换密钥 -- 使用
--force运行安装程序,以重新生成全部凭据 - 限制端口 -- 仅暴露端口 3000(UI);将 5432、6379、5672 保留在内部
- 使用反向代理 -- 在前端部署 nginx 或 Traefik,并启用 TLS
- 保持镜像更新 --
docker compose pull && docker compose up -d
故障排除
常见问题快速修复:
| 问题 | 修复方法 |
|---|---|
| 服务无法启动 | 使用 docker compose logs <service> 查找错误 |
| 开发 overlay 缺少基础设施 | 同时使用两个文件:-f docker-compose.yaml -f docker-compose.dev.yaml |
| 端口冲突 | 使用 lsof -i :3000 查找冲突进程 |
| 数据库连接错误 | docker exec sirius-postgres pg_isready |
| 重置后密钥过期 | 重新运行安装程序,然后执行 docker compose up -d --force-recreate |
详细的运维手册、验证流程与紧急恢复,请参阅 Operations & Troubleshooting。
贡献
开发环境搭建、编码规范与 PR 指南,请参阅 CONTRIBUTING.md。
快速链接: Issues | Discussions | Discord
延伸阅读
- Installation Guide
- Interface Tour
- Scanning Guide
- Docker Architecture
- System Architecture
- CI/CD Guide
- Operations & Troubleshooting





