Docker部署漏洞扫描工具Nessus+注册+IP去限制+保存(最完整教程)

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,方便镜像文件的迁移。
导入镜像文件后,启动时尽量挂载目录,为后期的插件更新提供方便。

### 使用 Nessus 对容器进行安全扫描和漏洞分析 #### 容器环境下的 Nessus 扫描准备 为了确保能够有效地利用 Nessus 对容器执行全面的安全扫描,前期准备工作至关重要。这不仅涉及软件本身的安装配置,还包括理解目标环境特性以便优化检测策略[^2]。 #### 下载并安装 Nessus 对于希望采用 Docker 方式部署 Nessus 的用户来说,官方提供了详细的指导文档来辅助完成这一过程。具体而言,在启动前需先拉取新的镜像文件,并按照给定命令序列依次执行必要的初始化设置,例如通过 `/opt/nessus/sbin/nessuscli fetch --challenge` 获取授权挑战码等操作步骤[^4]。 #### 创建适合容器的扫描策略 考虑到容器化应用通常具有动态性强、生命周期短等特点,建议创建专门针对此类场景定制化的扫描模板。该模板应能识别常见的容器运行时风险点,如未打补丁的基础镜像版本、暴露敏感端口或路径等问题。同时也要注意调整插件库更新频率以保持新状态,从而提高检出率[^1]。 #### 实施扫描任务 当一切就绪之后就可以正式发起扫描请求了。此时可以选择手动触发或者借助 API 接口实现自动化调度功能。值得注意的是,由于某些情况下可能存在网络隔离等因素影响通信效率甚至阻碍正常工作流程,因此提前规划好相应的解决方案十分必要[^3]。 ```bash # 启动Nessus服务 docker run -d --name nessus -p 8834:8834 tenable/nessus # 访问web界面完成后续配置并向指定IP地址发送扫描指令 curl -X POST https://<NESSUS_SERVER>/scans \ -H 'Content-Type: application/json' \ -d '{"uuid": "<SCAN_TEMPLATE_UUID>", "settings":{"name":"Container Scan","text_targets":"<TARGET_IP>"} }' ``` #### 结果解读与修复建议 后一步是对收集到的数据进行全面解析,找出潜在威胁所在位置及其严重程度等级;依据报告提示采取适当措施消除隐患,比如升级过期组件、关闭不必要的服务接口等等。定期复查有助于持续改进整体防护水平。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值