一、为什么 2023 年要聊 OpenVAS / GVM
OpenVAS(Open Vulnerability Assessment Scanner)是开源界最老牌的网络漏洞扫描器之一,2017 年改名 GVM(Greenbone Vulnerability Management),由 Greenbone 维护。GVM 21.4+ 开始把组件名从 openvas 改成 gvm,但核心扫描引擎还是 OpenVAS。
2022-04 发布的 GVM 22.4 是当前主流生产版本——本篇示例基于这个版本。gvm-check-setup 跑出来的就是:
| |
本文写于 2023-04-15。示例基于 GVM 22.04(Ubuntu 22.04 LTS)+ 9 万+ NVT 漏洞库。Greenbone 在 2023-2024 年陆续把
gvm-setup改造成greenbone-feed-sync,新版本会越来越 Docker 化。
二、GVM 是什么、能做什么
核心能力:
- 漏洞扫描:扫描目标主机的开放端口、运行服务、CVE 漏洞,9 万+ NVT(Network Vulnerability Tests)覆盖
- 合规检查:PCI DSS、HIPAA、CIS 等基线
- CVE 库自动更新:默认每天从 Greenbone 社区 feed 同步
典型使用场景:
- 内部网络定期漏扫(季度/半年)
- 重要业务上线前的安全验收
- 等保 2.0 二级 / 三级测评的漏洞证据
- 攻防演练 / 红蓝对抗的攻击面梳理
架构(多个 daemon 协作):
| 组件 | 作用 |
|---|---|
gvmd | 主管理进程,API 服务 |
gsad | Web UI(Greenbone Security Assistant) |
openvas-scanner / ospd-openvas | 实际扫描引擎 |
pg-gvm | PostgreSQL 后端 |
redis-server | 任务队列 |
notus-scanner | 轻量存活/服务检测 |
三、方式一:apt 一键安装(Ubuntu 22.04)
3.1 装 GVM 包
| |
3.2 初始化
| |
初始化成功后会输出默认 admin 密码(一串 UUID):
| |
一定要记下来,或者立即改密:
| |
3.3 检查
| |
如果中途某一步失败,按提示执行修复命令。最常见的失败是 redis-server 没启动:
| |
3.4 同步漏洞库
| |
gvm-feed-update 已 deprecated,新版本 GVM(22.4+)推荐 greenbone-feed-sync。
3.5 启停
| |
检查 GVM 服务状态:
1systemctl status ospd-openvas gvmd gsad
3.6 改 Web UI 监听地址
默认只监听 127.0.0.1:9392,远程访问需要改 0.0.0.0:443:
| |
或直接改 service 文件:
| |
3.7 加新用户
| |
3.8 日志
| |
四、方式二:docker-compose 集群化部署
生产环境强烈推荐 Docker 部署——方便升级、数据持久化、跟其他服务(反向代理、监控)集成。
4.1 拉取 yml 和镜像
| |
镜像清单(约 18 个容器):
| 镜像 | 用途 |
|---|---|
greenbone/scap-data | SCAP 数据 |
greenbone/vulnerability-tests | NVT 漏洞测试 |
greenbone/data-objects | 数据对象 |
greenbone/report-formats | 报告格式 |
greenbone/notus-data | notus 漏洞数据 |
greenbone/cert-bund-data | CERT-Bund 漏洞 |
greenbone/dfn-cert-data | DFN-CERT 漏洞 |
greenbone/redis-server | 任务队列 |
greenbone/pg-gvm | PostgreSQL 后端 |
greenbone/gvmd | 主管理 |
greenbone/gsa | Web UI |
greenbone/ospd-openvas | 扫描引擎 |
greenbone/openvas-scanner | 扫描 daemon |
greenbone/gvm-tools | 命令行工具 |
greenbone/gpg-data | GPG 签名 |
4.2 启动
| |
第一次启动要等所有 feed 同步(5-30 分钟),看日志:
| |
4.3 Web UI 访问
默认 https://localhost:9392(docker-compose yml 里绑定了 127.0.0.1:9392:80)。
默认 admin 密码:admin——第一次登录必须立即改密:
| |
4.4 改远程访问
docker-compose.yml 里:
| |
坑提醒:把 9392 直接暴露到公网极不安全——GVM 有 RCE 历史漏洞。必须走 Nginx 反代 + Basic Auth + IP 白名单。
4.5 删除环境(危险操作)
| |
五、gvm-check-setup 详解
跑完 gvm-setup / docker 启动后,建议跑一次:
| |
典型输出(成功):
| |
NVT 数量是核心指标——9 万+ 才算健康,低于 5 万说明漏洞库同步失败。
六、典型任务:扫描一个网段
登录 Web UI 后:
- Configuration → Targets → New Target
- Name:
内网服务器网段 - Hosts:
192.168.1.0/24 - Port List:
All IANA Assigned TCP and UDP - Alive Test:
Consider Alive
- Name:
- Configuration → Scan Configs → 选一个基线
Full and fast:常用Base:快,弱扫
- Scans → Tasks → New Task
- Name:
季度漏扫-2023Q2 - Target:
内网服务器网段 - Scanner:
OpenVAS Default - Scan Config:
Full and fast
- Name:
- Save → Start
- 扫描结果:Dashboard / Reports
坑提醒:
- 第一次跑完整扫描很慢(24-48 小时,9 万 NVT × 254 个 IP)
- 大规模扫描分批做,避免被目标网络的 IDS/IPS 拉黑
- 重要业务先打招呼再扫——避免触发告警 / 业务中断
七、生产环境建议
7.1 走 Nginx 反代
| |
7.2 走 LDAP/AD 集成
GVM 支持 LDAP 认证(22.4+),企业内网可对接 AD。
7.3 漏洞库同步策略
| |
7.4 备份
- apt 方式:备份
/var/lib/gvm//var/lib/openvas//etc/gvm/ - docker 方式:备份所有命名 volume(
docker volume ls)
八、典型坑速查
| 现象 | 原因 | 处理 |
|---|---|---|
gvm-check-setup Step 1 失败 NVT 数量 < 5 万 | 漏洞库没同步完 | 重跑 greenbone-feed-sync |
| 9392 端口访问不到 | 默认只监听 127.0.0.1 | 改 gsad.service 监听 0.0.0.0 |
| 扫描任务卡在 “Requested” | 扫描引擎没启动 | systemctl start ospd-openvas |
| 忘记 admin 默认密码 | UUID 在 gvm-setup 输出里 | runuser -u _gvm -- gvmd --user=admin --new-password=... |
| 扫描器报 “Host not alive” | 目标屏蔽 ICMP | 关掉 Alive Test 或改用 TCP ping |
| 漏洞库同步巨慢 | 没配代理 | 配 greenbone-feed-sync 走 HTTPS_PROXY 环境变量 |
九、2024+ 视角补充
本文写于 2023-04,2024-2026 期间 GVM / OpenVAS 关键演进:
- GVM 23.x / 24.x(2024-2025):notus-scanner 重写(Rust 重写后性能 5x);ospd-openvas 升级;GSA Web UI 全面重构(React 18 + TypeScript);PG 后端 PostgreSQL 15+
- Greenbone Community Edition (GCE) 23.04+:每月发版(vs 老版本 季度发版);greenbone-feed-sync 替代老的 gvm-feed-update(已 2024 全面 EOL)
- Greenbone Enterprise Appliance (GEA):商业版 2024 强化 SaaS 化部署(cloud.greenbone.net),不再需要本地硬件
- NVT 漏洞库 2024-2026:9 万+ → 11 万+ NVT(漏洞库持续增长);每天同步 Greenbone Community Feed
- 漏洞扫描生态(2024+ 视角):
- Nuclei 3.x(2024-2026):ProjectDiscovery 出品——YAML 模板定义扫描,社区模板市场(5000+ 模板),云原生漏洞扫描首选
- Trivy 0.50+(2024-2025):容器 / IaC / 镜像 / 文件系统 一站式扫描,K8s 集成完善
- Snyk / Aikido(2024):AI 辅助漏洞评估(判断是否真影响项目)
- Tenable Nessus 10.7+(2025):AI 漏洞优先级排序;云 connector(AWS / Azure / GCP)
- Qualys VMDR 4.x(2024):云原生扫描;资产清单 / 风险评分
- AI 驱动的漏洞扫描(2024+ 趋势):用 LLM 做漏洞优先级排序(“哪些漏洞该先修”)——传统按 CVSS 排不科学,AI 结合业务上下文判断更准
- 合规基线(2024+ 视角):CIS Benchmarks v8.0、NIST 800-53 Rev 5、等保 2.0 三级——GVM 内置基线持续更新
实战建议(2025-2026 视角):
- 传统漏洞扫描 → GVM 24.x Community Edition(仍是开源首选)
- 容器 / 云原生 → Trivy + Nuclei 黄金组合
- 企业 / 合规 → Tenable Nessus Pro / Qualys VMDR(商业付费)
- AI 辅助 → Snyk / Aikido(2024+ 趋势,AI 优先级排序)
- 免费 / 个人 → Trivy + Nuclei(开源 + 模板市场)
十、下一步
- 想要更现代化的漏洞管理 → 上 Greenbone Enterprise(商业版)/ Tenable Nessus(闭源老大)/ Qualys VMDR
- 想做基线合规扫描 → GVM 内置 CIS / PCI DSS Level 1 基线
- 想做大规模分布式扫描 → Greenbone Enterprise Appliance 多节点集群
- 想做自定义漏洞检测 → 写 NASL(NVT 脚本语言)
- 想要容器 / 云原生漏洞扫描 → Trivy + Nuclei 黄金组合
