Docker部署漏洞扫描工具Nessus
1.安装
2.配置
2.1 添加用户
2.2 获取Challenge code
2.3 获取插件和许可证
2.4 注册
3.使用
4.进阶
整体流程:
1.安装
# 1.查询镜像
docker search nessus
# 2.拉取镜像
docker pull tenableofficial/nessus
# 3.启动镜像【挂载目录用于放置许可证和插件】
docker run -d --name nessus --restart=always -p 8834:8834 -v /opt/nessus/:/home tenableofficial/nessus
2.配置
# 1.进入容器
docker exec -it nessus /bin/bash
2.1 添加用户
以下操作在容器内进行:
/opt/nessus/sbin/nessuscli adduser
2.2 获取Challenge code
以下操作在容器内进行:
/opt/nessus/sbin/nessuscli fetch --challenge
2.3 获取插件和许可证
使用从https://www.tenable.com/products/nessus/nessus-essentials注册发送到邮箱的Activation Code和上一步获取的challenge Code在https://plugins.nessus.org/v2/offline.php完成验证,获取下载插件地址和许可证文件:
插件地址和license文件:
将下载好的许可证和插件文件放置到挂载目录/opt/nessus/下:
nessus.license
all-2.0.tar.gz
2.4 注册
以下操作在容器内进行:
离线注册
/opt/nessus/sbin/nessuscli fetch --register-offline /home/nessus.license
更新插件
/opt/nessus/sbin/nessuscli update /home/all-2.0.tar.gz
3.使用
浏览器打开 https://IP:8834/#/ 由于使用命令添加过用户、并离线注册,可以直接登录了:
登录成功,等待插件编译完成即可使用:
破解IP限制:
**暂停nessus服务** service nessusd stop
打开此页面记录版本号
https://plugins.nessus.org/v2/plugins.php
创建 plugin_feed_info.inc 文件
内容如下:[PLUGIN_SET 修改成获取的版本号]
PLUGIN_SET = "202206240351";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
将plugin_feed_info.inc替换到 /opt/nessus/var/nessus/plugin_feed_info.inc
cp plugin_feed_info.inc /opt/nessus/var/nessus/
将 /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc 文件删除
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc
启动nessus服务
service nessusd start
等待它更新一会
插件和授权都有了
最关键的编译自动启动脚本,每次nessus启动后插件都会丢失,所以在第一次更新插件后需要编写个自动脚本:
1、新建qd_nessus.sh
填入如下内容:
service nessusd stop;
cp ~/plugin_feed_info.inc /opt/nessus/var/nessus/;
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc;
service nessusd start;
2、执行命令自动启动脚本:
sh qd_nessus.sh
3、IP限制永久
4.保存镜像
使用Docker部署的目的是减少联网注册的次数。
# 1.将容器保存为镜像
docker commit ContainerID nessus:24.03.28
# 2.将镜像导出成tar文件
docker save nessus:24.03.28 -o nessus-24.03.28.tar
# 3.导入镜像
docker load -i nessus-24.03.28.tar
# 4.启动容器【挂载目录的目的是更新插件】
docker run -d --name nessus --restart=always -p 8834:8834 -v /opt/nessus/:/home nessus:24.03.28
一些说明:
在登录前提交镜像并保存为tar文件,此时容器内的插件未进行编译,tar文件大小为3.5G而编译后的为6.2G,方便镜像文件的迁移。
导入镜像文件后,启动时尽量挂载目录,为后期的插件更新提供方便。