在 Kali Linux 上完整安装 Nessus一份贴近实战的踩坑指南如果你手里有一台 Kali Linux又恰好需要做内网漏洞扫描、基线核查或渗透测试前的资产普查装一个 Nessus 是很自然的选择。它的社区版免费、更新机制成熟、插件库庞大比直接用开源扫描器省不少配置功夫。但 Kali 的包管理和普通 Debian 不完全一样默认的源里没有 Nessus直接从官网下载安装包也经常因为软件源、依赖、端口占用或者激活流程卡住。这篇就按我自己的实操路径写一份带细节的安装教程——不是只给命令清单而是把每个环节“为什么这么做”也讲清楚顺便把我踩过的坑一并列出来。1. 安装前准备与版本认知1.1 为什么选择 Nessus而不是只看开源扫描器很多人在 Kali 上做漏洞扫描时第一反应是装 OpenVAS 或 nuclei 这类工具。OpenVAS 确实免费但它的插件更新速度和对新漏洞的覆盖往往跟不上 NVD 的节奏nuclei 适合做模板化的快速验证做深度漏报检测就差点意思。Nessus 的优势体现在三个地方一是漏洞规则库更新快Tenable 的 Research 团队会针对新披露的漏洞提前推送检测插件二是扫描结果的可读性高出来的报告有风险评级、实验验证步骤和修复建议汇报给管理层也方便三是它可以自定义扫描策略合规基线扫描比如等保、CIS也能直接复用现成的模板。如果你的工作场景主要是在内网做漏洞扫描、渗透测试前期信息收集或者给客户做定期安全评估Nessus 是一个非常顺手的工具。1.2 Kali Linux 的版本确认与网络条件Kali 的底座是 Debian但它的内核、默认用户权限和部分库文件的版本有自己的一套。装 Nessus 之前建议先确认一下系统版本避免装错安装包类型lsb_release -a dpkg --print-architecture大多数 Kali 是 amd64 架构这个后面选包用得上。另外 Nessus 在安装阶段需要从 Tenable 服务器拉取插件和激活信息所以你的机器必须能正常访问外网。如果你的工作环境有代理记得先把代理配好不然最后激活那一步会卡到怀疑人生。建议用curl -I https://www.tenable.com先测一下连通性省得后续装完发现是网络问题。注意Kali 默认以 root 身份运行Nessus 的服务默认监听 8834 端口这两个点后面都会用到。2. 获取安装包Deb 还是 RPM2.1 从官网下载正确的安装包Nessus 官方提供以下几种安装包格式.debDebian/Ubuntu/Kali、.rpmRHEL/CentOS/Fedora、还有.tar.gz和适用于 macOS 的.dmg。Kali 基于 Debian所以我们要选.deb包。下载页面是 Tenable 的官网需要注册一个账号才能进入下载区。注册是免费的用邮箱就能注册。在下载页面选择 Nessus然后选对应的平台这里选 Linux Debian amd64就会得到一个类似Nessus-10.7.x-debian10_amd64.deb的文件。这里有个小细节Kali 的版本可能显示为 Debian 12 或者更新但 Nessus 的 deb 包兼容性很好选当前主流的 Debian 版本即可。如果你所在的网络环境不方便从官网下载可以先在一个有网的机器上下载好 deb 包再拷贝到 Kali 里。Nessus 的安装包不到 100MB拷贝成本很低。2.2 安装包类型对后续升级的影响deb包安装后Nessus 的二进制文件统一放在/opt/nessus下升级时可以直接用官方的自动更新也可以手动下载新包重新dpkg -i覆盖安装。rpm包则把文件放在/opt/nessus但用 RPM 数据库管理升级路径稍有差异。对 Kali 用户来说坚持用.deb是最省事的。3. 安装步骤从 dpkg 到服务启动3.1 安装过程中可能遇到的依赖问题下载好 deb 包后安装命令很简单dpkg -i Nessus-10.7.x-debian10_amd64.deb但这里有个 Kali 特有的坑Kali 的源里某些基础库版本比 Debian 低或高或者某些过渡包transitional package没有被默认安装。Nessus 官方 deb 包的依赖里可能包含libc6、libssl等基础库这些在 Kali 上基本都满足但保险起见建议安装时先运行apt install -f这个命令会修复安装过程中的依赖问题补齐缺少的依赖包。如果你直接dpkg -i报错说缺少依赖不要慌先运行上面这行再重新安装一次90% 的情况都能解决。3.2 安装与启动服务验证安装完成后Nessus 会注册一个名为nessusd的系统服务。启动它systemctl start nessusd systemctl enable nessusd第一行是启动服务第二行是设置开机自启。如果你想验证服务状态用systemctl status nessusd正常情况下会看到active (running)的状态。如果服务没有启动排查的第一步是看日志。Nessus 的日志放在/opt/nessus/var/nessus/logs/nessusd.messages用tail -f实时看这个日志通常能直接看到报错原因。根据我的经验最常见的原因是端口冲突——如果 8834 端口已经被别的进程占用Nessus 就会启动失败。提示Nessus 的默认监听端口是 8834不是 80 或 443。如果这个端口被占用可以在配置文件里改但强烈建议你直接释放这个端口因为后续所有操作都已经默认绑定这个端口。4. 浏览器初始化配置与激活4.1 首次访问的 HTTPS 证书警告服务启动后浏览器访问https://你的IP:8834。第一次访问时浏览器会提示证书不安全这是因为 Nessus 默认使用一个自签名证书。直接选择“继续访问”或“高级 → 继续前往”即可这个提示不是异常每一台新装的 Nessus 都会这样。当然后期你可以替换成自己机构的证书配置/opt/nessus/var/nessus/nessusd.conf里的相关参数即可。4.2 创建管理员账号与激活码填写页面会引导你创建一个管理员账号这个账号用来登录 Nessus Web 控制台不是 Linux 系统账号。用户名建议不要用admin换一个略有辨识度的名字比如nadmin或者自定义的名称减少被扫描器爆破的风险。密码需要至少 12 位包含大小写字母、数字和符号Nessus 在密码策略上卡得比较严直接按强密码规范设置即可。账号建完后系统会让你输入激活码。激活码分为几类Nessus Professional商业版需要付费订阅有试用期功能全开。Nessus Essentials免费版注册后 Tenable 会发一封邮件里面包含免费激活码限制扫描 16 个 IP 地址对于个人学习和初步评估完全够用。Nessus Expert更高级的版本偏向攻击面管理和云环境评估。收到激活码邮件后把邮件里的代码粘贴进去点击上传。如果这一步报“网络错误”或“无法验证激活码”多半是网络问题可以用ping测一下plugins.nessus.org这个域名能 ping 通再去激活会顺利很多。4.3 激活后的初始化等待激活成功后Nessus 会进入一个“插件初始化”阶段。这个阶段它会下载全量的漏洞检测插件时间视网络情况而定快的十分钟慢的半小时以上。页面会显示一个进度条这时候不要关闭浏览器或重启服务否则可能导致插件拉取不完整。如果你看到进度条长时间不流动先检查网络是否稳定其次可以看服务日志tail -f /opt/nessus/var/nessus/logs/nessusd.messages日志里会有插件下载的进度信息。注意免费版虽然限制 IP 数量但插件库和检测规则和商业版一样更新这一点不用担心。5. 插件更新机制5.1 自动更新与手动更新的选择Nessus 的检测能力完全依赖插件库。默认情况下服务会每隔一段时间自动同步插件。如果你做扫描的频率高或者需要用到最新的漏洞规则建议保持自动更新开启。手动更新方式也保留一个/opt/nessus/sbin/nessuscli update --all这条命令会强制从 Tenable 服务器拉取最新的插件和扫描策略更新完成后不需要重启服务。我会在每次做重要扫描前跑一次这个命令确保检测规则是最新的。从实际体验看Nessus 的新漏洞插件推送非常快某个漏洞披露当天就能在 Nessus 里扫出来。5.2 内网离线环境下的插件更新方案如果你的 Kali 是内网测试机不连通外网那么插件更新会成为一个明显的瓶颈。这时候可以在一台能访问外网的机器上下载好插件包再拷贝进来更新。Nessus 提供了离线更新文件all-2.0.tar.gz下载后在 Kali 上执行/opt/nessus/sbin/nessuscli update /path/to/all-2.0.tar.gz需要说明的是这种做法在严格的断网环境里很常见但操作前要确认 Nessus 版本和插件包版本的兼容性版本之间差异太大会导致插件加载异常反而影响扫描结果。6. 常见问题与排查技巧6.1 服务启动失败症状是systemctl start nessusd之后马上退出状态显示failed。按顺序排查ss -tlnp | grep 8834 tail -n 50 /opt/nessus/var/nessus/logs/nessusd.messages第一种情况是端口被占用。第二种情况是目录权限问题/opt/nessus下的文件属于root:nessus如果你手动改过目录权限导致 Nessus 无法写日志或临时文件也会启动失败。修复办法chown -R root:nessus /opt/nessus。6.2 激活码无效或者无法连接 Tenable这个情况很常见。先检查系统时间date如果系统时间和实际时间偏差超过几分钟TLS 握手会失败Nessus 会报“证书验证失败”或“激活码无法验证”。校准时间ntpdate pool.ntp.org或者用timedatectl开启时间同步。6.3 局域网内无法访问 Web 控制台你在 Kali 本机上访问https://localhost:8834没问题但是局域网内其他机器无法访问。这时检查 Nessus 的监听地址。默认配置下Nessus 监听所有网卡的 8834 端口理论上局域网可以直接访问。如果你用的是云主机或虚拟机还需要在防火墙/安全组里放行 8834 端口。Kali 本机的防火墙默认不一定开着但如果你自己装了ufw记得执行ufw allow 8834/tcp6.4 扫描时报错与评分理解第一次执行扫描时很多新手会疑惑为什么某些主机显示为“无法扫描”或超时。这个跟 Nessus 的默认扫描策略有关目标主机如果开启了防火墙或者禁用了 ICMPNessus 会迁就这些情况调整 TCP 三次握手的探测方式。建议在扫描配置里勾选“Ping 探测”作为主机发现方式同时结合端口扫描避免漏报在线主机。报告里的风险评分CVSS 分数也不用看得太重Nessus 自己会有一个“严重性”评级配合详细描述里的修复建议使用更实际。6.5 Kali 升级后 Nessus 失效Kali 是滚动发布系统库文件经常升级。有时候升级完系统Nessus 启动会报缺少某个.so文件这是因为 Nessus 的部分依赖库是静态链接的旧版本系统更新后动态链接库路径变了。解决办法很简单直接重新安装一次原来版本的 deb 包dpkg -i或者升级到新版 Nessus让它在安装时重新识别系统依赖。7. 实用配置与心得总结7.1 修改默认端口与证书默认 8834 端口如果和你的业务冲突可以用编辑器修改/opt/nessus/var/nessus/nessusd.confPort8834 ListenAddress0.0.0.0改完后重启服务。记得端口放行那里同步修改。7.2 命令行扫描与API调用除了 Web 界面Nessus 支持命令行扫描。这个功能在你需要自动化时会非常有用/opt/nessus/sbin/nessuscli scan --help通过脚本调用 Nessus API可以定时跑扫描并把结果导出为 HTML 或 PDF。具体实现要基于实际业务封装这里不展开但方向是对的。7.3 性能考量Nessus 的扫描速度和多线程配置有关。默认情况下它对单台主机的最大并发连接数并不算高。如果你在内网扫上千台资产建议先在“策略”里调整并发参数并尽量按网段分批次扫描避免目标网络被打挂。关于实际使用最后分享两个小经验我在实际配置 Nessus 时最大的体会是安装本身十分钟就能完成但后续的激活网络问题和插件初始化才是真正的瓶颈。国内网络环境访问 Tenable 服务器经常不稳建议在安装前就把代理或 DNS 调整好不要等到激活那一步才开始排查。另外Nessus 的插件库是它的灵魂哪怕免费版只允许扫 16 个 IP插件更新也一定要保持最新不然旧插件对新增漏洞的检测能力会明显衰减。还有一个细节扫描报告导出为 PDF 后中文字体可能显示异常这是字体库缺失导致的需要单独在 Kali 里装中文字体。这个坑踩过一次就记住了。