OpenVAS(Greenbone Community Edition)部署操作手册

一、概述

OpenVAS 现已并入 Greenbone Community Edition(GCE),是一套开源的漏洞扫描与管理框架,主要由以下组件构成:

组件 作用
gvmd (GVM Daemon) 核心管理进程,负责任务调度、用户/权限管理
gsa / gsad (Greenbone Security Assistant) Web 管理界面
ospd-openvas 扫描引擎调度服务,实际调用 openvas-scanner
openvas-scanner 漏洞探测引擎本体
pg-gvm (PostgreSQL) 数据存储
notus-scanner 基于产品/版本的本地漏洞匹配
NVT / SCAP / CERT Feed 漏洞特征库与知识库数据

推荐使用官方维护的 Docker Compose 方式部署,避免手工编译依赖带来的兼容性问题。


二、环境要求

  • 操作系统:Linux(推荐 Ubuntu 22.04 / 24.04 或 Debian 12,x86_64)
  • CPU:≥ 4 核(Feed 同步和扫描期间 CPU 占用较高)
  • 内存:≥ 8 GB(生产环境建议 16 GB 以上)
  • 磁盘:≥ 30 GB 可用空间(漏洞特征库随时间增长)
  • 网络:需能访问 Greenbone 官方 Feed 源(或已配置内网镜像/代理)
  • 已安装 Docker Engine ≥ 20.10 与 Docker Compose Plugin ≥ 2.x

检查 Docker 环境:

docker --version
docker compose version

三、部署方式一:Docker Compose 部署

1. 获取官方 Compose 文件

mkdir -p /opt/gvm && cd /opt/gvm
curl -O https://raw.githubusercontent.com/greenbone/openvas-docker/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/greenbone/openvas-docker/main/.env

建议以 GitHub 上 greenbone/gvm-compose(或 docker-compose.yml 官方样例)为准,具体文件名以官方仓库当前发布为准,部署前先核对版本对应关系(gvmd / gsa / ospd-openvas 需匹配同一发行周期)。

2. 检查并调整 .env 配置

关键变量说明:

# 各组件镜像 Tag,建议锁定具体版本号而非 latest,便于回滚
GVMD_VERSION=stable
GSA_VERSION=stable
OPENVAS_SCANNER_VERSION=stable
OSPD_OPENVAS_VERSION=stable

# Web 界面监听端口
HTTPS_PORT=443

# 数据卷路径(如需持久化到指定磁盘可修改)

生产环境建议:

  • latest 替换为固定版本号,避免升级引入未知变更
  • 数据卷(gvmd_datavt_datascap_datacert_datapsql_datapsql_socket_vol)建议挂载到独立磁盘或分区

3. 首次启动并同步 Feed

cd /opt/gvm
docker compose up -d

首次启动会自动拉起 Feed 同步容器(gvmdnotus-scannernvtscapcert 等),下载漏洞特征库,耗时较长(视网络情况 30 分钟至数小时不等)

查看同步进度:

docker compose logs -f gvmd

可通过以下方式确认 Feed 是否就绪:

docker compose exec gvmd gvmd --get-scanners

4. 获取初始管理员密码

官方镜像首次启动会在 gvmd 容器内自动创建 admin 用户,密码可通过日志获取:

docker compose logs gvmd | grep -i "User created"

若未自动生成,可手动创建:

docker compose exec gvmd gvmd --create-user=admin --new-password='<强密码>'

5. 访问 Web 管理界面

浏览器访问:

https://<服务器IP或域名>:443

首次访问会提示自签名证书告警(默认使用自签证书),生产环境建议替换为企业内部 CA 签发证书或通过 Nginx 反向代理接入正式证书。


四、部署方式二:OVA 虚拟设备导入

除 Docker Compose 自建方式外,Greenbone 官方也以 OVA(Open Virtualization Appliance) 格式提供预制虚拟设备,可直接导入主流 Hypervisor。适合快速搭建测试环境,或已有虚拟化平台、不想自行维护 Docker 栈的场景。

1. OVA 来源说明

类型 说明
OPENVAS FREE(官方入门版) Greenbone 官方提供,需通过官网表单申请获取,使用 Community Feed,功能相对精简,适合个人/非生产环境
Greenbone Enterprise Appliance 官方商业设备,需订阅密钥(Subscription Key)激活,使用 Enterprise Feed,面向企业客户
第三方预制 OVA(如 NetmanageIT) 非 Greenbone 官方维护,内置 Ubuntu + Docker + 已同步 GCE 全家桶,导入即用,仅建议用于个人测试,不建议用于生产

纯开源 Community Edition(自建、非订阅)路线没有官方直接发布的"开箱即用 OVA",Docker Compose 仍是官方持续维护的开源交付方式;OVA 主要对应 Greenbone 的设备化产品线。

2. VMware ESXi / VirtualBox 导入(官方标准流程)

  • VMware ESXi:登录 Web 管理界面 → Virtual Machines → Create/Register VM → Deploy a virtual machine from an OVF or OVA file → 选择 OVA 文件 → 按向导完成
  • VirtualBox:菜单栏 File → Import Appliance → 选择 OVA 文件 → 按向导完成
  • 导入前建议校验文件完整性(官方会提供 checksum,Windows 下可用 PowerShell 计算比对,防止文件被篡改)
  • 首次开机会进入设备自带的 First Setup Wizard,完成网络、密码等初始化配置(此流程与 Hypervisor 无关,更换平台仍需走一遍)

3. Proxmox VE(PVE)导入

PVE 没有像 VMware/VirtualBox 那样的"图形界面直接导入 OVA"入口(较新版本 Web UI 已部分支持),标准方式是命令行导入。

方式 A:CLI 导入(通用,推荐)

# 1. 上传 OVA 到 PVE 宿主机
scp greenbone-appliance.ova root@pve-host:/var/lib/vz/template/iso/

# 2. OVA 本质是 tar 包,解压出 .ovf 描述文件和 .vmdk 磁盘
cd /var/lib/vz/template/iso/
tar xvf greenbone-appliance.ova
# 得到类似 xxx.ovf / xxx.vmdk / xxx.mf

# 3. 导入(未使用的 VMID + ovf 文件 + 目标存储名,建议转 qcow2)
qm importovf <VMID> ./xxx.ovf <目标存储名,如local-lvm> --format qcow2

导入后检查并调整 VM 配置:

qm config <VMID>                              # 查看导入结果
qm set <VMID> --scsihw virtio-scsi-pci         # 使用 VirtIO SCSI 控制器
qm set <VMID> --net0 virtio,bridge=vmbr0       # 使用 VirtIO 网卡
qm set <VMID> --ostype l26                     # Linux 2.6+ 内核
qm set <VMID> --agent enabled=1                # 启用 QEMU Guest Agent
qm set <VMID> --boot order=scsi0               # 设置启动盘

方式 B:PVE 8.x/9.x Web UI 导入

数据中心 → 存储 → 目录类型存储 启用 "Import" 内容类型,将 OVA 放入对应目录后,可在创建 VM 向导中直接选择"从 OVF/OVA 导入"。

4. PVE 导入 Greenbone OVA 的注意事项

事项 说明
磁盘体积 已同步 Feed 的镜像可能数十 GB,转换耗时与体积成正比,导入前用 qemu-img info xxx.vmdk 先确认大小
网卡驱动 官方 OVA 面向 VMware/VirtualBox,导入后网卡需手动改为 virtio,若系统内未识别 virtio 驱动,可临时回退为 e1000
UEFI/Secure Boot 若原设备要求 Secure Boot,需在 PVE 中配置 OVMF + Secure Boot,并确认 Guest OS 类型(至少 Debian 11 64-bit)匹配,否则可能无法启动
控制台显示异常 开机后黑屏但 CPU 有负载,通常是设备默认走串口输出,需在硬件中添加 Serial 设备并将显示类型改为 Serial terminal
完整性校验 建议对比官方发布的 checksum,避免因传输不完整(如 scp 中断)导致导入报错或系统异常
订阅激活 若导入的是 Enterprise/Free 系列官方设备,首次开机仍需完成其自带的 First Setup Wizard(网络、密钥等),与更换 Hypervisor 无关

5. 两种部署方式对比

维度 Docker Compose 自建 OVA 导入
适用场景 生产环境、需要精细化运维和版本控制 快速搭建测试环境、已有虚拟化平台
版本可控性 高(可锁定各组件镜像版本) 依赖厂商发布节奏
维护成本 需自行维护容器编排、备份、升级 官方/第三方设备自带初始化流程,维护相对简单
开源合规性 完全对应开源 Community Edition Free 版为官方精简版;企业版需订阅;第三方 OVA 非官方维护
生产可用性 推荐 官方 Free/Enterprise 可用;第三方 OVA 不建议用于生产

五、初始化配置

1. 修改管理员密码

登录后立即在 Administration → Users 中修改初始密码,并按需创建独立运维账号(避免共用 admin)。

2. 确认 Feed 数据状态

Administration → Feed Status 中检查:

  • NVT Feed(漏洞检测脚本)
  • SCAP Feed(CVE/CPE 数据)
  • CERT Feed(安全通告)

三者均应显示"最新(Current)"状态,否则扫描结果可能不准确。

3. 配置扫描凭据(Credentials)

用于认证扫描(登录后深度检测),路径:Configuration → Credentials → New Credential,支持:

  • SSH(用户名/密码或密钥)
  • SMB(Windows 域账号)
  • SNMP

建议使用最小权限专用扫描账号,而非管理员账号。

4. 配置扫描目标(Targets)

Configuration → Targets → New Target

  • 填写 IP/网段/主机名
  • 选择端口范围(默认全端口耗时较长,可先用常用端口列表)
  • 关联已创建的凭据(用于认证扫描)

5. 创建扫描任务(Tasks)

Scans → Tasks → New Task

  • 关联 Target
  • 选择扫描配置(Scan Config),常用:
    • Full and fast:常规全面扫描(推荐日常使用)
    • Discovery:仅做资产发现
    • Host Discovery:存活探测
  • 可设置定时调度(Schedule)实现周期性扫描

六、日常运维

1. Feed 更新

Feed 数据每日更新,容器内置定时任务会自动同步,也可手动触发:

docker compose exec gvmd greenbone-feed-sync --type NVT
docker compose exec gvmd greenbone-feed-sync --type SCAP
docker compose exec gvmd greenbone-feed-sync --type CERT

2. 版本升级

cd /opt/gvm
docker compose pull
docker compose up -d

升级前建议:

  • 备份 PostgreSQL 数据卷
  • 核对 gvmd / gsa / ospd-openvas 版本兼容矩阵(官方 Release Notes)

3. 数据备份

# 备份数据库
docker compose exec pg-gvm pg_dumpall -U gvmd > /backup/gvm_$(date +%Y%m%d).sql

# 备份数据卷(容器停止状态下更安全)
docker compose stop
tar czf /backup/gvm_volumes_$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/gvm_*
docker compose start

4. 日志与故障排查

# 查看各服务日志
docker compose logs -f gvmd
docker compose logs -f ospd-openvas
docker compose logs -f gsa

# 查看容器健康状态
docker compose ps

常见问题:

现象 排查方向
无法登录 Web 界面 检查 gsad 容器是否启动、443 端口是否被占用/防火墙放行
扫描一直排队不执行 检查 ospd-openvas 与 openvas-scanner 容器是否正常、Feed 是否同步完成
扫描结果为空 确认凭据配置正确、目标主机端口开放、Feed 数据是否最新
Feed 同步失败 检查出网策略是否放通 Greenbone Feed 源,或配置代理/内网镜像

七、安全加固建议

  1. 网络隔离:扫描服务器建议部署在独立管理网段,仅开放必要端口(443)给运维终端。
  2. 访问控制:Web 界面前置 Nginx/WAF,限制访问来源 IP,启用双因素认证(如支持)。
  3. 凭据管理:扫描凭据使用最小权限专用账号,定期轮换密码。
  4. 日志审计:开启操作日志留存,定期审查用户登录与任务创建记录。
  5. 合规扫描授权:对外部网段扫描前务必获得书面授权,避免误扫产生业务影响或法律风险。
  6. 数据备份:定期备份数据库与配置,制定恢复演练计划。

八、参考资料

Copyright © https://yan-jian.com 2023 - 2026 All Right Reserved all right reserved,powered by Gitbook更新时间: 2026-08-17 18:40:07

results matching ""

    No results matching ""