OpenVAS 漏洞扫描是网络安全运维中最常用的开源漏洞检测方案,本文以 GVM(Greenbone Vulnerability Management)为核心,完整演示从安装部署到定时漏扫的实战配置过程,帮助安全工程师快速建立可落地的漏洞管理流程。
适用场景
OpenVAS 漏洞扫描适用于以下场景:内网主机定期合规漏扫、新系统上线前的安全验收、Web 与数据库资产的暴露面检查,以及等保测评中的漏洞发现环节。配合安全基线检查,可覆盖多数中小型企业的漏洞管理需求。
前置条件
- 一台 Ubuntu 22.04 / Debian 12 服务器(建议 ≥ 4 核 CPU、8 GB 内存、50 GB 磁盘)
- root 权限或 sudo 权限
- 目标资产网络可达,且已获得授权扫描
原理说明
GVM 由三大组件构成:gvmd(管理守护进程,负责任务调度与报告存储)、openvas-scanner(执行扫描,加载 NVT 漏洞测试插件)、gsad(Web 管理界面)。扫描器通过 Greenbone Vulnerability Protocol(GVP)与 gvmd 通信,插件库(NVTs)通过 greenbone-feed-sync 定期更新,保证检测能力与最新漏洞同步。
操作步骤
1. 安装 GVM
sudo apt update
sudo apt install -y gvm
sudo greenbone-feed-sync # 同步漏洞库,耗时较长
2. 初始化并启动服务
sudo gvm-setup # 首次初始化,生成 admin 默认密码
sudo gvm-start # 启动全部服务
初始化完成后浏览器访问 https://服务器IP:9392,使用 admin 账号与初始化输出中的密码登录,首次登录后务必修改默认密码。
3. 创建扫描目标
导航至 Configuration → Targets → 新建,填写目标名称与主机列表(如 192.168.1.0/24),端口范围选择 All IANA assigned TCP,凭据留空即执行无凭据扫描。
4. 创建扫描任务
# Scans → Tasks → 新建
# 名称: 内网季度漏扫
# 扫描配置: Full and fast
# 目标: 上一步创建的目标
保存后点击任务行首的 播放按钮 启动扫描,状态由 Requested → Running → Done。
5. 分析报告
# Scans → Reports → 打开最近报告
# 左侧按严重等级筛选: High / Critical
# 点击漏洞 ID 查看详情与修复建议 (Solution)
6. 配置定时漏扫
# 方法一: Web 界面 Schedule 模块配置周期后挂到任务上
# 方法二: cron 调用命令行
sudo apt install -y gvm-tools
gvm-cli --gmp-username admin --gmp-password 密码 --socketpath /run/gvmd/gvmd.sock --xml "<create_task><name>每日漏扫</name><config id='daba56c8-73ec-11df-a475-002264764cea'/><target id='目标ID'/></create_task>"
# 写入 crontab
0 2 * * * /usr/bin/gvm-cli --gmp-username admin --gmp-password 密码 --socketpath /run/gvmd/gvmd.sock --xml "<start_task task_id='任务ID'/>"
配置验证
sudo gvm-check-setup # 输出 OK 表示安装完整
sudo gvmd --version # 查看 gvmd 版本
curl -k https://127.0.0.1:9392 -o /dev/null -w "%{http_code}
" # 期望 200
用 Nmap 对同一目标做端口扫描交叉比对,确认 OpenVAS 发现的服务与端口基本一致;漏扫报告为空时先检查目标是否可达、凭据是否配置。
常见问题
Q1: gvm-setup 报错 “Failed to rebuild the feed” 如何处理?
多为同步中断导致。先执行 sudo greenbone-feed-sync --type GVMD_DATA 重试,再执行 sudo gvm-setup;若仍失败,清空 /var/lib/gvm/ 下的 feed 缓存后重试。
Q2: 扫描完成但报告为空?
检查目标地址段是否正确、目标主机防火墙是否放行扫描流量,并确认使用 Full and fast 而非仅主机发现的配置;无凭据扫描对 Windows 主机的检测覆盖有限,可补充 SSH/Windows 凭据后重扫。
Q3: 服务器内存不足导致扫描卡死?
GVM 默认并发较高,可降低扫描并发:编辑 /etc/gvm/ospd-openvas.conf,将 max_parallel_scans 调整为 2~4,并限制单任务目标规模,避免一次扫描整个 /8 大网段。
总结
OpenVAS 漏洞扫描的核心在于「部署 → 配置目标 → 定时扫描 → 闭环修复」。本文通过 GVM 全流程实战,实现了从零到定时漏扫的落地;建议将扫描结果导入工单系统,对 High/Critical 漏洞建立修复时限与复扫验证机制,形成可持续的漏洞管理闭环。