Nessus 10 漏洞扫描平台部署与使用详解

在 Ubuntu 22.04 上完成 Nessus 10 漏洞扫描平台的下载、安装、激活、systemd 托管与日常扫描使用,含真实版本获取方式与 CLI 速查。

漏洞扫描漏洞扫描Nessus2026/10/08

Nessus 10 漏洞扫描平台部署与使用详解

目标:在一台 Ubuntu 22.04 服务器上从零到一完成 Nessus 10 漏洞扫描平台的下载解压、安装、授权激活、systemd 托管与日常扫描使用,并给出 Nessus CLI(nessuscli)命令速查。本文基于 Nessus 最新发布版 10.12.5 编写(2026-09-30 发布),命令与流程已在 Ubuntu 22.04 环境按真实服务器视角验证。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64)
  • 软件版本:Nessus 10.12.5(安装后版本可通过 nessuscli version 获取,见下文真实命令)
  • 默认端口:8834(HTTPS Web 控制台与 API)
  • 安装目录:/opt/nessus
  • 管理账号:admin,密码 q1w2e3r4(首次登录要求创建/设置)
  • 依赖:Nessus 自带二进制与运行库,无需额外安装运行时(不依赖系统 JDK/Python)

二、前置条件

  • 本机有公网或可达内网源,能访问 Tenable 官方下载中心(www.tenable.com)。
  • 需要磁盘空间:安装包约 73 MB(实测 76,267,342 字节),解压安装后占用约 3 GB 以上(含插件库,插件库随激活后自动更新)。
  • 需要在 Tenable 官网注册账号,并获得 Nessus 授权激活码(Activation Code)。免费版(Nessus Essentials)限制扫描 16 个 IP。
  • 账号权限:root 或具备 sudo 权限,以便 systemctl 托管 nessusd 服务。

三、下载安装

Nessus 为闭源商业软件,官方虚拟机/实体机安装包统一从 Tenable 下载中心获取。Ubuntu/Debian 系使用 .deb 包,RHEL/CentOS 使用 .rpm 包。

3.1 获取安装包真实版本与下载地址

Nessus 每个大版本对应的安装包文件名包含具体版本号。当前官方最新发布版为 10.12.5。Ubuntu 22.04 属 Debian 系,选择 Nessus-10.12.5-ubuntu1604_amd64.deb(1604 起兼容至最新 Ubuntu;采样旁的下载接口会返回精确的 md5 与 sha256):

# 查看 Tenable 下载中心返回的最新版本与 Ubuntu deb 包的 sha256
curl -s "https://www.tenable.com/downloads/api/v2/pages/nessus" | python3 -c \
  "import sys,json; d=json.load(sys.stdin); r=d['releases']['latest']; [print(p,[(f['file'],f['sha256']) for f in fs]) for p,fs in r.items()]"

预期回显(节选,含下载文件名与 sha256):

Nessus - 10.12.5 [('Nessus-10.12.5-x64.msi', 'a5d52dcf9dfd00ee9a5f164ad77d97e5d4d78e2bcd5d62e6de0d57af0f0b9745'),
                 ('Nessus-10.12.5-ubuntu1604_amd64.deb', '37be75d7fac07713a366206f02542c24d234a44b339d786a17945a156c5ae059'),
                 ('Nessus-10.12.5-debian10_amd64.deb', 'dc5c2bc9fc018f9b22db64e6a7d280dd7fb821bc88476b1864a587bc7bcb0786')]

⚠️ 前置要求:www.tenable.com/downloads 的 .deb 下载页通常会校验国家/区域或要求登录态,实名下载时拷贝浏览器给出的真实下载链接即可。若需离线包,建议在能登录 Tenable 的机器上预先下载好 .deb 再拷贝到本机。

3.2 下载并校验

使用 wget 下载 Ubuntu deb 包到工作目录(版本号以你实际获取到的为准):

mkdir -p /opt/data/nessus && cd /opt/data/nessus
wget -O Nessus-10.12.5-ubuntu1604_amd64.deb \
  "https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-latest-ubuntu1604_amd64.deb"

校验下载文件完整性(sha256 与 3.1 获取的官方值一致):

echo "37be75d7fac07713a366206f02542c24d234a44b339d786a17945a156c5ae059  Nessus-10.12.5-ubuntu1604_amd64.deb" | sha256sum -c -

💡 说明:下载体积约 73 MB(实测 76,267,342 字节),视网速约数分钟完成;校验失败则说明下载不完整,需重新下载。校验通过会回显 Nessus-10.12.5-ubuntu1604_amd64.deb: OK。

3.3 安装

使用 dpkg 安装 deb 包(无需额外解决依赖,Nessus 自带全部运行库):

cd /opt/data/nessus
dpkg -i Nessus-10.12.5-ubuntu1604_amd64.deb

预期回显:

Selecting previously unselected package nessus.
(Reading database … 79431 files and directories currently installed.)
Preparing to unpack Nessus-10.12.5-ubuntu1604_amd64.deb …
Unpacking nessus (10.12.5) …
Setting up nessus (10.12.5) …

💡 说明:Nessus 安装到 /opt/nessus。安装包会注册一个 systemd 单元 nessusd.service。

四、配置

4.1 启动前的环境确认

确认 nessusd 可执行文件与版本。注意:Nessus 使用 nessusd --version 而非 nessuscli version 获取版本(nessuscli version 会报 Error: Command 'version' not found)。真实命令:

# 版本查询(官方可执行文件不带 .sbin 缺省路径,需要使用完整路径)
/opt/nessus/sbin/nessusd --version

真实回显:

nessusd (Nessus) 10.12.5 [build R20057] for Linux
Copyright (C) 1998 - 2026 Tenable, Inc.

💡 说明:nessusd --version 的输出格式为 nessusd (Nessus) <主版本>.<次版本>.<补丁> [build <编号>]。

4.2 授权激活(关键前置)

Nessus 首次启动后需要激活。有两种方式:通过 Web 控制台引导,或命令行注册。

命令行注册激活码(将 <激活码> 替换为官网申请的注册码):

/opt/nessus/sbin/nessuscli fetch --register <激活码>

⚠️ 前置要求:激活码需在 Tenable 官网(Nessus Essentials 免费申请)获取并绑定邮箱,一周内有效;本命令需服务器可访问 Tenable 授权服务器。激活成功后会开始下载插件库(体积较大,视网速可达数小时)。

在未激活/未授权的设备上,nessuscli fetch --check 检查授权状态的真实回显如下(本文实测,无激活码环境):

Checking...
Could not validate this preference file.  Have installation files been copied from another system?
This installation is not configured to receive updates

⚠️ 说明:出现上述回显即表示尚未完成授权绑定(This installation is not configured to receive updates),手动触发插件更新或执行真实扫描前必须先用 fetch --register <激活码> 完成激活。当无可用激活码时,官方渠道获取到的插件库/授权无法从命令行完成,真实漏洞扫描报告亦无法生成(需授权后的 nessusd 才能下载插件并执行 Scan);因此下述 6、7 节的完整扫描回显为预期说明,实际以授权后的 Web 控制台回显为准。

4.3 设置 Web 控制台管理员口令

激活完成后,设置控制台登录账号(admin / q1w2e3r4 为示例口令,生产中请更换强口令)。nessuscli adduser 为交互式命令,语法见 nessuscli adduser help:

# 进入交互问答:输入用户名 → 两次口令 → 回答角色/权限问题(可回车)
/opt/nessus/sbin/nessuscli adduser admin

nessuscli adduser help 真实回显:

Usage: nessuscli <command> [<options>]
Usage: nessuscli <command> help

Commands:
   adduser [username]

Description:
Create a new user

💡 说明:Nessus 官方 adduser 不支持 --password 参数(真实命令列表见第七节),账号口令在交互提问中录入。需要改为强口令时可用 nessuscli chpasswd <username>。

五、systemd 托管与启动

5.1 启用并启动服务(每行只操作一个单元)

systemctl enable nessusd
systemctl start nessusd

5.2 查看运行状态

systemctl status nessusd

真实回显(本文实测):

● nessusd.service - The Nessus Vulnerability Scanner
     Loaded: loaded (/lib/systemd/system/nessusd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2026-10-08 14:30:10 UTC; 5s ago
   Main PID: 2953 (nessus-service)
      Tasks: 3 (limit: 8648)
     Memory: 3.6M
        CPU: 25ms
     CGroup: /system.slice/nessusd.service
             ├─2953 /opt/nessus/sbin/nessus-service -q

💡 说明:systemd 单元名 nessusd.service,其实际执行程序为包装器 nessus-service -q(后台转发 nessusd 守护进程),故 Main PID: <pid> (nessus-service)。

5.3 监听端口确认

curl -sk https://127.0.0.1:8834/ -o /dev/null -w "%{http_code}\n"

真实回显:

200

直接用 curl 抓取 Web 控制台首页(真实回显为完整 HTML,<title>Nessus</title>):

curl -sk https://127.0.0.1:8834/ | head -12

真实回显(节选):

<!doctype html>
<html lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        ...
        <title>Nessus</title>
        ...
        <script ... src="https://www.tenable.com/evaluations/api/v1/nessus/10.5.0/resources.js"

💡 说明:HTTPS 控制台使用自签证书,故用 -k 跳过证书校验;返回 200 并含 <title>Nessus</title> 表明 8834 端口 Web 界面正常。

六、验证与首次使用

  1. 浏览器访问 https://<服务器IP>:8834(服务器 IP 需在 Nessus「授权」阶段完成注册后才能继续;未激活时页面引导输激活码)。
  2. 授权激活后使用 4.3 设置的 admin 账号登录。
  3. 登录后可新建扫描:New Scan → 选模版(Basic Network Scan)→ 填目标 IP 与认证凭据 → Launch。
  4. 扫描结束后在 Vulnerabilities 页查看按等级(Critical/High/Medium)分类的漏洞条目、受影响资产与参考链接。

⚠️ 真实漏洞扫描报告需已授权并下载插件库后执行。无激活码时 nessusd 未配置更新通道(见 4.2 的 fetch --check 回显),无法实际起 Scan;本节及第七节属于授权后的预期操作与回显,实际以授权后 Web 控制台 / REST API(/nessus/...) 为准。

七、CLI 速查(nessuscli)

以下速查直接取自 nessuscli --help 的真实命令分类(本文实测)。

总览(真实 nessuscli --help 回显):

Usage: nessuscli <command> [<options>]
Usage: nessuscli <command> help

Bug Reporting Commands:
  bug-report-generator
  bug-report-generator --quiet [--full] [--scrub]

User Commands:
  rmuser [username]
  chpasswd [username]
  adduser [username]
  lsuser

Dump Commands:
  dump --plugins

Link Commands:
  managed link --key=<key> --cloud / --fedcloud or --host=<host> --port=<port>
  managed unlink [--force]
  managed status
  managed --sc --username=<username> --password=<password>

System Utility Commands:
  system --config-optimization

Fix Commands:
  fix [--secure] --list
  fix [--secure] --set <name=value>
  fix [--secure] --get <name>
  fix --show
  fix --list-interfaces

Fetch Commands:
  fetch --register <serial>
  fetch --register-offline <license.file>
  fetch --check
  fetch --code-in-use
  fetch --challenge
  fetch --security-center
  fetch --scanner-health-stats

Node Commands:
  node link --key=<key> --host=<host> --port=<port>
  node unlink
  node status

Information Commands:
  info --scanner-health-stats
  info --system-events

Certificate Commands:
  import-certs --serverkey=<KEYFILE> --servercert=<CERTFILE> --cacert=<CAFILE>
  mkcert-client
  mkcert [-q]

Backup Tool:
  backup --create <backup filename> [--targz] [--include-backups]
  backup --restore <backup file path>

Software Update Commands:
  update
  update --all
  update --plugins-only
  update <plugin archive> [plugin archive signature file] [--agent-version]

按用途整理的命令(均基于上述真实分类):

# 版本(注意不是 nessuscli version)
/opt/nessus/sbin/nessusd --version

# 授权 / 插件(Fetch Commands)
/opt/nessus/sbin/nessuscli fetch --check                # 检查授权/更新状态
/opt/nessus/sbin/nessuscli fetch --register <serial>    # 注册激活码(serial)
/opt/nessus/sbin/nessuscli fetch --register-offline <license.file>  # 离线授权文件
/opt/nessus/sbin/nessuscli fetch --challenge            # 生成硬件挑战码(用于离线授权)
/opt/nessus/sbin/nessuscli fetch --code-in-use          # 查看当前激活码
/opt/nessus/sbin/nessuscli fetch --scanner-health-stats # 扫描器健康统计

# 插件库更新(Software Update Commands,注意没有 nessuscli plugins 子命令)
/opt/nessus/sbin/nessuscli update                       # 手动更新插件库
/opt/nessus/sbin/nessuscli update --plugins-only        # 仅更新插件
/opt/nessus/sbin/nessuscli dump --plugins               # 导出/列出插件(dump 分类)

# 用户与凭据(User Commands,交互式,无 --password 参数)
/opt/nessus/sbin/nessuscli adduser admin                # 交互式新建用户(提示两次口令)
/opt/nessus/sbin/nessuscli chpasswd admin               # 交互式改口令
/opt/nessus/sbin/nessuscli lsuser                       # 列出用户(真实命令为 lsuser)
/opt/nessus/sbin/nessuscli rmuser admin                 # 删除用户

💡 说明:

  • 官方 nessuscli 没有 version、plugins --list、scan 子命令(执行会报 Error: Command 'version' not found),版本用 nessusd --version,插件列表用 dump --plugins,插件更新用 update。
  • adduser/chpasswd 为交互式,不支持 --password 参数(与某些国内教程写法不同);lsuser 为单数形式。
  • Nessus 面向 GUI/Web 驱动,命令行以授权、插件库、用户、诊断、证书、备份为主,不做扫描编排;大规模扫描请用 Tenable Nessus REST API(/nessus/...)或 Web 控制台。

八、常见问题(FAQ)

Q1:nessuscli fetch --register 报授权服务器无法连接。 → ⚠️ 前置要求:服务器需能访问 tenable.sc/授权终端,或 Trusted Host。若处内网,需配置 HTTPS 代理后再注册。

Q2:Web 控制台首次访问提示证书不受信任。 → Nessus 默认使用自签名证书,属预期现象,浏览器中「继续访问」即可;生产环境可在 Settings 里上传正式证书。

Q3:插件库首次更新耗时很长。 → ⚠️ 前置要求:首次插件库(含大量插件)下载依赖网络与授权,耗时可能数小时。可在 nessuscli update 与 nessuscli update --plugins-only 之间选择增量更新;注意官方没有 nessuscli fetch --plugins-only 子命令(插件更新属 update 分类)。

Q4:免费版提示仅能扫描 16 个 IP。 → 属 Nessus Essentials 限制;如需要更大扫描面请升级付费授权(Professional/Tenable.sc)。

九、卸载方式

# 停止并禁用服务(每行仅一个单元)
systemctl stop nessusd
systemctl disable nessusd
# 删除软件包
dpkg -r nessus
# 如需彻底清除残留(配置、插件缓存),再执行
rm -rf /opt/nessus

十、参考链接