多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Nessus漏洞扫描器从零到精通的完整实践指南

Nessus漏洞扫描器从零到精通的完整实践指南 在实际企业安全运维和渗透测试工作中漏洞扫描是评估网络资产安全状况、发现潜在风险的核心环节。Nessus 作为一款功能强大、覆盖面广的商业漏洞扫描器因其庞大的插件库和持续更新的漏洞规则成为众多安全团队的首选工具。然而对于初次接触 Nessus 的用户从下载安装、激活授权到配置扫描任务、解读扫描报告每一步都可能遇到版本选择、环境依赖、许可失效、扫描失败等具体问题。本文将围绕 Nessus 的完整生命周期提供一个从零开始、可操作、可排错的技术实践指南帮助安全工程师和开发人员快速掌握其核心使用流程并理解每一步背后的原理和常见陷阱。1. 理解 Nessus 的核心架构与版本选择在动手安装之前必须先理解 Nessus 是什么、不是什么以及不同版本间的关键差异这决定了后续所有操作的合法性和有效性。1.1 Nessus 是什么漏洞扫描引擎而非攻击工具Nessus 本质上是一个漏洞扫描引擎。它通过向目标主机发送一系列精心构造的探测包并根据目标的响应如开放的端口、服务的Banner信息、HTTP头、SSL证书信息等来匹配其内置的漏洞检测插件Plugin。每个插件对应一个或多个特定的漏洞CVE或安全配置问题。它的核心工作是发现和评估而不是利用漏洞进行攻击。其工作流程可以概括为策略配置用户定义扫描目标、端口范围、扫描强度是否进行可能造成服务中断的强力测试、认证信息用于登录系统进行更深入的配置检查等。插件加载Nessus 根据策略决定启用哪些漏洞检测插件。主机发现通过 Ping 扫描、ARP 扫描等方式确定目标网络中存活的主机。端口与服务发现对存活主机进行端口扫描识别运行的服务如 SSH, HTTP, MySQL。漏洞检测针对识别出的服务运行相应的插件进行漏洞检测。结果分析与报告生成将检测结果进行风险评级Critical, High, Medium, Low, Info并生成详细报告。1.2 版本选择家庭版、专业版与企业版Tenable 公司为 Nessus 提供了多个版本选择错误的版本可能导致功能缺失或法律风险。版本目标用户关键特性与限制许可方式Nessus Essentials (家庭版)个人学习者、家庭网络免费最多扫描16个IP地址。包含完整的漏洞检查插件库但无合规性审计、无实时更新需手动下载插件包。注册 Tenable 账号获取激活码有效期1年可续期。Nessus Professional (专业版)安全顾问、中小企业收费IP地址无限制。包含所有漏洞插件、合规性策略如 CIS Benchmarks及实时插件更新。购买订阅按年付费。Tenable.sc / Tenable.io (企业版)大型企业云端或本地部署的管理平台可集中管理多个 Nessus 扫描器提供资产管理、仪表盘、高级报告等功能。企业级订阅。重要提示切勿使用“破解版”或“激活密钥”网络上流传的所谓“Nessus破解版”或“永久激活密钥”通常捆绑恶意软件或使用已失效/非法的许可证文件。这会导致软件无法更新插件库从而无法检测新漏洞甚至可能被 Tenable 封禁存在严重的安全与法律风险。学习目的应严格使用官方提供的 Nessus Essentials。学习环境建议对于个人学习和测试Nessus Essentials是完全足够且合法的选择。下文将以 Nessus Essentials 在 Windows/Linux 环境下的安装为例。2. 环境准备与 Nessus 安装Nessus 支持跨平台部署。我们将分别介绍在 Windows 和主流 Linux 发行版如 Ubuntu/CentOS上的安装步骤。无论哪种系统都需要确保有稳定的网络连接以下载安装包和后续的插件。2.1 Windows 系统安装Windows 安装过程较为直观适合大多数用户。访问官方网站使用浏览器访问 Tenable 官方下载页面通常为https://www.tenable.com/downloads/nessus。你需要注册一个 Tenable 账户才能下载。选择版本在下载页面选择Nessus-Nessus Essentials-Windows下载对应的.msi安装包例如Nessus-10.7.2-x64.msi。运行安装程序以管理员身份运行下载的.msi文件。安装过程中会提示你选择安装类型典型安装即可和安装路径默认路径为C:\Program Files\Tenable\Nessus。安装程序会自动将 Nessus 服务注册为 Windows 服务并尝试启动它。完成安装安装完成后通常会自动打开浏览器访问https://localhost:8834/。如果没有可以手动打开。关键检查点安装过程中Windows Defender 防火墙可能会弹出警告需要允许 Nessus 通过防火墙。确保 8834 端口未被其他程序占用。2.2 Linux 系统安装以 Ubuntu 22.04 为例Linux 下的安装通常通过命令行完成更适合服务器环境。下载安装包在官方下载页面选择对应的 Linux 版本如 Debian/Kali 的.deb包或 RHEL/CentOS 的.rpm包。# 示例下载 Nessus Essentials 的 .deb 包 (版本号请替换为最新) wget https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/XXXX/download?i_agree_to_tenable_license_agreementtrue -O Nessus-latest-debian10_amd64.deb注意上面的 URL 是示例实际下载链接需从官网获取。官网下载通常需要你登录后点击获取一个动态的、带认证参数的链接。安装软件包# 对于 .deb 系统 (Ubuntu, Debian, Kali) sudo dpkg -i Nessus-latest-debian10_amd64.deb # 对于 .rpm 系统 (RHEL, CentOS, Fedora) sudo rpm -ivh Nessus-latest-es7.x86_64.rpm启动 Nessus 服务# 启动服务 sudo systemctl start nessusd # 设置开机自启 sudo systemctl enable nessusd # 查看服务状态 sudo systemctl status nessusd如果状态显示为active (running)说明服务启动成功。访问 Web 界面在服务器本机或能访问该服务器的浏览器中打开https://服务器IP:8834。首次访问会看到 Nessus 正在初始化和编译插件的界面这个过程可能需要10-30分钟取决于网络和服务器性能。常见安装问题排查无法访问https://localhost:8834检查服务状态sudo systemctl status nessusd。如果未运行尝试sudo systemctl restart nessusd并查看日志sudo tail -f /opt/nessus/var/nessus/logs/nessusd.messages。检查端口监听sudo netstat -tlnp | grep 8834。应看到nessusd进程监听在0.0.0.0:8834或127.0.0.1:8834。检查防火墙确保系统防火墙如ufw或firewalld放行了 8834 端口。sudo ufw allow 8834/tcp # Ubuntu ufw sudo firewall-cmd --permanent --add-port8834/tcp sudo firewall-cmd --reload # CentOS firewalld初始化/编译插件极慢或卡住这是正常现象Nessus 首次启动需要下载和编译大量插件。你可以通过查看日志观察进度tail -f /opt/nessus/var/nessus/logs/nessusd.messages。确保服务器能正常访问外网。3. 激活 Nessus 与初始配置当你能成功访问https://your-host:8834后将进入激活和初始化配置流程。3.1 获取并输入激活码选择 Nessus Essentials在打开的页面中选择 “Nessus Essentials”。注册 Tenable 账户如果你还没有账户需要填写姓名、邮箱等信息注册。邮箱用于接收激活码。获取激活码注册成功后登录 Tenable 账户在产品管理页面找到 Nessus Essentials获取你的Activation Code。它是一个由字母和数字组成的字符串。输入激活码回到浏览器中的 Nessus 页面粘贴激活码并继续。3.2 创建管理员账户接下来你需要为本地 Nessus 实例创建一个管理员账户。这个账户与 Tenable 官网账户是独立的仅用于登录这个 Nessus Web 控制台。用户名建议使用admin或其他易记的名称。密码设置一个强密码并妥善保管。3.3 等待插件初始化创建账户后Nessus 会开始下载最新的漏洞插件库。这个过程称为“插件编译”会在后台自动进行。页面显示你会看到一个进度条提示“Nessus is installing plugins...”。这个过程可能需要20 分钟到数小时取决于网络速度。完成标志当进度条走完页面会自动跳转到登录界面。此时你可以用刚才创建的管理员账户登录。关键注意事项磁盘空间警告在插件初始化或后续使用中你可能会在 Web 界面或日志中看到类似Your Nessus data directory is critically low on disk space (0MB avail)的警告。这表明安装 Nessus 的磁盘分区空间不足。Nessus 的插件和数据可能占用数十GB空间。你需要清理磁盘或为 Nessus 指定一个更大空间的安装目录在安装前规划更好。网络连接确保安装 Nessus 的服务器能够稳定访问互联网否则插件更新会失败。4. 核心功能配置与扫描实践登录成功后你将看到 Nessus 的主界面。我们从一个最基本的扫描任务开始。4.1 创建你的第一个扫描任务点击“New Scan”在主页点击“New Scan”。选择扫描模板Nessus 提供了许多预置模板。对于新手建议从“Basic Network Scan”开始。这个模板使用了平衡的设置适合快速发现常见漏洞。配置扫描设置Basic 标签Name给扫描任务起个名字如First Scan - Internal Network。Description可选描述。Folder选择任务存放的文件夹。Targets这是最重要的设置。输入你要扫描的目标。单个IP192.168.1.100IP范围192.168.1.1-192.168.1.254CIDR网段192.168.1.0/24主机名example.com多个目标用逗号或换行分隔。警告仅扫描你拥有明确书面授权的主机和网络未经授权扫描他人系统是违法行为。Credentials 标签如果你知道目标系统的登录账号密码如 Windows 域账户、SSH 密钥、MySQL 账户可以在这里添加。这允许 Nessus 进行更深入的配置审计如检查密码策略、补丁情况而不只是远程漏洞扫描。初次测试可暂不配置。Plugins 标签这里可以启用或禁用特定的漏洞插件家族。初期保持默认即可。Schedule 标签可以设置定时扫描例如每周日凌晨2点执行一次。Advanced 标签包含性能设置、扫描速度避免对生产环境造成压力、日志详细程度等。初次使用建议保持默认。保存并启动点击页面下方的 “Save” 按钮保存任务。然后在任务列表中找到刚创建的任务点击其右侧的播放按钮▶️启动扫描。4.2 监控扫描进度与查看结果监控进度点击任务名称进入详情页可以看到扫描进度、已发现的主机、已完成的检查数量。扫描时间取决于目标数量、网络状况和扫描策略。查看报告扫描完成后状态会变为 “Completed”。点击任务切换到“Results”选项卡。漏洞概览会以饼图和列表形式展示按风险等级Critical, High, Medium, Low, Info分类的漏洞数量。主机视图列出所有扫描到的主机以及每台主机上的漏洞统计。漏洞详情点击某个具体漏洞如 “SSL/TLS Server Supports TLSv1.0”会看到详细描述、风险等级、解决方案Remediation、受影响的主机、以及用于验证的插件输出Plugin Output。Plugin Output 是理解漏洞是否存在的最关键证据它展示了 Nessus 探测到的具体响应。4.3 报告导出与解读Nessus 支持导出多种格式的报告用于存档或提交给相关人员。导出报告在扫描结果页面点击“Export”按钮。选择格式.nessusNessus 原生格式包含所有原始数据可用于再次导入 Nessus 进行分析。PDF适合直接阅读和打印格式美观。CSV适合导入 Excel 进行数据筛选、排序和统计。HTML交互式报告可以在浏览器中方便地展开/收起漏洞详情。报告解读重点不要只看漏洞数量重点关注Critical和High级别的漏洞它们通常代表可被远程利用、可能导致系统被完全控制的风险。结合 Plugin Output 判断有些漏洞检测是基于版本号匹配的可能产生误报。一定要阅读 Plugin Output确认 Nessus 确实探测到了易受攻击的版本或配置。查看解决方案报告中的 “Solution” 部分通常会给出修复建议如升级到某个版本、修改某个配置项。这是漏洞修复的直接依据。5. 高级配置与最佳实践掌握了基础扫描后以下配置能让你更高效、更安全地使用 Nessus。5.1 配置扫描策略Policies策略是一组可复用的扫描设置模板。创建自定义策略可以标准化扫描行为。进入策略管理点击顶部导航栏的“Policies”-“New Policy”。选择模板或自定义可以从头创建或基于现有模板如 “Advanced Scan”修改。关键配置项Discovery配置主机发现方式Ping, TCP SYN, ARP等和端口扫描范围全端口或常用端口。Assessment配置Web应用扫描、暴力破解等更深入的检测选项。注意某些检测如暴力破解可能对目标服务造成影响需谨慎启用。Report配置报告生成的偏好如自动将低风险漏洞合并。Advanced设置扫描速度、连接超时、重试次数等用于适应不同的网络环境。5.2 使用凭证进行合规性审计Nessus 的强大之处在于其合规性检查插件如 CIS Benchmarks。要使用这些功能必须提供目标系统的登录凭证。配置凭证库点击顶部“Settings”-“My Account”标签页下的“Credentials”。你可以在这里预先添加各种类型的凭证Windows SSH, SNMP, Database等。在扫描策略或任务中调用凭证在创建扫描策略或编辑扫描任务时在“Credentials”标签页选择已配置的凭证。Nessus 会使用这些凭证登录系统检查安全配置项如密码策略、审计策略、服务状态等。5.3 设置定期扫描与通知对于持续监控定时扫描和自动通知是必不可少的。定时扫描在创建或编辑扫描任务时在“Schedule”标签页中设置。可以选择一次性、每天、每周、每月等频率。通知设置进入“Settings”-“Notification”。可以配置 SMTP 服务器用于在扫描完成或发现特定级别如 Critical的漏洞时发送邮件通知。也可以配置与 Slack、Webhook 等工具的集成。5.4 性能优化与资源管理调整扫描速度在策略的“Advanced”设置中Scan Speed选项可以控制发包频率。在测试环境或非业务时段可以使用 “Fast” 或 “Normal”对生产环境扫描务必使用 “Slow” 或 “Very Slow”避免造成网络拥塞或服务过载。管理插件在“Plugins”页面可以按家族禁用某些插件。例如如果你的环境中完全没有 Oracle 数据库可以禁用 Oracle 相关的插件家族以提升扫描速度。清理旧数据定期清理已完成的扫描结果可以释放磁盘空间。可以在“Settings”-“Advanced”中设置自动清理规则。6. 常见问题排查与解决方案在实际使用中你可能会遇到以下典型问题。问题现象可能原因检查与解决步骤Web界面无法访问 (https://IP:8834)1. Nessus 服务未启动。2. 防火墙阻止了8834端口。3. 安装/初始化失败。1. 检查服务状态systemctl status nessusd(Linux) 或服务管理器 (Windows)。2. 检查端口监听netstat -tlnp | grep 8834。3. 检查防火墙规则放行8834/TCP。4. 查看日志文件/opt/nessus/var/nessus/logs/nessusd.messages(Linux) 或C:\ProgramData\Tenable\Nessus\nessus\logs\nessusd.messages(Windows)。扫描进度极慢或卡在某个百分比1. 网络延迟或丢包。2. 目标防火墙拦截了扫描流量。3. 扫描策略过于激进触发目标防御机制。4. 单个插件运行异常。1. 检查网络连通性ping, traceroute。2. 尝试扫描一个已知开放且响应快的目标如scanme.nmap.org来排除自身问题。3. 调整扫描策略降低并发连接数 (Max Hosts,Max Checks)增加超时时间。4. 查看扫描任务的详细日志看是否卡在某个特定检查上。报告显示大量 “Info” 或 “Low” 级别漏洞但无实质风险这是正常现象。Nessus 会报告信息泄露、服务版本披露等低风险问题。1. 在导出报告时可以选择过滤掉 “Info” 级别。2. 在策略的“Report”设置中可以配置将低风险漏洞合并或隐藏。3. 关注点应始终放在Critical和High级别漏洞上。收到磁盘空间不足警告Nessus 插件库和扫描结果占用大量磁盘空间。1. 立即清理旧的扫描结果在 Web 界面手动删除或设置自动清理策略。2. 如果数据目录所在分区空间太小考虑将 Nessus 迁移到更大分区或为数据目录建立符号链接。操作前备份插件更新失败1. 网络无法访问 Tenable 更新服务器。2. 系统时间不正确。3. 许可证无效或过期。1. 检查服务器网络确保能访问plugins.nessus.org。2. 使用date命令检查系统时间并同步网络时间ntpdate或chronyd。3. 在“Settings”-“Support”中检查许可证状态。Nessus Essentials 需每年续期。扫描导致目标服务异常或崩溃扫描策略中启用了 “Denial of Service” 家族插件或进行了过于频繁的暴力破解尝试。1.立即停止扫描。2. 审查扫描策略在“Plugins”中禁用 “Denial of Service” 和 “Service detection” 家族中可能造成破坏的插件。3. 对生产环境扫描务必使用“Slow”或“Very Slow”速度并在业务低峰期进行。扫描前务必获得授权并通知相关系统负责人。7. 生产环境部署与安全建议将 Nessus 用于企业内网或生产环境扫描时需遵循更严格的规范。网络隔离与权限最小化将 Nessus 扫描器部署在独立的管理网络段或跳板机上仅允许其访问需要扫描的目标网段。为 Nessus 服务器本身配置严格的主机防火墙仅开放必要的管理端口如SSH的22Nessus的8834。运行 Nessus 服务的操作系统账户应具有最小权限。扫描授权与通知永远不要扫描未经授权的目标。建立正式的扫描审批流程。即使拥有授权在扫描生产系统前也应提前通知运维和应用团队告知扫描时间窗口和可能的影响。策略分级发现扫描使用轻量级策略仅进行主机发现和端口扫描用于资产清点。安全评估扫描使用标准策略进行漏洞检测但避免启用可能造成服务中断的插件。渗透测试扫描在授权范围内使用更全面的策略可能包括Web应用深度扫描和有限的凭证测试。数据安全Nessus 报告中可能包含敏感信息如系统版本、配置弱点。报告应加密存储并仅限授权人员访问。定期备份 Nessus 的配置和策略。与工作流集成利用 Nessus 的 API可以将扫描结果自动导入到工单系统如 Jira、SIEM 系统或漏洞管理平台实现漏洞的发现、指派、修复、验证的闭环管理。掌握 Nessus 的核心在于理解它只是一个发现工具。它输出的是一份“体检报告”而真正的价值在于安全团队和运维团队如何协作基于这份报告进行风险评估、制定修复优先级并最终消除风险。从一次简单的 Basic Network Scan 开始逐步尝试配置凭证审计、定制扫描策略、解读复杂报告你就能将 Nessus 真正转化为保障网络安全的有效工具。
返回列表