OpenVAS(Open Vulnerability Assessment System)是在nessus基础上发展起来的一个开源的漏洞扫描程序,其核心部件是一套漏洞测试程序,可以检测远程系统和应用程序中的安全问题。

(一)在ubuntu 18系统中安装docker

apt install docker.io  //在线安装docker

systemctl start docker  //启动docker服务

systemctl enable docker  //设置开机自动启动

docker version  //查看docker版本

可以正常显示版本信息,说明安装成功。

(二)下载和运行GVM的docker镜像

1、下载GVM 11的docker镜像

docker search gvm

第一个镜像是我们需要的。

docker pull securecompliance/gvm  //将镜像pull到本地

docker images  //查看本地的docker镜像

2、运行GVM 11镜像

docker run -d -p 8080:9392 --name=gvm securecompliance/gvm

run命令装载docker镜像到内存,形成容器。

-d  //后台运行容器

-p  //将host的8080端口映射到容器的9392端口

--name  //给容器起个名字

docker ps  //查看正在运行的docker容器,可以看到GVM容器已经运行起来了

docker logs gvm  //查看工作状态

若看到“our GVM 11 container is now ready to use!”,就可以使用了。(时间较长,请耐心等待)

 (三)使用GVM进行漏洞扫描

1、登录

浏览器打开GVM的控制台界面:

http://192.168.103.103:8080/login

用户名/口令:admin/admin,点击login按钮登录

2、创建扫描任务

下面创建简单的扫描任务,对metasploitable 2靶机进行漏洞扫描。

(1)创建扫描任务

Scans—Tasks

点击左侧带有五角星的方框,点击弹出的“New Tasks”项:

在“New task”窗口,填写下面的信息:

Name:指定扫描名称,如“metasploitable 2”

Comment:填写关于扫描任务的描述文字(可选)

Scan Targets:点击右侧五角星,弹出New Target表单。指定目标IP地址,填写完成后点击Save按钮提交:

其它的选项保持默认即可,也可以按照下图中的文字选择:

点击下方的Save按钮,创建扫描任务。

3、开始扫描

在任务列表中,点击右侧Actions中的Start按钮,开始扫描。

4、下载扫描报告

点击Scans—Reports

点击左上角一排小图标中的向下小箭头,弹出“Component Content for Scan Report”表单。选择报告类型,如PDF:

点击OK按钮,下载漏洞扫描报告。

报告中对某漏洞的描述:

6、更新NVT

重启GVM容器即可更新NVT特征库,无需单独运行命令。

(四)管理容器

1、查看容器内运行的进程

docker top gvm

2、进入容器内的命令行

docker exec -it gvm bash

在docker进行内修改时区

ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、设置admin(管理员)口令和时区

默认时区是UTC时区,很恶心。

点击右上角的个人中心->my settings->编辑

timezone改成Asia/Shanghai 点击右下角save保存更改

5、停止容器

docker stop gvm

6、删除容器

不再需要容器了,可以将其删除。删除容器不会影响到镜像,使用前面运行镜像的命令可以创建新的容器。

docker ps -a      //查看全部容器,包括运行的和已停止的

docker rm gvm  //删除名为gvm的容器

(五)管理镜像

1、导出镜像

docker save -o gvm-11-image.tar securecompliance/gvm  //将镜像导出到当前目录,名为gvm-11-image.tar

2、删除镜像

docker rmi securecompliance/gvm   //删除镜像时,不能存在由该镜像创建的容器

3、导入镜像

docker load < gvm-11-image.tar  //导入镜像

注意事项

GVM-11容器启动后默认不像OpenVAS那样监听本地环回地址,而是监听物理网卡地址。这样即提供了远程访问功能。因此应使用防火墙对访问GVM的源地址进行限制:

iptables -A INPUT -p tcp -s 192.168.1.100 –dport 8080 -j ACCEPT  //允许192.168.1.100访问本地的GVM控制台

iptables -A INPUT -p tcp –dport 8080 -j REJECT  //拒绝访问本地8080端口

以Docker容器的形式运行GVM-11的更多相关文章

  1. 利用远程服务器在docker容器搭建pyspider运行时出错的问题

    This system supports the C.UTF-8 locale which is recommended. You might be able to resolve your issu ...

  2. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  3. 实现Mac主机上的Docker容器中的图形界面显示(运行GUI应用)

    我有一个需求: 一方面,我需要在 Docker 容器环境下运行应用(因为有些环境在 Mac 下很难安装配置,并且希望环境干净隔离). 另一方面,容器中的应用又需要进行图形界面的显示. 由于 Docke ...

  4. [转帖]docker容器保持运行不退出

    docker容器保持运行不退出 2019年01月20日 23:21:22 chvalrous 阅读数 1511   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. Docker 容器技术

    前言: 之前感觉Docker是一种小虚拟机,docker和KVM虚拟机之间有什么区别.联系.可以应用在什么样的生产环境? 一.Docker是什么以及和KVM的区别 1.docker概念? Docker ...

  6. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  7. Docker 容器学习笔记

    Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影 ...

  8. Docker容器数据卷-Volume详解

    Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume).数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享.数据 ...

  9. 3、docker 容器管理

    Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...

随机推荐

  1. python 读取配置文件ini ---ConfigParser

    Python读取ini文件需要用到 ConfigParser 模块 关于ConfigParser模块的介绍详情请参照官网解释:https://docs.python.org/2.7/library/c ...

  2. Go 分布式令牌桶限流 + 兜底策略

    上篇文章提到固定时间窗口限流无法处理突然请求洪峰情况,本文讲述的令牌桶线路算法则可以比较好的处理此场景. 工作原理 单位时间按照一定速率匀速的生产 token 放入桶内,直到达到桶容量上限. 处理请求 ...

  3. docker安装、下载镜像、容器的基本操作

    文章目录 一.docker安装与基本使用 1.docker的安装.从远程仓库下载镜像 2.配置docker国内源 二.创建容器 1.create i.创建容器 ii.进入容器 iii.启动容器 2.r ...

  4. bom中的offset,client,scroll

    简单明了

  5. linux 创建用户 用户组,sudo,禁止root远程ssh登录

    创建用户  useradd hanli 为新用户设置密码(在root下可以为普通用户重置密码)  passwd hanli 创建用户组  groupadd  op 将用户添加到用户组  usermod ...

  6. Python如何把八进制转换成ASCII码

    做题途中拿到一串八进制字符串 0126 062 0126 0163 0142 0103 0102 0153 0142 062 065 0154 0111 0121 0157 0113 0111 010 ...

  7. linux虚拟机快照

    目录 一:虚拟机快照 一:虚拟机快照 1.什么是快照? 快照可保存虚拟机在特定时刻的状态和数据. 状态包括虚拟机的电源状态(列如,打开电源,关闭电源,挂起). 数据包括组成虚拟机的所有文件,这包括磁盘 ...

  8. mongo用户认证

    mongo@rayos:/opt/mongodb$ mongo --port 28017 MongoDB shell version v4.0.13 connecting to: mongodb:// ...

  9. 字的研究(3)fontTools-TrueType轮廓坐标的获取以及基于TrueType的Glyph实例的构建

    前言 本文主要介绍如果使用Python第三方库fontTools提取OpenType字体文件中的TrueType轮廓坐标以及如何构建基于TrueType的Glyph实例 TrueType轮廓坐标的获取 ...

  10. 在 Dapr 中使用 Cron 绑定的计划任务

    我昨天写了一篇关于在微服务应用程序中采用Dapr的好处的文章<从服务之间的调用来看 我们为什么需要Dapr>[1], 在那篇文章中,我们专注于"服务调用"构建块 [2] ...