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漏洞检测系统进行主机和网络安全测试。

 *本文作者:魅影儿,转载请注明来自FreeBuf.COM

OpenVAS开源风险评估系统部署方案的更多相关文章

  1. Linux记录-open-falcon开源监控系统部署

    参考https://book.open-falcon.org/zh_0_2/quick_install/prepare.html一.安装后端1.环境准备yum -y install redisyum ...

  2. Rocket.Chat 开源IM系统部署

    Rocket.Chat 官方给出的文档也个人觉得太麻烦了,并且对ubuntu的支持程度远高于CentOS,自己就折腾写了个安装的笔记,如果是在公司内部或者是部门内部还是很有用处的,比较看中的功能有和g ...

  3. MIS系统部署方案

  4. 免费开源《OdooERP系统部署架构指南》试读:第一章 Odoo架构概述

    文/开源智造联合创始人老杨 本文来自<OdooERP系统部署架构指南>的试读章节.书籍尚未出版,请勿转载.欢迎您反馈阅读意见. 从web浏览器到PostgreSQL,多层与其他层交互以处理 ...

  5. ActiveMQ实现负载均衡+高可用部署方案

    一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现 2.activemq的特 ...

  6. ActiveMQ实现负载均衡+高可用部署方案(转)

    本文转自:http://www.open-open.com/lib/view/open1400126457817.html%20 一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最 ...

  7. Nagios:企业级系统监控方案

    在大多数情况下Cacti + RRDtool已经实现对系统各种参数的监测.但很多企业可能不满足于仅仅监测系统基本参数的需求,而是需要监测除基本参数之外的各种应用程序的运行状况.很显然在这种情况下对于一 ...

  8. 【G】开源的分布式部署解决方案(一) - 开篇

    做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.n ...

  9. ActiveMQ笔记:一个高稳定,可扩展的的部署方案

    本文介绍一个笔者在实际工作中的实施的基于ActiveMQ的一个高稳定,可扩展的异步消息系统. ActiveMQ是一个成熟的基于Java语言的开源消息系统,在实际应用中被大量使用.ActiveMQ在系统 ...

随机推荐

  1. Ofbiz项目学习——阶段性小结——查询

    一.组装参数的学习 首先是查询条件,对于查询条件,需要判断是否从前端传递空值?——怎么处理查询空值? 当然可以一个一个进行判断,但是这样代码会导致很多,可以统一处理,形成一个公共方法. 1. 单个处理 ...

  2. SpringBoot中实现Spring容器中注入类型相同但名不同Bean

    @Bean(autowire = Autowire.BY_NAME,value = "kaptchaProducer") public Producer kaptchaProduc ...

  3. export default 和 export 的主要区别

    export default 和 export 的主要区别 在于对应的import的区别:export 对应的 import 需要知道 export抛出的变量名或函数名 import{a,b}expo ...

  4. [Algorithm] 122. Best Time to Buy and Sell Stock II

    Previous one: https://www.cnblogs.com/Answer1215/p/11974453.html Say you have an array for which the ...

  5. ent 基本使用十四 edge

    edge 在ent 中属于比较核心,同时也是功能最强大的,ent 提供了比较强大的关系模型 快速使用 参考图 以上包含了两个通过边定义的关系 pets/owner: user   package sc ...

  6. ent 基本使用十六 聚合

    ent 提供了聚合处理 一个group by + 聚合的处理(age以及name字段) package main ​ import ( "context" ​ "< ...

  7. 【LG2839】[国家集训队]middle

    [LG2839][国家集训队]middle 题面 洛谷 题解 按照求中位数的套路,我们二分答案\(mid\),将大于等于\(mid\)的数设为\(1\),否则为\(-1\). 若一个区间和大于等于\( ...

  8. javascript获取手机上媒体设备,摄像头和话筒

    主要运用H5的媒体接口API,MDN文档: navigator.mediaDevices(新版API),Navigator.getUserMedia(旧版API,不建议使用,但某些浏览器还支持),本文 ...

  9. 第02组 Alpha冲刺(3/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:写博客,复习C语言 GitHub签入记录 接下来的计划:构思游戏实现 还剩下哪些任务:敲代码 燃尽图 遇到的困难:Alpha冲刺时间 ...

  10. Unity2D音游案例-节奏大师教程+源码+素材

    Unity2D音游案例-节奏大师(Unity2017.2 ,基于Koreographer),本案例涉及到一些音乐音频音波的一点点内容. 首先,我们会把音游的核心功能实现,之后几个重要内容会出给思路并带 ...