我们前面尝试通过Windows版的Docker部署OpenVAS(在Windows强跑Docker,8GB内存都喂不饱漏洞扫描神器?),结果失败了。总结一下原因,首先是镜像问题,我选择了下载量最高的mikesplain/openvas镜像,但是这个镜像已经6年了,自带的证书已经过期,导致无法访问管理页面;其次是系统问题,Windows中的Docker桌面版由于虚拟化的问题,额外占用了很多系统资源,导致镜像加载异常缓慢,影响使用体验。
其实,除了搜索OpenVAS的Docker镜像之外,我们还可以参考官方指导,使用社区版Docker镜像,官方指导手册链接如下:
https://greenbone.github.io/docs/latest/index.html
官方指导中给出了三种部署方式,原理都是一样的,就是根据docker-compose.yml文件进行部署,区别就是操作的自由度不一样。
第一种是复制Greenbone官方给出的docker-compose.yml文件内容,可以参考配置文件中的提示进行自定义调整,自由度最高,但部署过程也最复杂;第二种就是直接下载docker-compose.yml文件,然后手工启动;第三种是快速部署方案,可以在新安装的系统上,直接使用一键部署的脚本,完成Docker组件安装、部署OpenVAS到启动管理界面的全部流程。
一键部署的命令如下:
curl -f -O https://greenbone.github.io/docs/latest/_static/setup-and-start-greenbone-community-edition.sh && chmod u+x setup-and-start-greenbone-community-edition.sh && ./setup-and-start-greenbone-community-edition.sh
为了方便大家了解整体过程,我们采用第二种部署方式来演示一下。
首先,最新版的Greenbone社区版支持Debian bookworm、Ubuntu 24.04 LTS、Fedora 35/36和CentOS 9 Stream系统,我们本次使用Ubuntu 24.04的服务器版系统。最低系统配置为2核CPU、4 GB运行内存和20 GB存储空间,推荐使用4核CPU、8 GB运行内存和60 GB磁盘以上的系统配置。
确认系统安装必须软件包ca-certificates、curl和gnupg。
apt install -y ca-certificates curl gnupg
可以参考我们之前的介绍完成Docker引擎的部署(Ubuntu 22.04.4安装Docker引擎)。
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" |
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
准备工作完成之后,我们可以直接下载官方最新的docker-compose文件。
curl -f -O -L https://greenbone.github.io/docs/latest/_static/docker-compose.yml
有了这个现成的docker compose文件,我们就可以拉取Greenbone社区版的容器镜像了。虽然是海外,但是通过IPv6网络可以直接访问(告别NAT!腾讯云服务器IPv6实测:多1跳却快2ms,配置+防火墙规则一篇搞定);镜像比较大,拉取可能耗费一定时间。
docker compose -f docker-compose.yml pull
查看Docker镜像信息,发现最早的也只有4个月,最新的是几小时之前的,相比之前用的版本,确实新了很多。镜像大小方面,合计大概5.2 GB,加上Docker引擎占用的部分,操作到这一步,磁盘就已经消耗6 GB了;如果启动OpenVAS容器,大概又会占用22 GB磁盘空间。这样看来,最低配要求的20 GB存储空间在没有包含软件部分的情况下都说少了。
接下来,我们就可以启动Greenbone社区版OpenVAS容器了。
docker compose -f docker-compose.yml up -d
需要注意的是,运行容器时需要加载提要数据,此过程可能需要几分钟到几小时,我本次耗时大约一小时。在数据未完全加载之前,扫描将显示不充分或错误的结果。要获取所有服务的连续日志输出流,可以运行以下命令来显示日志消息:
docker compose -f docker-compose.yml logs -f
输出信息非常多,如果不想查看,可以按Ctrl+C停止日志流。
等待服务完全启动并加载所有提要数据后之后,我们就可以通过9392端口访问OpenVAS的管理页面GSA(Greenbone Security Assistant)了。
默认登录页面为http://192.168.0.173:9392/,默认用户名和密码均为admin,建议使用以下命令更新自定义的管理员密码:
docker compose -f docker-compose.ym
exec -u gvmd gvmd gvmd --user=admin --new-password='<password>'
登录之后的看板页面如下所示,可以看到统计的29万+ CVE(Common Vulnerabilities and Exposures,通用漏洞与暴露),还有16万+的NVT(Network Vulnerability Test,网络漏洞测试)。
切换到导航栏Scans下的Tasks模块,可以执行扫描任务。
点击页面上的魔术棒图标,选择【Task Wizard】即可快速开始扫描任务。
默认情况下,IP地址这里会带出当前访问的主机IP地址或者网关地址,只需要修改IP地址即可快速创建扫描任务。我们把这个IP地址换成宿主机IP地址扫描试一下。
任务执行过程中,计算资源占用倒不是很高。
等待扫描结束我们就可以查看扫描报告了。
任务执行结束之后,可以通过以下命令停止OpenVAS容器。
docker compose -f docker-compose.yml down
这么一来,一个简单的扫描任务就结束了,你学废了吗?
**推荐阅读***
原文始发于微信公众号(铁军哥):6年旧镜像翻车!手把手教你用Docker部署最新版企业级漏洞扫描工具OpenVAS
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论