☰
Kali Linux 安装 Nessus 漏洞扫描器:从激活到实战全流程指南
2026/10/2 22:31:35 网站建设 项目流程

1. 开工之前:Kali 上装 Nessus,到底图什么

提到 Kali Linux,大部分人脑子里蹦出来的是一整套渗透测试工具链:Metasploit、Nmap、Burp Suite、Hashcat,要什么有什么。但真到做企业级安全评估或者漏洞管理的时候,你会明显感觉到一件事:Kali 里缺了一个“能打的”商业化漏洞扫描器。Nessus 正好补上这块短板。

Nessus 是 Tenable 公司出品的老牌漏洞扫描器,长期以来一直是业内做漏洞发现和合规评估的标配工具之一。它在 Kali 里不在默认安装列表里,需要我们自己动手装,而且装完还要完成注册、激活、初始化这一整套流程,比装普通软件麻烦不少。这篇文章我不会只甩几条命令给你,而是会把从下载安装包、处理依赖、启动服务、配置 Web 界面、申请激活码、跑第一次扫描,到最终拿到一份像模像样的漏洞报告的完整过程都过一遍,顺便把我实际操作中踩过的坑和最后总结出来的习惯一并交代清楚。

适合谁看?如果你是刚接触漏洞评估、想知道“Nessus 装起来到底要几步”的入门选手,这篇文章里的操作你可以照着做;如果你已经在用别的扫描器,想快速迁移到 Nessus 上,排错和优化部分应该能帮你少走弯路。整个过程的核心就三个动作:装服务、拿激活码、开始扫。

1.1 Nessus 到底是怎么工作的

先把原理讲明白。Nessus 的工作过程可以粗略分成四步:

  • 资产发现:先探测目标网络上有哪些主机是活着的,常见手段是 ICMP Ping、TCP 端口探测,以及 ARP 扫描(在本地网段时)。
  • 端口与指纹识别:对存活主机做端口扫描,识别端口上跑的服务和版本,这一步有点像 Nmap 做的事情,但 Nessus 有自己的实现逻辑。
  • 插件匹配:Nessus 最核心的资产是它的插件库。每个插件对应一个已公开的漏洞或配置问题,扫描器根据目标指纹去匹配并执行相应插件,做实际验证,而不是只靠版本号猜测。
  • 漏洞评估输出:把验证结果按风险等级归一化,用 CVSS 评分体系给出严重程度,整理成报告。

一句话概括:Nessus 像是一套自动化的“体检流水线”,先发现人,再量血压,再根据各项指标判断有没有问题。插件库就是它的“病例知识库”,不断更新,这也是它比很多自研脚本可靠的地方。

1.2 为什么不直接用 OpenVAS 或者其他

我知道肯定有人会问:Kali 里不是有 OpenVAS(现在叫 Greenbone Vulnerability Management)吗?为什么还要单独装一个商业工具?

我自己的感受是:OpenVAS 胜在免费开源,部署也不难,但它的管理界面、报告可读性、插件更新频率和稳定性,说实话跟 Nessus 还是有点差距的。Nessus 的 Web 控制台做得很顺手,结果分类清晰,导出报告格式专业,对“要把漏洞清单交上去”的工作场景特别友好。

把两者摆在一起看,差别更直观:

对比维度NessusOpenVAS / Greenbone
上手难度相对简单,网页引导式配置模块多,初次配置稍繁琐
插件更新Tenable 官方持续维护,速度快社区驱动,更新周期不定
报告质量专业、美观、合规导向信息量大,但排版和可读性一般
免费程度Nessus Essentials 免费但限 16 个 IP完全开源免费
企业认可度很多安全团队和咨询机构用部分场景,但商业认可度略低

如果你只是扫描自己几台机器,OpenVAS 也能干,但如果你是帮公司做资产盘点,或者想自己练手以后往安全评估方向发展,Nessus 更值得投入时间。这也是我给不少朋友的建议:工具可以多学,但先把一个工业界真正认可的工具用到熟练,比什么都摸一下强。

1.3 安装前必须确认的几件事

在动手之前,有几件事提前搞定,能让你后面省掉一大堆麻烦:

  1. 确认架构是 x86_64。Kali 官方镜像基本都是 64 位,但有些老机器或者 ARM 板子(比如树莓派上刷的 Kali)就不适用了,Nessus 的 Linux 软件包主要还是面向 amd64。
  2. 内存建议给足。Nessus 服务本身就要吃几百兆内存,插件编译和扫描进程起来之后,4GB 内存的虚拟机已经很紧张,8GB 会更从容一些。
  3. 磁盘空间预留够。插件库不断膨胀,我见过装完加更新后占 10GB 以上空间的。加上扫描结果和各种报告,建议至少留出 20GB 到 30GB。
  4. 提前注册好 Tenable 账户。Nessus Essentials 是免费版本,只要你注册一个 Tenable 账号并申请一个激活码就能用。这一步不需要任何付费信息,但必须有激活码才能完成初始化。
  5. 目标网络要有授权。这一点我必须放到前面说:Nessus 是漏洞扫描工具,不是随便拿别人 IP 乱扫的玩具。扫描未经授权的目标,轻则违反平台规则,重则有法律风险。请只在你自己拥有、或者合同明确允许测试的范围内使用。

2. 下载安装包,先避开几个常见坑

安装包获取是整个流程里最容易让人懵的地方,因为 Tenable 官网的下载逻辑跟普通软件不一样。它不是给你一个固定的“最新版.deb”链接,而是走了一个带认证跳转的下载接口。不讲清楚这一点,你很可能在官网里转半天,点了半天按钮,最后也没搞清楚下载链接到底怎么复制出来的。

2.1 自己去官网下还是用命令行下载

两种方式都行,但我更推荐你用浏览器先登录 Tenable 下载页面,然后拿到真实下载地址,再回到命令行用 wget 或者 curl 下载。

原因很简单:Nessus 的下载页面需要你在浏览器里先接受 Tenable 的许可证协议,没有这一步,直接用 wget 去抓主页面,抓回来的往往是 HTML 而不是安装包。浏览器里点一下“I Agree”之后,页面会生成一个带参数的真实下载链接,这个链接才是能直接拉文件的有效地址。

浏览器下载方式虽然直观,但有个缺点:如果你在本地电脑下载,还得再传到 Kali 上去,来回折腾。我自己习惯的做法是:在 Kali 的浏览器或者本机浏览器里打开下载页,找到对应文件后右键复制下载链接,然后在 Kali 终端里粘贴到 wget 后面。

2.2 下载链接的结构和校验

下载链接长什么样?大概是这样的模式:

https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/<下载ID>/download?i_agree_to_tenable_license_agreement=true&file=Nessus-10.9.4-debian10_amd64.deb

其中<下载ID>是个数字编号,它会根据 Nessus 版本和文件类型变化,不固定。你不需要背这个结构,只需要知道一点:链接里带上了i_agree_to_tenable_license_agreement=true这个参数,这是 Tenable 用来标记用户已同意许可证的。

当你拿到链接后,在 Kali 终端执行:

cd ~/Downloads wget "https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/<下载ID>/download?i_agree_to_tenable_license_agreement=true&file=Nessus-10.9.4-debian10_amd64.deb" -O Nessus-10.9.4-debian10_amd64.deb

注意我用了双引号把 URL 包起来了,因为链接里有&参数,在 bash 里不加引号会被解释成后台执行符号,命令会变形。

下载完成后,校验一下文件完整性。下载页面上会列出对应文件的 SHA256 校验和:

sha256sum Nessus-10.9.4-debian10_amd64.deb

把输出的结果和官网页面上显示的值比对一下,一致再装。这个习惯很重要,尤其是从命令行下载的场景,等于多了一道保险。

2.3 deb 包到底该选哪个版本

进入下载页面后你会发现 Nessus 提供好几种安装包:RPM、DEB、tar.gz、macOS 版、Windows 版,甚至还有针对 AIX 和 Solaris 的。作为 Kali Linux 用户,你只需要盯住 DEB 文件。

具体选哪个 deb,看页面文件名里的标记。比如:

  • Nessus-10.9.4-debian10_amd64.deb
  • Nessus-10.9.4-debian11_amd64.deb

Kali 本身基于 Debian 测试分支滚动更新,系统库版本往往比 Debian 稳定版还要新。实际操作中,debian10 和 debian11 两个标识的 deb 包,在较新版本的 Kali 上都能正常工作,因为 Tenable 的“debian10”包本身对 glibc 的要求并不苛刻,而且 Kali 的 glibc 版本通常很新。

不过有个原则值得记住:优先选页面里和你系统架构一致、标识较新的 deb 包,没有把握就两个都下载下来,用dpkg -I查看包信息和依赖要求:

dpkg -I Nessus-10.9.4-debian10_amd64.deb

注意这里的deb包标注的 Debian 版本并不是绝对兼容标准,只是 Tenable 构建时用的基础环境。Kali 的包管理机制跟 Debian 同源,只要没有 glibc 这类底层库冲突,装进去就能跑。

提示:如果 wget 下载中途断掉,不要重新点一遍页面。直接加-c参数续传就行。这也是我下载大安装包时的常规操作。

3. 安装与启动,把服务老老实实跑起来

下载和解压只是前菜,真正有意思的部分从安装开始。Nessus 的安装跟普通软件不太一样,它不是一个简单的“解压到某个目录”,而是会创建系统服务、独立用户、日志目录和数据目录。你得理解它装完之后动了哪些东西,出了问题才知道去哪看。

3.1 用 dpkg 装好之后发生了什么

安装命令很简单,一条 dpkg 就搞定:

sudo dpkg -i Nessus-10.9.4-debian10_amd64.deb

如果你的 Kali 系统之前装过旧版本,dpkg 会自动尝试覆盖安装。安装过程会在屏幕上打印一些信息,告诉你服务已经注册、默认监听端口是 8834。

装完以后,你可以看一下它究竟装了哪些东西。命令:

dpkg -L nessus

输出结果会告诉你目录结构,重点记住/opt/nessus这个根目录。Nessus 把二进制文件、插件库、日志、配置都放在这一棵目录树里:

  • /opt/nessus/sbin/nessuscli:命令行管理工具,后面很多操作会用到。
  • /opt/nessus/sbin/nessusd:主服务进程。
  • /opt/nessus/var/nessus/logs/:日志目录,排错全靠它。
  • /opt/nessus/etc/nessus/:配置目录。

依赖问题偶尔会冒出来。如果 dpkg 报依赖缺失,别急着慌,先试标准修复命令:

sudo apt install -f

这条命令会尝试把缺失的依赖补齐。如果apt install -f解决不了,再考虑是不是系统源的问题,运行sudo apt update之后重新执行。

3.2 启动服务并确认它在监听

安装完成后,Nessus 的 systemd 服务单元已经注册好了。启动方式:

sudo systemctl start nessusd sudo systemctl enable nessusd

enable是让它在开机时自动启动。如果你只是临时用一下,不打算长期开着,其实只执行start就够了。虚拟机里做实验的话,我更建议开着,省得每次重启后还要手动拉起来。

启动后别急着打开浏览器,先用几条命令确认服务状态:

sudo systemctl status nessusd --no-pager -l

看状态应该为active (running)。然后确认端口 8834 在监听:

sudo ss -lntp | grep 8834

输出里如果能看到类似LISTEN 0 4096 *:8834的行,说明 Web 服务已经正常起监听。

顺便看下初始日志,确认初始化过程没有异常:

sudo tail -f /opt/nessus/var/nessus/logs/nessusd.messages

这条日志文件是整个 Nessus 排错的第一入口,之后不管遇到什么问题,都先来看它。

3.3 进入 Web 初始化向导,创建管理员账号

服务正常监听后,浏览器访问:

https://127.0.0.1:8834

注意是https不是http,端口 8834 本身就是 HTTPS。第一次访问时浏览器会提示“连接不是私密连接”或“证书无效”,这很正常,因为 Nessus 默认用的是自签名证书。你需要在浏览器里点“高级”“继续前往”之类的选项,把这个站点加入信任例外。这一步不要慌,证书问题不影响使用。

进入初始化页面后,首先会让你创建一个管理员账号,也就是之后登录 Nessus Web 控制台的账号。用户名和密码要记好,后面所有管理操作都用它登录。

提示:如果你是远程访问 Kali 上的 Nessus,访问地址就是https://<你的Kali主机IP>:8834。但一定要确认防火墙或者云安全组放通了 8834 端口。Kali 默认防火墙通常不折腾人,但有些虚拟机模板里装了防火墙规则,需要提前排查。

4. 激活 Nessus Essentials,跑出第一次扫描

账号建好之后,Nessus 会把你引导到激活页面。这一步很多人会卡住,因为激活不是随便填个邮箱就行,它需要你输入 Tenable 官方发放的激活码。激活码怎么拿?下面一步步来。

4.1 去 Tenable 官网申请一个免费激活码

打开 Tenable 官网注册/登录你的账户,在 Nessus 产品页面里找到 Nessus Essentials 的注册入口。它通常要求你填写姓名、邮箱,然后会发一封验证邮件,点收件箱里的链接完成确认。

确认之后,Tenable 会在你的账户后台显示一个激活码(Activation Code),是一串比较长的字母数字组合。把它复制下来。

拿到激活码之后,在 Nessus Web 初始化界面的激活输入框里粘贴,选择好要用的插件集。默认选项通常建议选“Nessus Core”或“Nessus Essentials”配套的插件集。插件集的选择主要影响你能跑的扫描类型,比如 Web 漏洞扫描、配置审计这类插件是否包含在内。

我见过不少人在这里犯的一个错误:点完激活按钮后,看到页面上的进度条半天不走,就以为卡死了,于是关掉页面重新来。其实这阶段是 Nessus 正在下载和编译插件库,耗时长是正常的。新装机器上这个阶段短则十几分钟,长则一两个小时,取决于网络速度和 CPU 性能。你只需要耐心等,或者去后台盯日志:

sudo tail -f /opt/nessus/var/nessus/logs/nessusd.messages

日志里如果出现“All plugins loaded”或类似字样,说明插件初始化和编译已经完成,这时候再刷新页面,就不会一直转圈了。

4.2 创建你的第一次基础网络扫描

激活完成后,Nessus 主界面会出现“My Scans”和“New Scan”按钮。点新建扫描,会看到一堆扫描模板——从基础网络扫描、恶意软件检测、Web 应用测试,到认证补丁审计、合规性检查等等。

第一次上手,我建议从“基础网络扫描”(Basic Network Scan)开始。原因很简单:这个模板不需要配置任何凭据,只需要填目标 IP 或网段,Nessus 会自动去做端口发现、服务识别和漏洞探测,是最不依赖环境的一类扫描。

参数设置的要点:

  • Targets这一栏填要扫描的 IP 或网段。可以是单 IP、IP 范围,比如192.168.1.10-192.168.1.20,也可以是 CIDR 写法,比如192.168.1.0/24。
  • Name建议起得有意义,比如按资产或项目名命名,别起全默认名。后面报告多了你会发现,清晰的命名是高效管理的基石。
  • 其他设置项可以先不动。扫描设置里的“扫描强度”“端口范围”这些高级项,等你熟了一点再调。新手先用默认,Nessus 默认配置已经是很平衡的折中方案。

保存扫描配置之后,点右下角的“Launch”按钮,扫描任务就会开始执行。扫描过程中你会看到主机列表里出现目标资产,每个资产下面有端口、服务的探测状态,以及扫描时间。

基础网络扫描的耗时跟目标数量和网络环境强相关。扫一个中小型网段,通常需要几十分钟到几小时。扫描过程不影响你做其他事,你可以让它后台跑着,先去把报告模板看完。

4.3 扫描报告怎么看

扫描跑完之后,点进扫描任务,切换到Vulnerabilities标签页,就能看到目标资产的漏洞列表。Nessus 对每个漏洞都给了 CVSS v3 评分、严重级别和详细描述。

严重级别分成四档:

级别含义常见例子
Critical可被远程利用且影响大远程代码执行、默认口令
High容易被利用,影响范围较大SQL 注入、权限提升
Medium需要一定条件才能利用信息泄露、中间人攻击风险
Low影响较小,一般需结合其他问题版本号泄露、非关键配置问题

报告里最值得看的不只是漏洞列表,还有两个实用功能:

  • Hosts标签页:按主机维度查看每台机器的问题,适合做资产责任人推送。谁的机器谁认领,比自己硬啃所有漏洞高效得多。
  • Remediations标签页:给出修复建议,比如“升级到某个版本”“关闭某个服务”“修改某类配置”。这部分可以导出作为整改任务清单。

导出报告也很简单:扫描完成后点Export,可以选择导出为 HTML、PDF、CSV 还是 Nessus 原生格式。实际工作中,CSV 适合拿来二次统计,HTML 适合直接当交付文档。

注意:免费版 Nessus Essentials 有 16 个 IP 的扫描上限。如果你目标网段有几十上百台机器,要么分批扫,要么考虑购买商业版授权。这一点很多人用着用着才想起来,到时候还得回头清数据重新规划。

5. 排错、优化、常用命令,这些坑我替你踩过了

Nessus 装完之后,真正让人头疼的是使用中的各种“不配合”。我把自己在 Kali 上用过一段时间后遇到的典型问题整理了一下,按现象、原因、解决办法的方式列出来,你可以直接当速查表用。

5.1 服务起不来,状态一直报失败

现象:执行sudo systemctl start nessusd后,过了一会再查状态,发现是failed。

排查思路:先看服务日志:

sudo journalctl -u nessusd --no-pager -n 50

同时看 Nessus 自己的日志:

sudo tail -n 50 /opt/nessus/var/nessus/logs/nessusd.messages

常见原因有几个:

  • 端口被占用。如果之前装过其他版本或者别的软件占了 8834,服务起不来。解决办法:确认端口占用,并停掉冲突进程,或者改 Nessus 监听端口。
  • 权限问题。/opt/nessus下的文件所有者不对,Nessus 服务用户无法读取插件库。解决办法:确认/opt/nessus的属主是nessus用户和组。
  • 磁盘空间满了。Nessus 启动时需要初始化插件库和数据库,磁盘写不进去就会反复失败。用df -h检查一下根分区的空间。

改 Nessus 监听端口的命令,如果你真想换端口,可以用:

sudo /opt/nessus/sbin/nessuscli fix --set "xmlrpc_listen_port=8834"

这个命令的8834可以替换成你想用的端口。改完重启服务生效。

5.2 网页一直转圈,卡在加载中

现象:插件激活后,Web 界面一直显示加载中,刷新也没用,但系统负载又很高。

这个场景我太熟了。新装 Nessus 后首次运行,插件库需要编译成优化过的缓存格式,这个过程会持续占用 CPU。你在 Kali 上跑:

top

很可能会看到 nessusd 进程的 CPU 占用率接近 100%。这不代表卡死,是它在埋头干活。耐心等它编译完,页面就会自己恢复正常。

如果等了很久(超过两三个小时)还是不行,再怀疑是不是插件下载不完整。对策是重新跑一次插件更新:

sudo systemctl stop nessusd sudo /opt/nessus/sbin/nessuscli update --plugins-only sudo systemctl start nessusd

注意:更新插件前先停服务,否则会提示插件库被占用。我就因为图省事没停服务直接执行命令,结果收到一把报错,老老实实重启服务之后就好了。

5.3 扫描速度慢,怎么调优

Nessus 默认配置求稳,不会把扫描线程拉满,因为怕把目标网络打崩。但如果你在隔离的测试环境里,希望跑快一点,可以改几个设置:

  • 在扫描配置的Discovery设置里,把“扫描速度”调成“正常”或“激进”,端口扫描策略改成“全部端口”。
  • 在Advanced设置里,增大最大并发主机数(Max simultaneous hosts)和并发检查数(Max simultaneous checks per host)。默认值比较保守,测试环境里可以拉高一倍左右。
  • 别同时炮轰目标。并发数拉满扫一堆机器,不仅可能触发目标的入侵检测系统,还容易造成误报。我一般把同时扫描的主机数控制在 10 台以内。

另外,扫描行为会受到网络环境影响。跨网段扫远程目标时,延迟高会显著拖慢速度。如果可以,把扫描器的位置尽量放到和目标网络同一二层域内。

5.4 Nessus CLI 到底能干什么

Web 界面能做大部分事,但有些操作必须在命令行里完成。说几个我常用的命令:

# 查看当前用户列表 sudo /opt/nessus/sbin/nessuscli lsuser # 新增一个用户(可指定管理员权限) sudo /opt/nessus/sbin/nessuscli adduser username # 删除用户 sudo /opt/nessus/sbin/nessuscli rmuser username # 切换许可证激活码 sudo /opt/nessus/sbin/nessuscli fetch --register-only --code <新的激活码> # 只更新插件库 sudo /opt/nessus/sbin/nessuscli update --plugins-only # 重置 Web 界面密码(忘了管理员密码时用) sudo /opt/nessus/sbin/nessuscli fix --set "admin_password=新密码"

一个很实用的排查思路:Web 登录不上了,先跑lsuser看看用户是否还在;如果用户在,但密码忘了,直接fix重置。这些命令我都写过脚本存着,省得临时查文档。

5.5 插件更新失败或提示许可证过期

Nessus Essentials 的免费许可证本质上是定期续期的。你可能会遇到插件更新时提示许可证无效。解决办法就是重新登录 Tenable 账户,去看当前的激活码是否还有效。如果是续期,更新同一个 Email/账号下的激活码即可,然后用:

sudo /opt/nessus/sbin/nessuscli fetch --register-only --code <新激活码>

之后正常nessuscli update --plugins-only,插件就能继续更新了。

6. 最后再聊几点实际操作里的心得

这篇文章写到这,该说的流程和坑基本都覆盖了。最后我再分享几个自己长期使用中沉淀下来的习惯,不一定在官方文档里能看到,但确实能提升效率和减少折腾。

第一,安装完 Nessus 之后,第一时间在 Kali 里做一个虚拟机快照。这个操作太值了。插件库更新、激活码变更、配置调整,哪个环节都可能把服务搞坏。有了快照,出了问题拉回去重新初始化,耽误不了几分钟。没有快照,你只能看着/opt/nessus一点点重新编译插件。

第二,扫描目标一定要在白名单里过一遍。我这几年见过太多人兴致勃勃装完 Nessus,随手填了一个公网 IP 就开始扫。扫到自己的服务器还好,扫到别人的,责任和风险都是实打实的。在扫描配置里认真核对目标资产范围,是比任何技术操作都重要的一步。我自己的习惯是:凡是需要扫的 IP,一律先在文档里登记用途,再写进扫描清单。

第三,报告比扫描结果本身更考验功夫。Nessus 输出的漏洞列表只能算原始素材,真正有价值的是你针对业务环境做的分析和修复建议。同一个漏洞,在公网服务器和在内网测试机上的优先级完全不一样。我一般会在导出报告的基础上,再按资产归属和影响范围重新圈一遍重点,而不是把原始列表直接甩给别人。养成这个习惯之后,你会明显感觉自己的安全评估能力上了不止一个档次。

最后说一句:Nessus 装在 Kali 里,只是一个工具箱里的新成员。真正决定它能发挥多大价值的,是你对目标网络的理解程度和对漏洞原理的掌握深度。工具给的是线索,判断和处置还得靠人。希望这篇文章能帮你把它顺顺当当地跑起来,少走点我当年走过的弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询