CentOS 7 使用 Docker 部署 OpenVAS(GVM)完整流程

一、环境检查

部署前先确认系统环境满足要求。

1. 查看系统版本

cat /etc/redhat-release

示例:

CentOS Linux release 7.9.2009 (Core)

2. 查看内核版本

uname -r

示例:

3.10.0-1160.119.1.el7.x86_64

3. 查看系统架构

uname -m

示例:

x86_64

4. 查看CPU

lscpu | grep "^CPU(s)"

建议:

  • 最低:2 Core
  • 推荐:4 Core+

5. 查看内存

free -h

建议:

  • 最低:4GB
  • 推荐:8GB+

6. 查看磁盘

df -h

建议:

  • 至少50GB可用空间
  • 推荐100GB+

7. 检查SELinux

getenforce

建议:

Disabled

8. 检查防火墙

firewall-cmd --state

示例:

running

9. 检查Docker

docker --version

示例:

Docker version 28.5.1

10. 检查Docker Compose

docker compose version

docker-compose version

二、检查网络连通性

GitHub

ping github.com

Docker Hub

curl -I https://registry-1.docker.io

若超时:

Connection timed out

说明无法直接访问 Docker Hub。


三、查看已有镜像

docker images

示例:

immauss/openvas:latest

若已存在 OpenVAS 镜像,则无需再次下载。


四、创建部署目录

mkdir -p /opt/gvm2
cd /opt/gvm2

五、编写 Docker Compose

创建:

vi docker-compose.yml

内容:

version: '3.8'

services:
  openvas:
    image: immauss/openvas:latest

    container_name: openvas

    restart: unless-stopped

    ports:
      - "9392:9392"

    environment:
      USERNAME: admin
      PASSWORD: Admin123456

    volumes:
      - openvas_data:/data

volumes:
  openvas_data:

六、启动 OpenVAS

docker compose up -d

docker-compose up -d

七、查看容器状态

docker ps

示例:

openvas
Up 5 minutes (health: starting)

八、查看初始化日志

docker logs -f openvas

首次启动会执行:

Redis初始化

Redis ready.

PostgreSQL初始化

database system is ready to accept connections

GVM数据库初始化

Loading Default Database

生成证书

Generating certs...

同步漏洞库

greenbone-nvt-sync

九、漏洞库同步说明

首次启动需要同步:

NVT Feed

Network Vulnerability Tests

SCAP Feed

安全配置基线

CERT Feed

漏洞公告

同步过程可能持续:

配置 时间
2C 8G 30~60分钟
4C 8G 20~40分钟
8C 16G 10~20分钟

十、查看健康状态

docker inspect openvas --format='{{json .State.Health}}'

启动中:

{
  "Status":"starting"
}

成功后:

{
  "Status":"healthy"
}

十一、检查监听端口

ss -lntp | grep 9392

示例:

LISTEN *:9392

十二、开放防火墙

firewall-cmd --permanent --add-port=9392/tcp
firewall-cmd --reload

查看:

firewall-cmd --list-ports

十三、访问Web界面

浏览器访问:

https://服务器IP:9392

例如:

https://1.2.3.4:9392

首次访问

由于使用自签名证书:

Your connection is not private

选择:

高级
继续访问

即可。


十四、默认登录信息

用户名:

admin

密码:

Admin123456

十五、创建扫描任务

创建目标

菜单:

Configuration
  └── Targets

添加:

IP地址
主机名
网段

创建扫描任务

菜单:

Scans
 └── Tasks

新建:

Task Name
Target
Scan Config

推荐:

Full and Fast

启动扫描

点击:

▶ Start Scan

十六、查看扫描结果

菜单:

Scans
 └── Reports

可查看:

  • 漏洞等级
  • CVE
  • CVSS评分
  • 修复建议

十七、常用运维命令

查看容器

docker ps

查看日志

docker logs -f openvas

重启

docker restart openvas

停止

docker stop openvas

删除容器

docker rm -f openvas

查看数据卷

docker volume ls

备份数据

docker run --rm \
-v openvas_data:/data \
-v $(pwd):/backup \
busybox tar czf /backup/openvas_backup.tar.gz /data

十八、常见问题

1. health: starting 很久

原因:

  • 首次同步漏洞库

处理:

等待即可

2. 9392无法访问

检查:

ss -lntp | grep 9392
firewall-cmd --list-ports

3. Docker Hub无法访问

检查:

curl -I https://registry-1.docker.io

配置镜像加速器。


4. 容器反复重启

查看:

docker logs openvas

重点检查:

  • PostgreSQL
  • Redis
  • Feed同步

部署完成验收标准

满足以下条件即部署成功:

✓ docker ps 显示 healthy
✓ 9392端口监听
✓ Web界面可访问
✓ 能成功登录
✓ 能创建扫描任务
✓ 能生成扫描报告