OpenVAS开源风险评估系统部署方案

OpenVAS,即开放式漏洞评估系统,是一个用于评估目标漏洞的杰出框架。功能十分强大,最重要的是,它是“开源”的——就是免费的意思啦~

它与著名的Nessus“本是同根生”,在Nessus商业化之后仍然坚持开源,号称“当前最好用的开源漏洞扫描工具”。最新版的Kali Linux(kali 3.0)不再自带OpenVAS了,所以我们要自己部署OpenVAS漏洞检测系统。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。

但是它的最常用用途是检测目标网络或主机的安全性。它的评估能力来源于数万个漏洞测试程序,这些程序都是以插件的形式存在。openvas是基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,用户通过浏览器或者专用客户端程序来下达扫描任务,服务器端负责授权,执行扫描操作并提供扫描结果。

本文档属于部署方案文档,详细介绍了部署方法,搭建部署过程中有很多踩过的坑,这里整理出来供参考。

OpenVAS系统架构

一套完整的openvas系统包括服务器端和客户端的多个组件,如下图所示:

 

服务器层组件(建议都安装) 客户层组件(任选其一安装即可)
OpenVAS-scanner(扫描器) 负责调用各种漏洞检测插件,完成实际的扫描操作。 OpenVAS-cli(命令行接口) 负责提供从命令行访问OpenVAS服务层程序。
OpenVAS-manager(管理器) 负责分配扫描任务,并根据扫描结果生产评估报告。 Greenbone-security-assistant(安全助手) 负责提供访问OpenVAS服务层的Web接口,便于通过浏览器来建立扫描任务,是使用最简便的客户层组件。
OpenVAS-administrator(管理者) 负责管理配置信息,用户授权等相关工作。 Greenbone-Desktop-Suite(桌面套件) 负责提供访问OpenVAS服务层的图形程序界面,主要在windows系统中使用。

kali Linux安装openvas

我这里是在kali linux系统上安装的openvas,最新版本的kalilinux系统是不带openvas的

注意:openvas服务器端仅支持安装在linux操作系统中,客户端安装在windows和Linux系统均可。

我的linux系统版本号如下:

 

 

虚拟机的网络连接方式如下,设置为桥接模式,设置为NAT。

安装openvas过程

1. 更新软件包列表:

         apt-get update

2. 获取到最新的软件包:

         apt-get dist-upgrade

3. 安装openvas

         apt-get install openvas

执行以上命令后,如果没有报错,说明已经成功安装openvas。

kali Linux配置openvas

4.下载并更新OpenVAS库

openvas-setup

 

在更新openvas库过程中创立了证书,下载及更新了一切扫描插件。

5.在更新OpenVAS库时,自动为admin用户创建了一个密码,只是该密码比较长,不容易记忆,我们使用如下命令将admin密码修改为容易记忆的密码,以kali123为例:

 

另外,我们新增一个普通用户wdl1,如下图:

6.openvas-check setup

这个命令用于查错并用来确认OpenVAS是否成功安装,用apt-get安装总会出现这样那样的错误,我们可以用openvas-check-setup查看安装到哪步出错了,以及缺少什么东西。

 

当出现如下结果时,表示安装成功:

 

然后输入openvasmd –rebuild:rebuild the openvasmd database

安装完成后,在应用程序—〉漏洞分析中会出现openvas这个应用,如下图:

 

注意:openvas安装好之后并没有openvas-restart命令和openvas-status命令,该命令需要自定义安装。

在/usr/bin目录下,新建两个文件夹,分别为openvas-restart和openvas-status,然后赋予这两个文件可执行的权限:

 

openvas-restart和openvas-status内容分别如下:

 

之后就能够使用openvas-restart命令重启系统,使用openvas-status察看openvas系统状态了:

 

 

可以看到openvas目前处于运行状态。

kali linux启动openvas

由于OpenVAS是基于C/S,B/S架构进行工作的,所以,如果要使用该漏洞检测系统,必须先将OpenVAS服务启动,客户端才能连接进行测试。

双击应用程序中的openvas start启动openvas服务,出现如下界面:

或者输入命令行程序openvas-start来启动openvas服务

 

使用客户端访问openvas服务器

当openvas服务成功启动后,用户就可以连接openvas服务器并进行扫描了。根据前面的介绍,可知openvas有三种不同的客户端,分别是:OpenVAS命令行接口,Greenbone安全助手和Greenbone桌面套件。而且客户端能够用于各种操作系统。在kali linux中,默认安装的是Greenbone安全助手。

本部署方案中使用最简单的浏览器客户端方式访问OpenVAS服务。因为,这种使用方式不仅简单,而且不需要客户额外安装应用程序,避免了枯燥的命令行方式,用户在任何操作系统中只要通过浏览器就可以在本地或远程连接OpenVAS服务器来对目标主机或网络进行漏洞检测。

通过使用浏览器客户端访问openvas服务器进行漏洞检测

然后我们使用客户层组件Greenbone-security-assistant访问openvas服务器,通过浏览器来建立扫描任务。

 

 

绿骨安全助手 GSA( Greenbone Security Assistant)是开放漏洞评估系统 OpenVAS(OpenVulnerability Assessment System)的基于网页的用户图形界面。 GSA 通过 OpenVAS Management Protocol (OMP) 连接 OpenVAS Manager。 通过实现完整的 OMP 特性集合,GSA 提供了一个直接了当的、非常强力的途径以管理网络漏洞扫描。

配置外部访问

安装完成后,openvas默认设置的监听地址为127.0.0.1,每次使用都只能用linux虚拟机打开浏览器通过https://127.0.0.1:9392来进行登录扫描,不如通过自己的电脑浏览器连接到openvas服务器直接进行扫描来的方便。

如果openvas安装在远程服务器或者虚拟机里面,则必须用服务器或者虚拟机打开浏览器来扫描,这样比较麻烦。用户更加希望,通过自己的电脑浏览器连接到openvas服务器,直接进行扫描。下面介绍配置外部访问的方法:

openvas新版本有两种方式控制openvas的开关,一种是服务的方式,一种是脚本的方式。

1.服务的方式

这种方式是通过openvas-start/openvas-stop脚本启动和关闭的,这两个脚本里调用的是service指令。启动openvas服务的脚本都存放在/lib/systemd/system下。

修改三个配置文件openvas-manager.service,openvas-scanner.service和greenbone-security-assistant.service,将配置文件中的监听IP由127.0.0.1改为0.0.0.0(相比于更改为openvas服务器的实际IP地址,改为0.0.0.0会更好,因为0.0.0.0代表本机的任意地址,适用于服务器有多个IP或者服务器IP有变动的情况)。修改后的三个配置文件内容如下:

 

 

 

2.脚本的方式

需要三个脚本控制开启和关闭openvas,

/etc/init.d/openvas-manager  //管理manager服务

/etc/init.d/openvas-scanner  //管理scanner服务

/etc/init.d/greenbone-security-assistant //管理gsad服务

这三个脚本对应了三个配置文件,分别为:

/etc/default/openvas-manager

/etc/default/openvas-scanner

/etc/default/greenbone-security-assistant

 

分别修改配置文件中的监听ip,由127.0.0.1改为0.0.0.0,保存。修改后三个配置文件的内容分别如下:

 

 

 

察看openvas的监听地址,如下图:

 

 

或者使用ps aux | less命令查看系统目前正在运行的进程。

可以看到,openvas监听地址已由127.0.0.1变为0.0.0.0。

察看linux虚拟机的IP地址为192.168.9.208:

 

在不登录linux服务器的情况下,即可在本机windows系统的客户端浏览器中输入https://192.168.9.208:9392/login/login.html 连接openvas服务器进行漏洞检测。

注意:要保证主机和虚拟机间能通信。经过在多台台式机测试,测试者都能通过自己台式机浏览器连接我部署的openvas漏洞检测系统进行主机和网络安全测试。

 

 新版本补充:

2.2 OpenVAS配置

1)设置外部访问

安装完成之后,OpenVAS默认设置的监听地址为127.0.0.1,为了使用方便,需要手动配置外部访问,Openvas9.0修改以下四个配置文件中的监听ip,由127.0.0.1改为0.0.0.0(表示任意IP),保存之后,重新加载systemctl,重启openvas即可。

具体操作如下:

#leafpad /lib/systemd/system/greenbone-security-assistant.service

(1)本文件下修改两处:–listen和—mlisten

image

图8-1 修改greenbone-security-assistant.service监听地址

(2)增加host 头主机地址(IP或域名)

在–mlisten=0.0.0.0 后增加“–allow-header-host=外部访问的地址IP或域名”,本次测试本机地址为:192.168.200.221,即外部访问的IP为192.168.200.221,如图8-2所示。

12.png

图8-2 增加host主机地址

说明:在新的manager 7.0.3中,若不增加host 头主机地址,外部访问将会出现以下报错:

==============================================================================================================

The request contained an unknown or invalid Host header. If you are trying to access GSA via its hostname or a proxy, make sure GSA is set up to allow it.

==============================================================================================================

#leafpad /lib/systemd/system/openvas-manager.service

image

图9 修改openvas-manager.service监听地址

#leafpad /etc/default/openvas-manager  //管理器:与接口通信,分配扫描任务,并根据扫描结果生成评估报告,默认端口为9390

image

图10 修改openvas-manager监听地址

#leafpad /etc/default/greenbone-security-assistant  //访问web 端接口(gsad):访问opebvas 服务层的web 接口,默认监听地址为127.0.0.1,端口为9392。

此文件也是修改两处:GSA_ADDRESS和MANAGER_ADDRESS

image

图11 修改greenbone-security-assistant监听地址1

image

图12 修改greenbone-security-assistant监听地址1

重新加载systemctl:

#openvas-stop

#systemctl daemon-reload

重新启动openvas:

#openvas-stop

#openvas-start

安装完整性检测

# openvas-check-setup

2)修改密码

Openvas自动生成的默认密码太长,不容易记,我们可以修改成符合我们记忆习惯的密码。

方法一:通过命令行修改

# openvasmd –user=admin –new-password=admin

image

图13 通过命令行修改密码

方法二:GSA修改

登录GSA后,打开administration-》Users,如图14:

image

图14

点击“Edit User”,如图15:

image

图15

选择如图16,输入新密码保存即可。

image

图16

3)升级插件和漏洞库

方法一:

# openvas-feed-update //初始化安装,可以不用更新

方法二:

# greenbone-nvt-sync

# greenbone-scapdata-sync

# greenbone-certdata-sync

建议使用方法一进行升级。

2.3 错误处置

2.3.1 安装过程错误处置

在安装检测中,一旦发现错误问题,均可以根据提示进行修复。

1)错误1:No OpenVAS SCAP database found

image

图17 No OpenVAS SCAP database found

修复命令:openvas-scapdata-sync

image

图18 No OpenVAS SCAP database found处置方法

2)错误2:The number of NVTs in the OpenVAS Manager database is too low

image

图 19 The number of NVTs in the OpenVAS Manager database is too low

修复命令:openvasmd –rebuild

image

图20 The number of NVTs in the OpenVAS Manager database is too low

处置方法

此处重新构建OpenVAS数据库,需等待很长一段时间。

2.3.2 启动过程错误

启动过程错误是指第一安装完成OpenVAS时可以正常启动和使用,但关机重启后使用openvas-start命令启动OpenVAS,出现greenbone-security-assistant、openvas-scanner和openvas-manager三个服务中某个服务启动失败,如图21所示,问题主要出现在kali2018.x上。原因是OpenVAS的启动脚本openvas-start(停用脚本openvas-stop)未收到相关服务进行反馈信息,导致启动失败。

image

图21 openvas-manager.service启动失败

解决办法:

通过systemctl进行启动服务

# systemctl start greenbone-security-assistant openvas-scanner openvas-manager

image

图22 systemctl启动服务

或者针对某个启动失败的服务进行启动

# systemctl start greenbone-security-assistant //启动greenbone-security-assistant

# systemctl start openvas-scanner // 启动openvas-scanner

# systemctl start openvas-manager //启动openvas-manager

再次执行OpenVAS 启动命令openvas-start即可。

发表回复