1. 这篇文章真正要解决的问题
如果你是一名安全工程师、运维人员,或者正在学习网络安全,那么你一定听说过Nessus。它被誉为漏洞扫描领域的“瑞士军刀”,是无数安全团队进行资产发现和风险评估的首选工具。然而,对于大多数初学者甚至是有一定经验的使用者来说,Nessus的“入门”过程本身就可能是一个巨大的“漏洞”。
你可能会遇到以下这些典型问题:从官网下载哪个版本?家庭版和专业版到底有什么区别?那个神秘的“激活码”从哪里获取,又该如何使用?安装后,面对复杂的Web界面和上千个插件,如何进行第一次有效的扫描?更不用说那些令人头疼的报错,比如“Your Nessus data directory is critically low on disk space”,或者扫描策略配置不当导致误报漏报。
网络上充斥着零散的教程,有的只讲安装,有的只贴几个截图,但很少有文章能系统性地、手把手地带你走完从“零认知”到“第一次成功扫描”的全过程,并告诉你背后的原理和避坑指南。这正是本文要解决的问题。我们将不满足于简单的步骤罗列,而是深入剖析Nessus的核心工作流程,为你提供一份从下载、安装、激活、配置到实战使用的完整地图。读完本文,你将能独立完成Nessus的部署,并理解如何用它来为你的网络环境做一次“健康体检”。
2. Nessus 基础概念与核心原理
在动手之前,我们必须先理解Nessus到底是什么,以及它是如何工作的。这能帮助你在后续配置时做出更明智的决策,而不是盲目点击。
Nessus 是什么?Nessus 是由 Tenable 公司开发的一款广泛使用的漏洞扫描器。它的核心功能是主动向目标系统(如服务器、网络设备、应用程序)发送特定的数据包,并根据目标的响应来判断其是否存在已知的安全漏洞、配置错误或合规性问题。你可以把它想象成一个自动化的“安全审计员”,按照预定的检查清单(漏洞插件)对资产进行逐一排查。
核心工作原理:无凭证扫描 vs. 有凭证扫描这是理解Nessus能力边界的关键。
- 无凭证扫描:Nessus 仅从网络外部探测目标,例如通过发送特定的TCP/UDP包来识别开放的端口、运行的服务及其版本。然后,它根据这些信息匹配已知的漏洞数据库(Nessus插件)。这种方式速度快、无需权限,但深度有限,无法发现系统内部配置、缺失的补丁等更深层次的问题。
- 有凭证扫描:Nessus 需要你提供目标系统的登录凭据(如Windows的域账号/本地账号、Linux的SSH密钥/密码)。获得凭证后,Nessus会以“授权用户”的身份登录系统,直接检查系统内部状态,如已安装的补丁、注册表设置、文件权限、应用程序配置等。这种方式扫描更深、结果更准确,是进行合规性审计和深度风险评估的必备手段。
版本选择:家庭版 vs. 专业版Tenable 提供多个版本,对于个人学习和小型评估,主要关注这两个:
- Nessus Essentials (原家庭版):免费。功能强大,足以满足学习和非商业用途的初级评估。它支持最多16个IP地址的扫描,但不包含高级合规性审计(如CIS Benchmark)、恶意软件检测等企业级功能。
- Nessus Professional:付费商业版本。无IP数量限制,包含所有漏洞插件、合规性策略、恶意软件检测等高级功能,并享受优先技术支持。
对于绝大多数想要入门和学习漏洞扫描技术的读者,Nessus Essentials 是完全足够且推荐的选择。本文的演示也将基于此版本。
关键组件解析
- Nessus Scanner:扫描引擎本体,负责执行扫描任务。
- Nessus Web Interface:基于浏览器的图形化管理界面,用户通过它进行所有配置和操作。
- 插件 (Plugins):Nessus 的核心“知识库”。每个插件对应一个具体的漏洞检查项或信息收集项。Tenable 会持续更新插件库,以涵盖最新的漏洞(CVE)。安装后首次启动,Nessus 会下载大量插件,这需要一些时间和网络带宽。
- 扫描策略 (Scan Policy):定义了“如何扫描”。包括使用哪些插件、扫描的端口范围、扫描的强度(避免对目标造成影响)、是否使用凭证等。你可以创建自定义策略,也可以使用内置模板(如“Basic Network Scan”)。
- 扫描任务 (Scan):一次具体的扫描执行。它关联一个目标(或目标列表)和一个扫描策略。
理解了这些,我们就知道接下来的步骤:获取软件(下载)、安装引擎、获取使用许可(激活)、初始化配置(更新插件、创建策略),最后执行任务(使用)。
3. 环境准备与前置条件
在开始安装 Nessus 之前,请确保你的环境满足以下要求。合理的准备能避免很多后续问题。
硬件要求:
- CPU:建议至少 2 核。扫描速度和多任务处理能力与CPU性能直接相关。
- 内存:最低 4 GB,强烈建议 8 GB 或以上。Nessus 在运行时会加载大量插件到内存中,内存不足是导致扫描缓慢或失败的主要原因之一。
- 磁盘空间:至少 10 GB 可用空间。这用于存放 Nessus 程序、插件库以及扫描结果数据。如果出现 “Your Nessus data directory is critically low on disk space” 错误,就是因为磁盘空间不足。
- 网络:稳定的互联网连接。首次安装需要下载数百MB甚至上GB的插件库。
软件与系统要求:
- 操作系统:Nessus 支持 Windows、Linux (多种发行版)、macOS。本文将以Windows 10/11和Ubuntu 22.04 LTS为例进行演示,其他系统步骤类似。
- 浏览器:需要使用现代浏览器(如 Chrome, Firefox, Edge, Safari)访问 Nessus 的 Web 界面(默认 https://localhost:8834)。确保浏览器支持 HTTPS。
- 权限:在 Linux 系统上安装,需要
root或sudo权限。在 Windows 上,需要管理员权限运行安装程序。
获取激活码 (Activation Code):这是使用 Nessus Essentials (免费版) 的必要条件。你需要一个有效的邮箱来接收激活码。
- 访问 Tenable Nessus Essentials 官方注册页面。
- 填写你的姓名和邮箱地址。
- 提交后,检查你的邮箱(包括垃圾邮件箱),你会收到一封来自 Tenable 的邮件,其中包含你的激活码。形如
XXXX-XXXX-XXXX-XXXX-XXXX。请妥善保存这串代码。
重要提醒:
- 仅从官方渠道下载:务必从 Tenable 官网下载安装包,避免使用来路不明的“破解版”,后者可能包含恶意代码,且无法获得官方的插件更新。
- 选择测试环境:首次安装和学习,强烈建议在虚拟机(如 VMware, VirtualBox)或独立的测试机器上进行。避免直接在重要的生产服务器或个人主力机上操作。
4. Windows 系统安装与激活详解
我们将从最常用的 Windows 平台开始。整个过程分为下载、安装、初始化和激活。
4.1 下载与安装
- 访问官网:打开浏览器,访问 Tenable 官网的 Nessus 下载页面。
- 选择版本:在产品列表中选择 “Nessus Essentials” (免费版)。在操作系统下拉菜单中选择 “Windows”。
- 下载安装包:点击下载,你会得到一个类似
Nessus-10.7.2-x64.msi的安装文件(版本号会随时间更新)。 - 运行安装:双击下载的
.msi文件。如果系统弹出用户账户控制 (UAC) 提示,点击“是”。 - 安装向导:
- 欢迎界面点击 “Next”。
- 接受许可协议,点击 “Next”。
- 选择安装目录(默认即可),点击 “Next”。
- 点击 “Install” 开始安装。
- 安装完成后,确保勾选 “Launch Nessus” 选项,然后点击 “Finish”。此时,Nessus 服务会自动启动,并尝试打开浏览器。
4.2 初始化与激活
如果浏览器没有自动打开,请手动访问:https://localhost:8834。你会看到 Nessus 正在初始化的界面,这需要几分钟时间。
- 选择产品类型:初始化完成后,页面会提示你选择 Nessus 产品类型。这里我们选择“Nessus Essentials”。
- 输入激活码:在接下来的页面中,粘贴你从 Tenable 邮件中收到的激活码,然后点击 “Continue”。
- 创建管理员账户:接下来需要为 Nessus 的 Web 界面创建一个管理员账户。这个账户不是你的 Windows 账户,而是 Nessus 自身的登录凭据。
- 用户名:可以自定义,例如
admin。 - 密码:设置一个强密码并牢记。
- 点击 “Submit”。
- 用户名:可以自定义,例如
- 下载插件:此时,Nessus 会开始下载最新的漏洞插件库。这是一个漫长的过程,取决于你的网速,可能需要30 分钟到数小时。页面会显示进度条。请耐心等待,不要关闭浏览器或中断进程。
- 完成启动:插件下载并编译完成后,Nessus 服务会重启。之后,浏览器会自动跳转到登录页面
https://localhost:8834/#/。用你刚才创建的管理员账号登录,即可进入 Nessus 主界面。
至此,Windows 下的 Nessus 已经安装并激活成功。
5. Linux (Ubuntu) 系统安装与激活详解
在 Linux 服务器环境下部署 Nessus 更为常见。以下以 Ubuntu 22.04 为例,使用命令行完成安装。
5.1 下载与安装
下载 DEB 包:在 Tenable 官网下载页面,选择 “Nessus Essentials” 和 “Ubuntu / Debian” 版本。你可以直接在服务器上使用
wget命令下载,或者先下载到本地再上传。# 示例,请替换为官网提供的实际最新链接 wget https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/XXXX/download?i_agree_to_tenable_license_agreement=true -O Nessus-latest-ubuntu-amd64.deb注意:上面的URL是示例,实际下载链接请在官网点击获取。
安装 DEB 包:使用
dpkg命令安装。如果缺少依赖,可以用apt修复。sudo dpkg -i Nessus-latest-ubuntu-amd64.deb # 如果报告依赖问题,运行 sudo apt-get install -f启动 Nessus 服务:
sudo systemctl start nessusd # 设置开机自启 sudo systemctl enable nessusd # 查看服务状态 sudo systemctl status nessusd如果状态显示为
active (running),说明服务已成功启动。
5.2 初始化与激活
访问 Web 界面:在服务器本机或能访问该服务器的其他机器上,打开浏览器,访问
https://<你的服务器IP地址>:8834。例如https://192.168.1.100:8834。- 重要:由于使用的是自签名证书,浏览器会提示“不安全连接”。这是正常现象,点击“高级”或“继续前往”即可。
后续步骤:接下来的步骤(选择Nessus Essentials、输入激活码、创建管理员账户、下载插件)与第4.2节 Windows 部分完全一致,请参照执行。
防火墙配置:如果无法从外部访问
8834端口,可能需要配置防火墙。# 如果使用 ufw (Ubuntu) sudo ufw allow 8834/tcp sudo ufw reload # 如果使用 firewalld (CentOS/RHEL) sudo firewall-cmd --permanent --add-port=8834/tcp sudo firewall-cmd --reload
6. 核心配置与首次扫描实战
成功登录后,你会看到 Nessus 的主仪表盘。现在,让我们创建第一个扫描任务。
6.1 创建你的第一个扫描策略
策略决定了扫描的行为。我们从一个简单的内置模板开始。
- 点击顶部导航栏的“Policies”。
- 点击“New Policy”按钮。
- 在模板列表中,选择“Basic Network Scan”。这是一个很好的起点,它进行常规的端口扫描和服务识别,而不使用攻击性插件。
- 为策略命名,例如
My First Scan Policy,并添加描述(可选)。 - 点击“Save”。
6.2 配置扫描任务并执行
有了策略,现在可以创建扫描任务了。
- 点击顶部导航栏的“Scans”->“New Scan”。
- 选择“User Defined”标签页,你会看到刚才创建的
My First Scan Policy,点击它。 - 配置扫描设置:
- Name:
Scan My Local Network。 - Description: (可选)。
- Folder: 保持默认。
- Targets:这是最关键的一步。在这里输入你要扫描的目标。
- 可以是一个IP地址:
192.168.1.1 - 可以是一个IP范围:
192.168.1.1-192.168.1.50 - 可以是一个CIDR网段:
192.168.1.0/24 - 可以是主机名:
scanme.nmap.org(这是一个允许扫描的测试主机) - 重要警告:只扫描你拥有合法授权的主机或网络。未经授权扫描他人网络是违法行为。建议在本地虚拟机环境(如扫描另一台虚拟机)或家庭内网中进行测试。
- 可以是一个IP地址:
- Name:
- 其他设置(如计划任务、邮件通知)暂时保持默认。
- 点击页面底部的“Save”。
- 保存后,你会回到扫描列表。找到刚创建的
Scan My Local Network任务,点击其右侧的播放按钮 (Launch)。
6.3 查看扫描结果与报告
扫描启动后,状态会变为Running。扫描时间取决于目标数量和网络状况。
- 实时查看:点击扫描任务名称,进入详情页。你可以看到实时进度、已发现的主机和漏洞数量。
- 完成查看:扫描完成后,状态变为
Completed。再次点击任务名称。 - 报告解读:
- Hosts 标签页:列出所有发现的主机及其风险统计(严重、高危、中危、低危、信息)。
- Vulnerabilities 标签页:按漏洞严重性列出所有发现的问题。点击任意一个漏洞,可以查看详细信息,包括:描述、风险等级、解决方案(如何修复)、输出(Nessus发现了什么证据)、参考链接(如CVE详情)。
- Remediations 标签页:提供修复建议摘要。
- History 标签页:本次扫描的历史记录。
- 导出报告:点击“Export”按钮,可以选择多种格式导出报告,如 PDF、HTML、CSV、Nessus格式 (.nessus) 等,便于存档或分享。
至此,你已经完成了 Nessus 从安装到第一次成功扫描的全流程。
7. 进阶配置:有凭证扫描与策略定制
无凭证扫描只能发现表面问题。要进行深度审计,必须配置有凭证扫描。
7.1 配置扫描凭证
- 进入“Policies”,编辑或新建一个策略。
- 在策略配置页面,点击左侧的“Credentials”。
- 这里可以配置多种类型的凭证:
- SSH:用于扫描 Linux/Unix 主机。推荐使用 SSH 密钥对,更安全。
- Authentication Method:
Public Key。 - Username: 例如
ubuntu。 - 在
Private Key部分,上传或粘贴你的私钥文件内容。
- Authentication Method:
- Windows:用于扫描 Windows 主机。
- Authentication Method:
Password或NTLM。 - Username: 格式为
DOMAIN\Username或.\Username(本地账户)。 - Password: 输入对应用户的密码。
- Authentication Method:
- SSH:用于扫描 Linux/Unix 主机。推荐使用 SSH 密钥对,更安全。
- 配置完成后,保存策略。
7.2 创建自定义扫描策略
内置模板可能不符合你的所有需求。你可以创建高度自定义的策略。
- 新建策略时,选择“Advanced Scan”。
- 在“Discovery”部分,可以配置主机发现方式(Ping扫描)、端口扫描范围和技术(TCP SYN, TCP Connect等)。
- 在“Assessment”部分,这是核心。你可以:
- 启用/禁用插件族:例如,只启用“RedHat Local Security Checks”来专门检查RHEL漏洞。
- 配置扫描强度:
Safe checks选项确保扫描不会对目标造成损害(推荐开启)。 - 配置并行主机数:控制扫描并发度,避免对网络造成过大压力。
- 在“Report”部分,可以配置报告生成的选项。
- 在“Advanced”部分,可以配置各种超时、重试和性能参数。
通过精细的策略配置,你可以让 Nessus 的扫描行为更贴合你的实际环境和需求。
8. 常见问题与排查思路
在使用 Nessus 过程中,你几乎一定会遇到下面这些问题。这里提供了系统的排查思路。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
无法访问https://localhost:8834 | 1. Nessus 服务未启动。 2. 防火墙阻止了8834端口。 3. 浏览器代理设置问题。 | 1. Windows: 检查服务“Tenable Nessus”是否运行。 Linux: sudo systemctl status nessusd。2. 检查防火墙规则。 3. 尝试关闭浏览器代理或无痕模式访问。 | 1. 启动服务。 2. 开放端口(Linux见5.2节)。 3. 调整代理设置。 |
| 初始化或更新插件时极慢或失败 | 1. 网络连接问题,无法连接到 Tenable 服务器。 2. 系统DNS解析问题。 | 1. 检查网络连通性 (ping plugins.nessus.org)。2. 查看 /opt/nessus/var/nessus/logs/(Linux) 或安装目录下的日志文件。 | 1. 确保网络通畅,可尝试更换网络环境。 2. 在Linux上,可尝试修改 /etc/resolv.conf使用8.8.8.8等公共DNS。 |
扫描任务长时间卡在Initializing或Pending | 1. 扫描引擎繁忙或故障。 2. 策略配置错误(如目标不可达)。 3. 资源(内存/CPU)不足。 | 1. 查看扫描任务详情页的“Notes”或“Errors”部分。 2. 检查系统资源使用情况 ( top,htop, 任务管理器)。 | 1. 重启 Nessus 服务 (sudo systemctl restart nessusd)。2. 检查目标IP地址是否正确,网络是否互通。 3. 为服务器增加资源,或减少并发扫描任务。 |
错误:Your Nessus data directory is critically low on disk space | 磁盘空间不足,无法存放插件或扫描结果。 | 使用df -h(Linux) 或查看磁盘属性 (Windows) 确认磁盘使用率。 | 1.清理旧扫描结果:在“Scans”页面,删除不再需要的扫描任务(会同时删除结果)。 2. 扩展磁盘或清理系统其他文件。 |
| 扫描结果中漏洞数量为0或极少 | 1. 目标主机防火墙丢弃了探测包。 2. 扫描策略过于宽松(如只扫描了少数端口)。 3. 目标主机确实是全新的、打过补丁的系统。 | 1. 从扫描目标主机本身,尝试ping和telnet [ip] [port]。2. 检查扫描策略的端口设置和插件配置。 | 1. 临时关闭目标主机防火墙进行测试(仅限测试环境)。 2. 使用更全面的扫描策略,如“Advanced Scan”并扩大端口范围。 3. 配置有凭证扫描以获得更深结果。 |
| 有凭证扫描失败 | 1. 凭证错误(用户名/密码/密钥不对)。 2. 目标主机限制了登录(如SSH仅允许密钥登录)。 3. 网络策略阻止了认证流量。 | 1. 在策略的“Credentials”设置页面测试连接(部分版本支持)。 2. 手动使用提供的凭证尝试登录目标主机。 3. 查看扫描结果中该主机的“Notes”,会有更详细的错误信息。 | 1. 仔细核对凭证,确保有权限登录。 2. 调整目标主机的SSH/WinRM配置,允许密码认证(测试后请恢复)。 3. 确保Nessus服务器能通过网络访问到目标主机的管理端口(22, 5985, 5986)。 |
9. 最佳实践与工程建议
将 Nessus 集成到日常安全工作中,需要遵循一些最佳实践。
- 定期更新插件:漏洞库日新月异。虽然 Nessus 会自动检查更新,但建议定期登录控制台,在“Settings” -> “Software Update”中手动检查并更新插件,尤其是在进行重要扫描之前。
- 扫描分阶段进行:
- 发现扫描:使用轻量级策略,快速发现网络中的存活主机和开放端口。
- 深度扫描:针对发现的主机,使用更全面、带有凭证的策略进行深度漏洞评估。
- 合规扫描:使用专门的合规策略(如CIS Benchmark)检查配置是否符合安全标准。
- 合理安排扫描时间:扫描,尤其是有凭证的深度扫描,会消耗目标系统资源(CPU、内存、磁盘I/O)。务必在业务低峰期(如深夜)进行,并提前通知相关系统负责人。
- 结果分析与误报处理:Nessus 的报告需要人工分析。不是所有“高危”漏洞在你的特定环境下都能被利用(需要结合网络环境、防护措施判断)。要学会识别误报,并对真实风险进行优先级排序。
- 建立修复闭环:扫描不是目的,修复才是。建立流程:扫描 -> 生成报告 -> 分派工单给系统负责人 -> 修复 -> 重新扫描验证。可以将 Nessus 报告导出并导入到工单系统或安全运营平台(SOAR)。
- 安全存储凭证:用于有凭证扫描的账号密码或密钥,应使用权限最小化的专用账户。在 Nessus 中配置好后,定期更换密码。避免使用域管理员等高级别账号进行日常扫描。
- 备份配置:定期备份你的扫描策略、插件设置等重要配置。Nessus 的配置目录(如Linux下的
/opt/nessus/etc/nessus/)可以定期归档。 - 性能调优:如果扫描主机很多,可以调整“Settings” -> “Advanced”中的
max_hosts(同时扫描的最大主机数)和max_checks(同时进行的插件检查数),以平衡速度和资源消耗。
掌握 Nessus 只是网络安全工作的一个起点。它是一款强大的发现和评估工具,但真正的安全是一个持续的过程,涵盖预防、检测、响应和恢复。建议你以 Nessus 为支点,进一步学习漏洞原理(CVE)、安全加固指南(如CIS)、以及如何将扫描结果与防火墙、WAF、SIEM等安全设备联动,构建主动防御体系。