OpenVAS(Greenbone Community Edition)漏洞扫描工具安装手册
适用场景:在 Debian 12 或 Ubuntu 24.04 LTS 上,以 Docker Compose 部署 Greenbone Community Edition(OpenVAS)。本手册用于授权的内部资产漏洞评估,不得对未授权目标发起扫描。
1. 方案说明
OpenVAS 现属于 Greenbone Community Edition(GCE)漏洞管理组件。本文采用 Greenbone 官方 Community Containers 部署方式,避免从源码编译大量依赖。
官方容器方案主要面向学习、测试和熟悉产品;生产环境应评估容量、备份、访问控制和厂商支持要求。
2. 资源与网络要求
| 项目 | 最低配置 | 建议配置 |
|---|---|---|
| CPU | 2 核 | 4 核及以上 |
| 内存 | 4 GB | 8 GB 及以上 |
| 磁盘可用空间 | 20 GB | 60 GB 及以上 |
- 建议部署在独立 Linux 虚拟机,不与业务系统混用。
- 扫描器应能路由到被授权的目标网段。
- 管理界面仅应向管理员网络开放;不要将其直接暴露到公网。
- 首次下载容器与漏洞库数据耗时较长,请准备稳定网络和充足磁盘。
3. 安装 Docker Engine
以 Ubuntu/Debian 为例,先安装基础依赖:
sudo apt update
sudo apt install -y ca-certificates curl
随后按 Docker Engine 官方安装文档 安装 Docker Engine 与 Docker Compose 插件。安装完成后验证:
docker --version
docker compose version
将当前用户加入 docker 组,并重新登录终端后生效:
sudo usermod -aG docker $USER
su - $USER
4. 部署 Greenbone Community Edition
创建部署目录:
export DOWNLOAD_DIR=$HOME/greenbone-community-edition
mkdir -p "$DOWNLOAD_DIR"
cd "$DOWNLOAD_DIR"
Greenbone 官方会维护 Compose 文件与安装脚本。建议始终获取最新脚本:
curl -f -O https://greenbone.github.io/docs/latest/_static/setup-and-start-greenbone-community-edition.sh
chmod u+x setup-and-start-greenbone-community-edition.sh
./setup-and-start-greenbone-community-edition.sh
若采用手动方式,请以 Greenbone Community Containers 官方文档 中最新的 compose.yaml 为准,然后执行:
docker compose -f "$DOWNLOAD_DIR/compose.yaml" pull
docker compose -f "$DOWNLOAD_DIR/compose.yaml" up -d
查看容器状态和初始化日志:
docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps
docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs -f
首次启动需要下载漏洞测试、SCAP、CERT 等数据,完成前不要急于创建扫描任务。
5. 修改管理员密码
Community Containers 默认会创建 admin 用户。默认密码不应继续使用。待 gvmd 容器正常运行后,执行:
docker compose -f "$DOWNLOAD_DIR/compose.yaml" \
exec -u gvmd gvmd gvmd --user=admin --new-password='请替换为高强度密码'
密码包含 $、空格等特殊字符时,应使用单引号包裹。
6. 登录与访问控制
在扫描器主机本地浏览器访问:
https://127.0.0.1
如需由管理员工作站访问,应优先使用 VPN、堡垒机或反向代理,并在主机防火墙中仅允许管理网段访问 HTTPS 端口。首次访问会看到自签名证书提示;内部测试可确认后继续,正式使用建议配置受信任证书。
不要将 GSA 管理界面直接暴露在公网,也不要使用默认管理员密码。
7. 创建首个授权扫描任务
- 登录 Greenbone Security Assistant(GSA)。
- 在 Configuration → Targets 新建目标,只填写已获授权的 IP、网段或主机名。
- 在 Scans → Tasks 新建任务,选择目标与适合的扫描配置。
- 首次建议从低风险配置、小范围资产开始。
- 扫描完成后,在 Scans → Reports 查看结果;先验证误报和资产归属,再安排修复。
扫描前应告知业务负责人。高强度扫描可能触发 IDS/IPS、占用网络带宽或影响脆弱设备。
8. 日常维护
查看服务状态
docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps
docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs --tail=200
更新镜像与组件
更新前先备份数据卷和 Compose 文件。然后执行:
docker compose -f "$DOWNLOAD_DIR/compose.yaml" pull
docker compose -f "$DOWNLOAD_DIR/compose.yaml" up -d
Greenbone 的漏洞测试和安全信息通过官方 Community Feed 数据容器提供;不要混用来源不明的第三方镜像或旧同步脚本。
备份建议
- 备份
$DOWNLOAD_DIR/compose.yaml与部署说明。 - 定期备份 Docker 数据卷中的 PostgreSQL、报告和配置数据。
- 在升级前完成可恢复备份,并记录当前镜像版本。
9. 常见问题
页面无法打开或容器未就绪
docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps
docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs -f
重点查看 gvmd、gsad、ospd-openvas、redis-server 等服务日志;首次导入 Feed 时应耐心等待。
Feed 长时间未完成
- 检查宿主机磁盘空间、DNS、时间同步和公网访问能力。
- 检查容器拉取是否被代理或防火墙阻断。
- 参考 Greenbone 官方容器故障排查。
扫描任务失败
- 确认扫描目标已授权且网络可达。
- 确认目标防火墙、ACL 和 IDS/IPS 的策略允许本次授权扫描。
- 先用小范围、低风险配置验证,再逐步扩大范围。