12 KiB
created, type, tags
| created | type | tags | ||||
|---|---|---|---|---|---|---|
| 2026-03-08 | resource |
|
OpenVAS Usage Guide
Greenbone OpenVAS 漏洞扫描平台使用指南。基于 Greenbone Community Edition,部署在 PVE Security Scanner 上。
Access
| Item | Value |
|---|---|
| URL | https://192.168.68.84 |
| Backup URL | https://192.168.68.84:9392 |
| Username | admin |
| Certificate | Self-signed (浏览器需接受警告) |
Core Concepts
| Concept | Description |
|---|---|
| Target | 扫描目标,可以是单个 IP、IP 范围、子网 (CIDR) |
| Port List | 要扫描的端口集合 (默认提供 All TCP, Top 100, Top 1000 等) |
| Scan Config | 扫描策略,控制检测深度和范围 |
| Task | 将 Target + Scan Config 组合成一个可执行的扫描任务 |
| Report | 扫描结果报告,包含发现的漏洞和风险评级 |
| Schedule | 定时执行扫描任务 |
| Alert | 扫描完成后的通知动作 (邮件、HTTP 回调等) |
| NVT | Network Vulnerability Test,单个漏洞检测脚本 |
| CVE | 公共漏洞编号,OpenVAS 关联 CVE 数据库 |
| CVSS | 漏洞评分标准 (0-10),用于风险评级 |
Scan Configs (扫描策略)
| Config | Speed | Depth | Use Case |
|---|---|---|---|
| Discovery | Fast | Low | 仅发现主机和服务,不做漏洞检测 |
| Host Discovery | Very Fast | Minimal | 只检测主机是否存活 |
| System Discovery | Fast | Low | 发现操作系统和服务版本 |
| Base | Medium | Medium | 基础漏洞扫描,不含危险测试 |
| Full and fast | Medium | High | 完整扫描,跳过慢速 NVT (推荐日常使用) |
| Full and deep | Slow | Very High | 深度扫描,包含所有 NVT |
| Full and deep ultimate | Very Slow | Maximum | 包含可能导致服务中断的测试 (慎用) |
Quick Start: First Scan
Step 1: Create Target
- Menu: Configuration -> Targets
- Click New Target (左上角星号图标)
- Fill in:
- Name:
Internal Network(或具体名称) - Hosts:
192.168.68.0/24(或单个 IP) - Port List: 选择
All TCP and Nmap top 100 UDP
- Name:
- Click Save
Step 2: Create Task
- Menu: Scans -> Tasks
- Click New Task (左上角星号图标)
- Fill in:
- Name:
Internal Network Scan - Scan Targets: 选择刚创建的 Target
- Scanner:
OpenVAS Default - Scan Config: 选择策略 (建议首次用
Full and fast)
- Name:
- Click Save
Step 3: Run Scan
- 在 Task 列表中找到刚创建的任务
- 点击绿色 Start 按钮 (播放图标)
- Status 会从
New->Requested->Running->Done - 扫描时间取决于目标数量和策略:
- 单台主机 Full and fast: 10-30 分钟
- /24 子网 Full and fast: 2-8 小时
Step 4: View Report
- Task 完成后,点击 Last Report 日期链接
- 报告页面展示所有发现的漏洞
- 按 Severity 排序查看高危漏洞
Report Reading
Severity Levels
| Level | CVSS | Color | Action |
|---|---|---|---|
| Critical | 9.0-10.0 | Purple | 立即修复 |
| High | 7.0-8.9 | Red | 尽快修复 |
| Medium | 4.0-6.9 | Orange | 计划修复 |
| Low | 0.1-3.9 | Blue | 评估后决定 |
| Log | N/A | Grey | 信息收集,无需操作 |
Report Sections
- Results: 所有发现的漏洞列表
- Hosts: 按主机分组的结果
- Operating Systems: 检测到的操作系统
- Applications: 检测到的应用程序
- TLS Certificates: SSL/TLS 证书信息
- Error Messages: 扫描过程中的错误
Export Report
- 打开 Report
- 左上角下拉选择格式:
- PDF - 适合分享和存档
- CSV - 适合数据分析
- XML - 适合导入其他工具
- TXT - 纯文本摘要
- Click download icon
Common Scan Scenarios
Scenario 1: Scan Single Server
Target: 192.168.68.31 (PostgreSQL server)
Config: Full and fast
Port List: All TCP and Nmap top 100 UDP
重点关注:
- PostgreSQL 版本漏洞
- SSH 配置问题
- 系统补丁缺失
Scenario 2: Scan Entire Network
Target: 192.168.68.0/24
Config: Full and fast
Port List: All TCP and Nmap top 100 UDP
首次扫描建议在非工作时间进行,扫描会产生较大网络流量。
Scenario 3: Web Application Scan
Target: Web 服务器 IP
Config: Full and deep
Port List: All TCP
重点关注:
- HTTP 相关漏洞 (XSS, SQL injection, CSRF)
- TLS 配置 (弱加密、过期证书)
- Web 服务器版本泄露
Scenario 4: Compliance Check
Target: 所有关键服务器
Config: Full and fast
对照报告检查:
- 是否有默认密码
- 是否有未打补丁的服务
- 是否有不安全的协议 (telnet, FTP, SSLv3)
Scheduled Scans
Create Schedule
- Menu: Configuration -> Schedules
- Click New Schedule
- Fill in:
- Name:
Weekly Internal Scan - First Run: 选择开始时间 (建议非工作时间,如周日凌晨 2:00)
- Period:
1 week - Duration: 留空 (无时间限制)
- Name:
- Click Save
Assign Schedule to Task
- Edit existing Task
- Schedule 字段选择刚创建的 Schedule
- Save
Task 会按计划自动执行,报告自动生成。
Alerts (通知)
Email Alert
- Menu: Configuration -> Alerts
- Click New Alert
- Fill in:
- Name:
High Severity Email - Event:
Task run status changed->Done - Condition:
Severity at least->7.0(High) - Method:
Email - To Address: 你的邮箱
- From Address:
scanner@localhost
- Name:
- Click Save
- 在 Task 中关联此 Alert
Note: 需要配置 VM 的 SMTP 发送邮件。
Credential Scans (认证扫描)
认证扫描可以检测更多漏洞(如本地提权、软件版本),因为扫描器可以登录目标系统。
Create SSH Credential
- Menu: Configuration -> Credentials
- Click New Credential
- Fill in:
- Name:
Linux SSH Scan - Type:
Username + SSH Key或Username + Password - Username: 目标系统的用户名
- Password/Key: 对应的认证信息
- Auto Generate: No
- Name:
- Click Save
Use in Target
- Edit Target
- SSH Credential 字段选择创建的 Credential
- Save
认证扫描会发现更多漏洞(如未打补丁的本地包、内核漏洞)。
Performance Tips
| Tip | Effect |
|---|---|
| 缩小端口范围 | 减少扫描时间 |
用 Full and fast 而非 Full and deep |
快 2-5x,覆盖 90% 漏洞 |
| 分段扫描大网络 | 避免超时和资源耗尽 |
| 避免工作时间扫描 | 减少对生产环境影响 |
| 定期更新 Feed | 保持漏洞库最新 |
Maintenance
Update Vulnerability Feed
Feed 自动通过 Docker 容器更新。手动触发:
ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose pull
sudo docker compose up -d
Check Feed Status
Web UI: Administration -> Feed Status
| Feed | Description |
|---|---|
| NVT | 漏洞检测脚本 (最重要) |
| SCAP | CVE/CPE 数据 |
| CERT | 安全公告 |
| GVMD_DATA | 扫描策略和端口列表 |
所有 Feed 应显示 Current。如果显示 Update in progress,等待同步完成。
Backup
# 备份所有 Docker volumes
ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose down
sudo tar czf /tmp/greenbone-backup-$(date +%Y%m%d).tar.gz \
/var/lib/docker/volumes/greenbone-community-edition_*
sudo docker compose up -d
Reset Admin Password
ssh kai@192.168.68.84
cd /opt/greenbone
sudo docker compose exec -u gvmd gvmd gvmd --user=admin --new-password=<NEW_PASSWORD>
Report Workflow (报告使用流程)
Priority Matrix
| Priority | CVSS | Example | Timeline | Action |
|---|---|---|---|---|
| Critical | 9.0-10.0 | 远程代码执行、默认密码、未授权访问 | 24h 内 | 立即修复 |
| High | 7.0-8.9 | 本地提权、敏感信息泄露、SQL 注入 | 1 周内 | 尽快修复 |
| Medium | 4.0-6.9 | 弱加密、软件版本过旧、TLS 配置不当 | 1 月内 | 排期修复 |
| Low | 0.1-3.9 | 信息收集、Banner 暴露、非敏感信息泄露 | 按需 | 评估后决定 |
Step-by-Step Workflow
Step 1: Export Report
- 打开 Report -> 左上角选择格式
- 导出 PDF (存档分享) + CSV (数据分析)
- 建议按日期归档:
scans/2026-03-09-full-network.pdf
Step 2: Triage by Host
- 点 Hosts 标签,按漏洞数量排序
- 识别问题最多的主机,优先处理
Step 3: Analyze Vulnerabilities
- 点进具体漏洞,关注以下字段:
- Summary: 漏洞描述(是什么)
- Impact: 被利用后的影响(为什么要修)
- Solution: 修复建议(怎么修)-- 最有价值的部分
- CVE Reference: 关联的 CVE 编号(可查详细信息)
- Affected Software/OS: 受影响的软件版本
Step 4: Create Remediation Plan
- 按优先级为每个 Critical/High 漏洞创建修复任务
- 记录:主机 IP、漏洞名称、CVE、修复方案、负责人
- Medium 漏洞汇总为批量修复任务(如统一升级某软件)
Step 5: Fix and Rescan
- 修复完成后,对同一 Target 重新扫描
- 对比两次 Report,确认漏洞已消除
- Web UI: Scans -> Reports 可以看历史趋势
Recurring Scan Process
建议建立周期性扫描流程:
周日凌晨 2:00 自动全网扫描 (OpenVAS Schedule)
|
周一上午 查看报告,按优先级分类
|
周一-周五 修复 Critical 和 High 漏洞
|
下周日 自动复扫,对比改善情况
|
每月最后一周 导出月度报告,归档存储
Setup: Configuration -> Schedules -> 创建 Weekly Schedule (Sunday 02:00)
Report Comparison (趋势分析)
跟踪安全改善情况:
| Metric | How to Track |
|---|---|
| Critical/High 漏洞数量变化 | 每周报告对比 |
| 平均修复时间 | 记录发现日期和修复日期 |
| 新增 vs 已修复 | 对比相邻两次扫描 |
| 最高风险主机 | 按 Host 的 Severity Score 排序 |
Common Findings and Fixes
| Finding | Typical Fix |
|---|---|
| SSH weak algorithms | 更新 /etc/ssh/sshd_config 加密套件 |
| SSL/TLS outdated | 升级到 TLS 1.2+,禁用弱密码套件 |
| Default credentials | 修改默认密码,禁用默认账户 |
| Missing patches | apt upgrade / 系统补丁更新 |
| Open unnecessary ports | 关闭不需要的服务,配置防火墙 |
| HTTP without HTTPS | 配置 TLS 证书,强制 HTTPS 重定向 |
| SMBv1 enabled | 禁用 SMBv1,启用 SMBv2/v3 |
| SNMP public community | 修改 community string 或禁用 SNMP |
CLI Access (gvm-tools)
除了 Web UI,也可以通过命令行操作:
ssh kai@192.168.68.84
cd /opt/greenbone
# 进入 gvm-tools 容器
sudo docker compose exec gvm-tools bash
# 列出所有 task
gvm-cli --gmp-username admin --gmp-password <PASSWORD> \
socket --socketpath /run/gvmd/gvmd.sock \
--xml '<get_tasks/>'
# 列出所有 target
gvm-cli --gmp-username admin --gmp-password <PASSWORD> \
socket --socketpath /run/gvmd/gvmd.sock \
--xml '<get_targets/>'
Troubleshooting
| Problem | Solution |
|---|---|
| Web UI 打不开 | sudo docker compose ps 检查容器状态 |
| 登录失败 | Reset admin password (见上方) |
| Feed 一直 updating | 首次同步需 30-60 分钟,耐心等待 |
| 扫描卡在 Requested | 检查 ospd-openvas 容器日志: sudo docker compose logs ospd-openvas |
| 扫描结果为空 | 确认 Feed 已同步完成;检查目标网络是否可达 |
| 只扫到本机 | ospd-openvas 需要 network_mode: host 才能到达局域网 |
| Feed is syncing | 漏洞库同步中,等几分钟到半小时,Feed Status 全部 Current 后再扫 |
| 扫描速度很慢 | 减少目标范围;使用 Full and fast 策略 |
| 容器反复重启 | sudo docker compose logs <service> 查看错误 |
| 磁盘空间不足 | df -h 检查;清理旧报告和 Docker 无用镜像 sudo docker system prune |
Related
- PVE Security Scanner - 部署文档和安全架构
- Security Best Practices