Nessus 10 漏洞扫描平台部署与使用详解
在 Ubuntu 22.04 上完成 Nessus 10 漏洞扫描平台的下载、安装、激活、systemd 托管与日常扫描使用,含真实版本获取方式与 CLI 速查。
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 界面正常。
六、验证与首次使用
- 浏览器访问
https://<服务器IP>:8834(服务器 IP 需在 Nessus「授权」阶段完成注册后才能继续;未激活时页面引导输激活码)。 - 授权激活后使用 4.3 设置的 admin 账号登录。
- 登录后可新建扫描:
New Scan→ 选模版(Basic Network Scan)→ 填目标 IP 与认证凭据 →Launch。 - 扫描结束后在
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
十、参考链接
- Tenable 下载中心:https://www.tenable.com/downloads/nessus
- Nessus 官方文档:https://docs.tenable.com/nessus/
- Nessus CLI(nessuscli)说明:https://docs.tenable.com/nessus/10_7/Content/Configure/nessuscli.htm