# OpenVAS 的简单安装和使用

OpenVAS 是一个开源的漏洞评估系统。

## 环境准备

* 这里用 CentOS 7 Minimal 版本开始安装
    
* 开始之前，首先关闭 Selinux 和 firewalld，以免造成一些不必要的干扰，安装完成后可以酌情开启。
    
* 考虑到一些特殊的网络状况，可能需要**设置代理服务器**，注意后面的安装可能用到 RSYNC，所以设置代理的时候也要加上：`RSYNC_PROXY=10.211.55.2:8016` 诸如此类的语句。
    

最后是一些必要的工具准备：

`yum install -y bzip2 wget net-tools`

## 安装

安装过程需要借助第三方源进行，简单的一个命令：

```bash
wget -q -O - http://www.atomicorp.com/installers/atomic | sh
```

> 注意代理服务器

接下来就是：`yum install openvas`

安装过程稍嫌繁琐，包括设置密码，监听地址等内容。最后还需要进行数据更新，时间可能较长。

> 选择下载工具的一步：curl/wget/rsync 三选一，这里尽可能选择 rsync，因为 curl 和 wget 都只下载 nvt 数据，而其余无法下载的数据在后面还是需要的。

## 检查

安装结束之后会启动几个服务：

* redis：数据库
    
* openvas-manager：调度服务
    
* openvas-scanner：扫描服务
    
* gsad：前端
    

另外，OpenVas 还提供了安装检查工具`openvas-check-setup`，该工具运行过程中将会检查安装情况以及数据完整性，并给出相应的操作、补救建议。

一切就绪后，可以打开缺省端口 9392 尝试使用了，例如`https://openvas:9392`，打开后是个丑陋的登录页面：

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1745940982108/a17289f7-9534-4405-8e0e-ab54b13a808f.png align="center")

输入用户名密码之后，就进入系统的首页了。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1745940992459/c925ec73-f8a5-42bd-81b7-4e8bdd1f20ac.png align="center")

## 任务和运行

### 新建一个任务

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1745941008433/178c3bc0-3fc2-4b56-b916-588a6fed2c32.png align="center")

* Host：被扫描检测的主机，主机列表可以在主菜单的 Asset Management 下级 Host 中找到。
    
* Scan Config：扫描的配置，可以在 Configuration -&gt; Scan Config 中找到。
    

### 运行

在 Scan Management 中可以看到任务列表，点击右侧的播放按钮即启动运行 运行时间随扫描目标、服务器性能、以及扫描配置影响，可能会很长。 最终生成的报告：

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1745941014724/a6a20611-17a9-489b-8e02-ac253cda6d81.png align="center")

## openvas-cli

前面提到，这个扫描过程可能很长，另外，为了配合我们的每日构建或者其他的周期性检查，可以使用 openvas 的命令行工具来进行任务的控制。

下面举几个典型的例子：

```bash
omp -T # 获取系统中保存的主机，会列出名字和 UUID
omp -g # 获取系统中现有的扫描配置，会列出名字和 UUID
```

```bash
omp -w admin -u admin \
  -C -n autotask -t b493b7a8-7489-11df-a3ec-002264764cea \
  -c daba56c8-73ec-11df-a475-002264764cea

# 上面的命令创建了一个任务，名字叫 autotask，
# 目标主机的 ID 为 b493b7a8-7489-11df-a3ec-002264764cea，
# 扫描配置的 ID 为 daba56c8-73ec-11df-a475-002264764cea
```

```bash
omp -G # 列出 Task 的名字和 UUID
omp -M 22bc21be-3eeb-4d43-9157-07515120c574 # 启动一个任务
omp -G  22bc21be-3eeb-4d43-9157-07515120c574 # 列出该 ID 任务的执行列表（每次任务执行都会有一个新的下一级的 UUID，用于记录执行情况）
omp -R fa7b3c8f-db75-44f6-8821-910f8f4b83e2 # 获取这一次执行的结果报表
```

有了上述内容，就可以完成漏洞扫描的自动触发，甚至可以根据最终报表，来进行数据分析和告警等后续动作。

> openvas-nvt-sync、openvas-certdata-sync、openvas-nvt-sync 三个工具用于更新数据，应定时运行。
