gvm内网自动化扫描闭环需确保目标可识别、扫描可调度、报告可复用:先同步nvt/scap/cert数据并重启服务;再配置资产目标与合规扫描策略;最后创建定时任务并导出pdf/xml报告,结合脚本归档比对与反向代理优化访问。

在Linux上用OpenVAS(现称GVM)对内网服务器做自动化漏洞扫描并生成合规报告,关键不在“能不能”,而在于三件事是否闭环:目标可识别、扫描可调度、报告可复用。整个流程不依赖商业授权,Kali Linux开箱即用,但默认安装后不能直接跑任务——缺的是数据、策略和调度逻辑。
一、确保GVM服务就绪且漏洞库完整
很多扫描失败或配置为空,根源是NVT、SCAP、CERT等feed未成功同步。这不是安装问题,而是网络与权限问题:
- 运行 sudo gvm-check-setup 查看状态,重点关注 “greenbone-nvt-sync”、“greenbone-scapdata-sync”、“greenbone-certdata-sync” 是否显示 OK
- 若提示 “Feed out of date” 或 “No scan configs available”,先手动强制更新:
sudo greenbone-nvt-sync --force && sudo greenbone-scapdata-sync --force && sudo greenbone-certdata-sync --force - 国内用户建议临时切换镜像源(如清华源),避免超时中断;同步过程可能耗时20–60分钟,期间不要中断终端
- 同步完成后重启服务:sudo systemctl restart gvmd ospd-openvas gsad
二、定义内网资产与扫描策略
自动化扫描的前提是资产清晰、策略明确。别跳过这步,否则报告会漏关键系统或误报泛滥:
- 在Web界面(https://localhost:9392)登录后,进入 Configuration → Targets,添加内网段(如 192.168.10.0/24)或具体IP列表;支持主机名、CIDR、范围格式(如 192.168.10.10–192.168.10.50)
- 进入 Configuration → Scan Configs,确认至少存在 “Full and fast” 或 “Discovery” 等预置配置;如为空,说明feed未生效,需回退上一步排查
- 如需满足等保2.0或ISO 27001等要求,可复制 “Full and fast” 并禁用非必要插件(如暴力破解类),减少误报与网络扰动
三、创建定时扫描任务并导出结构化报告
真正实现“自动化”,靠的是任务调度 + 报告模板 + 导出接口,而非手动点一次:
- 进入 Scans → Tasks,点击“+”新建任务,选择目标、扫描配置、扫描器(通常选 “OpenVAS Default”),设置计划类型为 Recurring,例如每周日凌晨2点执行
- 扫描完成后,报告默认保存在系统中;进入 Reports → All Reports,找到对应任务的最新报告,点击右侧下拉菜单选择 Export
- 推荐导出格式:PDF(含摘要页与高危项汇总) 或 XML(供SIEM平台解析);如需对接Jira或钉钉,可用 gvm-cli 调用OMP协议批量获取报告ID并提取CVE、CVSS、修复建议字段
- 合规报告核心字段应包含:扫描时间窗口、覆盖资产清单、高危漏洞数量及TOP5详情(含CVE编号、CVSS评分、受影响服务版本)、修复建议原文——这些GVM原生支持,无需二次加工
四、让报告真正“可用”的两个实操细节
很多团队扫完就扔,是因为报告没嵌入工作流。以下两点能快速提升交付价值:
-
自动归档与比对:用脚本定期调用 gvm-cli --gmp-username admin --gmp-password xxx --xml "get_reports ..." 获取最新报告ID,再用 xmllint 提取
<severity></severity>和<name></name>字段,生成简易趋势表(如“本周新增高危漏洞:2个,下降1个”) - 内网免密访问优化:若多台运维机需查看报告,可在Kali上启用反向代理(如nginx),将 https://gvm.internal/report/xxx.pdf 映射到内网域名,并关闭客户端证书校验(仅限可信内网)











