news 2026/9/4 8:31:30

Kali Linux安装Nessus漏洞扫描器:从零部署到实战扫描指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kali Linux安装Nessus漏洞扫描器:从零部署到实战扫描指南

这次我们来看一个在网络安全领域,尤其是渗透测试和漏洞评估中,几乎绕不开的工具——Nessus。它不是一个新工具,但因其强大的漏洞库和持续更新的特性,至今仍是安全从业者进行合规检查、资产发现和漏洞扫描的首选之一。对于使用Kali Linux作为主力渗透测试平台的朋友来说,在Kali上集成Nessus,意味着能将一个商业级的漏洞扫描能力无缝融入这个“黑客工具箱”。

这篇文章的重点不是讲Nessus有多厉害,而是解决一个非常实际的问题:如何在Kali Linux上,从零开始,完成Nessus的下载、安装、激活,并跑通第一个漏洞扫描任务。整个过程会涉及官方包获取、离线激活码处理、Web服务启动以及基础扫描配置。无论你是安全专业的学生、刚入行的渗透测试工程师,还是需要定期进行安全自查的运维人员,这篇手把手的教程都能帮你快速搭建起可用的本地漏洞扫描环境。

1. 核心能力速览

在开始动手之前,我们先快速了解Nessus的核心特性和本次部署的关键信息。

能力项说明
工具类型商业漏洞扫描器(提供免费家庭版)
核心功能资产发现、漏洞扫描、合规性检查、配置审计
部署平台Kali Linux(本文演示环境),也支持Windows、macOS等
硬件门槛对CPU和内存有要求,建议至少2核CPU、4GB内存。扫描性能与目标数量和网络环境强相关。
显存占用不涉及GPU计算,无显存要求。
启动方式通过systemctl启动后台服务,通过浏览器访问Web管理界面。
是否支持API是,Nessus提供完整的REST API,可用于自动化扫描和报告管理。
是否支持批量任务是,可通过Web界面创建扫描任务队列,或通过API进行批量扫描。
适合场景企业内部网络安全评估、渗透测试前期信息收集、安全合规自查、教育学习与研究。

重要提示:Nessus家庭版(Home)免费,但仅限于非商业用途,且扫描IP数量有限制。专业版(Professional)功能更全,需购买许可证。本文演示基于家庭版的安装与激活流程。

2. 适用场景与使用边界

Nessus是一个功能强大的工具,但必须在合法、合规的范围内使用。

它适合谁?

  • 渗透测试人员:用于前期全面的资产发现和漏洞信息收集。
  • 安全运维工程师:用于定期对内部网络和服务器进行漏洞巡检。
  • 合规性审计人员:利用其策略模板检查系统是否符合PCI DSS、HIPAA等标准。
  • 网络安全学习者:在授权的实验环境(如虚拟机、专用靶场)中学习漏洞原理和扫描技术。

它能解决什么问题?

  1. 资产清点:自动发现指定网段内存活的主机及其开放的端口、服务。
  2. 漏洞识别:利用庞大的漏洞插件库,识别操作系统、应用程序、中间件、数据库等的已知安全漏洞。
  3. 合规检查:对照安全基线模板,检查系统配置是否符合安全标准。
  4. 生成报告:提供详细的技术报告和管理摘要,用于风险分析和整改跟踪。

使用边界与法律风险

  • 绝对禁止:在未获得明确书面授权的情况下,对任何不属于你或你未被授权测试的网络、系统、网站进行扫描。这属于违法行为。
  • 授权测试:仅在拥有所有权的资产、或已获得所有者正式授权(如渗透测试合同、漏洞众测项目范围)的资产上使用。
  • 实验环境:强烈建议在虚拟机(如VMware、VirtualBox)搭建的隔离网络环境中进行学习和测试,例如使用DVWA、Metasploitable等靶机。
  • 谨慎扫描:即使对授权目标,高强度的扫描也可能对目标系统性能造成影响,甚至导致服务中断。应在业务低峰期进行,并提前通知相关方。

3. 环境准备与前置条件

在Kali上安装Nessus前,请确保你的环境满足以下要求。

1. 操作系统确认

  • 本文基于Kali Linux 2024.x进行演示,其他较新版本流程类似。
  • 打开终端,使用以下命令确认系统信息:
    cat /etc/os-release uname -a

2. 网络连接

  • 安装过程中需要从Tenable官方服务器下载安装包和插件,请确保Kali虚拟机或主机能够访问互联网。
  • 如果需要配置代理,请提前在系统或终端中设置好。

3. 系统更新

  • 建议先更新系统软件包列表,确保环境一致:
    sudo apt update sudo apt upgrade -y

4. 资源检查

  • 磁盘空间:Nessus安装及插件更新需要约2GB以上的磁盘空间。
  • 内存:运行Nessus服务建议至少有2GB可用内存,扫描大型网络时需要更多。
  • 权限:安装和启动服务需要sudoroot权限。

4. 安装部署与启动方式

我们将按照“下载 -> 安装 -> 启动服务 -> 初始化配置”的顺序进行。

4.1 下载Nessus安装包

访问Tenable官方下载页面是首选。但由于网络原因,有时直接下载较慢。这里提供官方和备用方法。

方法一:官方命令行下载(推荐)在Kali终端中,使用wget直接下载对应Linux版本的.deb安装包。请访问Tenable官网查看最新版本号并替换下面命令中的链接部分。

# 示例:下载适用于AMD64架构的Nessus 10.7.1版本 # 请务必前往 https://www.tenable.com/downloads/nessus 查看最新链接 wget https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.7.1-debian10_amd64.deb

如果下载速度慢,可以尝试使用curl或寻找镜像源。

方法二:手动下载后传输如果主机下载更快,可以在Windows/Mac上通过浏览器从Tenable官网下载对应的.deb文件(选择“Kali Linux / Debian”版本),然后通过SSH(如scp命令)、共享文件夹或U盘等方式传输到Kali系统中。

4.2 安装Nessus软件包

下载完成后,使用dpkg命令进行安装。dpkg可能缺少依赖,我们可以用apt来修复。

# 进入下载文件所在目录,假设文件名为 Nessus-10.7.1-debian10_amd64.deb sudo dpkg -i Nessus-10.7.1-debian10_amd64.deb

如果安装过程中报告依赖错误,运行以下命令自动安装缺失的依赖:

sudo apt --fix-broken install -y

安装成功后,终端会输出提示信息,表明Nessus服务已安装并注册。

4.3 启动Nessus服务并设置开机自启

安装程序会自动创建一个名为nessusd的系统服务。我们来启动它并设置为开机启动。

# 启动nessusd服务 sudo systemctl start nessusd # 设置服务开机自动启动 sudo systemctl enable nessusd # 检查服务运行状态,确认状态为 active (running) sudo systemctl status nessusd

看到状态为“active (running)”即表示后台服务启动成功。Nessus默认监听https://localhost:8834

4.4 防火墙配置(如有)

如果Kali系统启用了防火墙(如ufw),需要放行8834端口。

# 如果使用ufw sudo ufw allow 8834 sudo ufw reload

5. 初始化Web配置与激活

服务启动后,需要通过浏览器完成初始化设置,包括创建管理员账户和激活产品。

5.1 访问Web管理界面

  1. 打开Kali Linux上的浏览器(如Firefox)。

  2. 在地址栏输入:https://localhost:8834

    • 注意:是https,不是http
    • 如果是在虚拟机中安装,可以从宿主机浏览器访问,需将localhost替换为Kali虚拟机的IP地址,例如https://192.168.1.10:8834
  3. 首次访问会看到安全警告,这是因为Nessus使用自签名SSL证书。这是正常的,点击“高级”或“接受风险并继续”即可。

5.2 选择产品类型与获取激活码

  1. 进入页面后,会提示你选择产品版本。为了学习和测试,我们选择“Nessus Essentials”(即之前的家庭版)。它是免费的。
  2. 接下来需要输入一个激活码(Activation Code)。你需要一个Tenable账户来获取它。
  3. 点击页面上的链接,会跳转到Tenable官网的激活码申请页面。使用邮箱注册一个Tenable账户。
  4. 注册成功后,登录Tenable账户,在管理页面你会找到属于你的激活码(一串由字母和数字组成的代码,通常类似XXXX-XXXX-XXXX-XXXX-XXXX)。复制它。

5.3 完成初始化设置

  1. 回到Kali浏览器中的Nessus页面,粘贴你获得的激活码。
  2. 点击“Continue”。Nessus会开始连接Tenable服务器验证激活码,并准备初始化。
  3. 接下来,创建你的Nessus管理员账户。务必记住这个用户名和密码,这是你以后登录Web管理界面的凭证。
  4. 提交后,Nessus会开始初始化过程,这包括下载最新的漏洞插件(plugins)。这是一个耗时较长的步骤,取决于你的网速,可能需要十几分钟到半小时以上。请耐心等待进度条完成。

6. 功能测试与效果验证

初始化完成后,会自动跳转到Nessus的Web主界面。现在,我们来创建一个最简单的扫描任务,验证整个安装是否成功。

6.1 创建第一个扫描任务

  1. 登录:使用你刚才设置的管理员账号密码登录。
  2. 新建扫描:点击左上角的“New Scan”按钮。
  3. 选择模板:在模板列表中,找到“Basic Network Scan”。这是一个针对网络主机的通用漏洞扫描模板,适合初学者。点击它。
  4. 配置扫描
    • Name:给你的扫描任务起个名字,例如My First Test Scan
    • Description:可选,填写描述。
    • Targets这是最关键的一步!在这里输入你要扫描的目标。
      • 绝对禁止扫描未经授权的公网IP或内网IP!
      • 安全测试建议:输入你本地搭建的靶机IP。例如,如果你在同一个虚拟网络里有一台Metasploitable2靶机,IP是192.168.1.100,就输入这个IP。
      • 自我测试:你也可以扫描Kali自己,输入localhost127.0.0.1
  5. 保存并启动:配置完成后,点击页面下方的“Save”按钮。然后,在这个任务的界面上,点击“Launch”按钮开始扫描。

6.2 观察扫描过程与结果

  1. 扫描队列:点击顶部导航栏的“My Scans”,可以看到你创建的任务。状态会从“Pending”变为“Running”,并显示进度百分比。
  2. 实时查看:点击正在运行的任务名称,可以进入详情页,看到实时发现的主机开放的端口以及正在检查的漏洞
  3. 扫描完成:当状态变为“Completed”时,扫描结束。
  4. 查看报告:点击已完成的任务,你会看到扫描摘要。点击“Vulnerabilities”选项卡,可以按风险等级(Critical, High, Medium, Low)查看发现的漏洞列表。点击任意一个漏洞,可以查看详细描述、风险评级、解决方案(Remediation)以及输出信息(Output,即Nessus检测到的具体证据)。

效果验证成功标准

  • 能够成功创建并启动扫描任务。
  • 扫描状态能正常从“Running”变为“Completed”。
  • 在结果中至少能看到被扫描主机的开放端口信息。
  • 如果扫描的是存在漏洞的靶机(如Metasploitable2),应该能列出大量中高危漏洞。

7. 接口API与批量任务

对于需要自动化集成的场景,Nessus的REST API非常有用。你可以通过API管理扫描、启动任务、导出报告等。

7.1 启用API密钥

  1. 在Web界面中,点击右上角用户头像,进入“My Account”。
  2. 在账户设置中,找到“API Keys”部分。
  3. 点击“Generate”生成新的API密钥。你会得到两串字符:
    • Access Key
    • Secret Key
  4. 像保存密码一样妥善保存这两个Key,它们只显示一次。

7.2 使用cURL测试API连通性

获取API密钥后,可以使用简单的cURL命令测试API是否可用。以下命令用于获取当前用户的扫描任务列表。

# 将 YOUR_ACCESS_KEY 和 YOUR_SECRET_KEY 替换为你刚刚生成的密钥 # 将 NESSUS_HOST 替换为你的Nessus地址,如 127.0.0.1 curl -X GET \ https://NESSUS_HOST:8834/scans \ -H "X-ApiKeys: accessKey=YOUR_ACCESS_KEY; secretKey=YOUR_SECRET_KEY" \ -k
  • -k参数表示忽略SSL证书验证(因为自签名证书)。
  • 如果成功,会返回一个JSON格式的扫描列表数据。

7.3 批量任务思路

Nessus本身支持在Web界面中配置扫描排程(Schedule)。通过API,你可以实现更灵活的批量操作:

  1. 批量创建扫描:通过API循环调用,为多个目标IP或IP段创建扫描任务。
  2. 批量启动扫描:获取所有“就绪”状态的扫描任务ID,然后依次调用启动API。
  3. 批量导出报告:扫描完成后,循环调用报告导出API,将结果保存为PDF、HTML、CSV等格式。
  4. 状态监控:编写脚本定期检查所有扫描任务的状态,并发送通知。

Python示例(使用requests库)

import requests import json # 配置信息 NESSUS_HOST = '127.0.0.1' ACCESS_KEY = 'YOUR_ACCESS_KEY' SECRET_KEY = 'YOUR_SECRET_KEY' BASE_URL = f'https://{NESSUS_HOST}:8834' # 设置请求头 headers = { 'X-ApiKeys': f'accessKey={ACCESS_KEY}; secretKey={SECRET_KEY}', 'Content-Type': 'application/json' } # 禁用SSL警告(仅用于测试环境) requests.packages.urllib3.disable_warnings() # 示例:获取扫描列表 try: response = requests.get(f'{BASE_URL}/scans', headers=headers, verify=False) response.raise_for_status() # 检查请求是否成功 scans = response.json() print(f"成功获取到 {len(scans.get('folders', []))} 个文件夹下的扫描任务。") # 可以进一步解析scans内容 except requests.exceptions.RequestException as e: print(f"API请求失败: {e}")

8. 资源占用与性能观察

Nessus作为一款本地部署的扫描器,其资源消耗主要取决于并发扫描的主机数量、插件数量以及目标系统的响应情况。

1. 进程与内存观察在终端中,可以使用tophtop命令观察nessusd进程的资源占用。

top -p $(pgrep nessusd) # 或者使用htop,并过滤nessusd

通常,空闲时nessusd进程会占用数百MB内存。在进行扫描时,内存占用会显著上升,可能达到1-2GB或更高,CPU使用率也会飙升。

2. 磁盘空间观察插件和数据默认安装在/opt/nessus目录。可以使用dfdu命令检查磁盘使用情况。

# 查看/opt分区空间 df -h /opt # 查看/opt/nessus目录大小 sudo du -sh /opt/nessus

3. 网络连接观察扫描时会产生大量网络连接。可以使用netstatss命令查看。

sudo netstat -tunap | grep nessusd # 或 sudo ss -tunap | grep nessusd

性能优化建议

  • 限制并发主机数:在扫描策略的“Advanced”设置中,降低“Max hosts per scan”和“Max checks per host”的值,可以降低对系统和目标的压力。
  • 优化扫描策略:针对特定目标(如Web应用、数据库)选择专门的扫描模板,而不是每次都进行全端口、全插件的“大而全”扫描。
  • 安排扫描时间:将大型扫描任务安排在业务低峰期或夜间进行。

9. 常见问题与排查方法

在安装和使用过程中,你可能会遇到以下问题。

问题现象可能原因排查方式解决方案
浏览器访问https://localhost:8834无法连接1. Nessus服务未启动。
2. 防火墙阻止了8834端口。
3. Kali主机与虚拟机网络不通(宿主机访问时)。
1.sudo systemctl status nessusd检查服务状态。
2.sudo ss -tlnp | grep :8834检查端口监听。
3. 检查Kali IP,并尝试从Kali内部浏览器访问。
1. 启动服务:sudo systemctl start nessusd
2. 配置防火墙放行端口。
3. 确保虚拟机网络设置为桥接或NAT,并获取到IP。
初始化时卡在“Downloading plugins...”进度条网络连接Tenable服务器慢或被阻断。观察终端中nessusd服务日志:sudo tail -f /var/log/nessus/nessusd.messages1. 耐心等待,首次下载插件数据量较大。
2. 检查网络代理设置。
3. 极端情况下,可尝试寻找离线插件包进行手动更新。
激活码无效或无法激活1. 激活码输入错误。
2. 激活码对应的邮箱未验证。
3. 网络问题导致无法连接激活服务器。
1. 仔细核对激活码。
2. 检查注册邮箱是否完成了验证。
3. 尝试在Tenable官网登录账户,查看激活码状态。
1. 重新复制粘贴激活码。
2. 完成邮箱验证。
3. 确保Kali能正常访问tenable.com
扫描任务长时间处于“Pending”或“Running”状态无进展1. 目标IP不可达。
2. 扫描策略过于激进,被目标防火墙拦截。
3. Nessus服务进程异常。
1. 从Kaliping一下目标IP。
2. 检查扫描日志(在扫描结果页面)。
3. 查看nessusd服务日志。
1. 确认目标主机在线且网络可达。
2. 调整扫描策略,降低并发和频率。
3. 重启Nessus服务:sudo systemctl restart nessusd
Web界面登录后提示错误或空白浏览器缓存问题或会话异常。尝试使用浏览器的无痕/隐私模式访问。1. 清除浏览器缓存和Cookie。
2. 重启浏览器。
3. 重启Nessus服务。
dpkg -i安装时报告依赖错误Kali系统缺少Nessus所需的某些库文件。查看具体的错误信息。运行sudo apt --fix-broken install -y自动修复依赖,然后重新执行dpkg -i安装。

10. 最佳实践与使用建议

为了让你的Nessus用得更顺手、更安全,这里有一些经验之谈。

  1. 首次使用先扫自己:在熟悉工具阶段,将扫描目标设置为localhost或同一网络下的另一台测试虚拟机(如Metasploitable)。这能帮你理解扫描报告,又不会引发任何法律风险。
  2. 合理配置扫描策略:不要总是使用默认的“Basic Network Scan”。根据目标类型(Web服务器、数据库、网络设备)创建或选择更精细的策略模板,可以提升扫描效率和准确性。
  3. 定期更新插件:漏洞库日新月异。虽然家庭版插件更新有时延,但仍应定期在Web界面的“Updates”页面检查并安装更新,以确保能发现最新的漏洞。
  4. 妥善保管凭证:Nessus管理员密码和API密钥是最高权限凭证,务必妥善保存,不要泄露。
  5. 管理扫描结果:及时清理旧的、无用的扫描任务和报告,以释放磁盘空间。重要的报告可以导出(PDF/HTML/CSV)并归档。
  6. 关注资源使用:在启动一个大型扫描(如整个C类网段)前,预估一下时间和资源消耗。避免在性能不足的机器上执行过多并发扫描导致系统卡死。
  7. 合规与授权永远是第一位:再次强调,任何扫描行为都必须建立在合法授权的基础上。在真实环境中扫描前,务必获得书面授权,并明确扫描范围和时间窗口。

通过以上步骤,你应该已经在Kali Linux上成功部署并运行了Nessus漏洞扫描器。从下载安装包到完成第一次扫描,整个过程的核心在于网络畅通、激活码获取以及目标设定的合法性。这个工具打开了自动化漏洞评估的大门,但记住,它发现的每一个“高危”漏洞,都需要你结合专业知识去验证、评估其真实的业务风险。接下来,你可以尝试探索更复杂的扫描策略、学习如何解读漏洞的风险评分和修复建议,甚至将API集成到你的自动化工作流中,让安全巡检变得更加高效。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 6:21:32

存储系统核心链路应该怎样逐步拆开

存储系统核心链路应该怎样逐步拆开一、面对庞大解析器的重构困局 MySQL 8.0 的解析器实现由 Flex 词法分析器(sql_lex.cc)与 Bison 语法分析器(sql_yacc.yy)构成。整个语法定义文件 sql_yacc.yy 庞大且极其复杂,包含了…

作者头像 李华
网站建设 2026/9/4 22:35:04

DeepSeek Harness:构建可追溯AI工作流的插件化框架入门指南

1. 先搞清楚 DeepSeek Harness 到底解决了什么问题如果你最近在找 AI 工具,特别是那种能把不同 AI 能力像搭积木一样组合起来,并且每一步操作都能看到“为什么”的工具,那 DeepSeek Harness 值得你花十分钟了解一下。它不是另一个聊天机器人&…

作者头像 李华
网站建设 2026/9/4 7:00:50

LTspice2Matlab:把LTspice仿真数据高效导入Matlab的实战指南

简介:面向电子工程师与电路仿真人员的LTspice数据导入Matlab工具包,提供可直接调用的m脚本与配套示例电路,用于将LTspice仿真生成的电压、电流、功率等波形数据快速读入Matlab工作区,支持后续FFT分析、滤波器设计与图形化展示&…

作者头像 李华
网站建设 2026/9/4 7:26:39

2026 模型评测成刚需:MonkeyCode 云端一键对比,告别「玄学选模型」

为什么 2026 年「选模型」成了大问题? 打开任何一个大模型榜单,DeepSeek、GLM、Kimi、MiniMax、Qwen……几十个模型排成一排。比总分、比推理、比代码、比中文,分数各有输赢。更头疼的是:同一个模型,在 A 任务上吊打全…

作者头像 李华
网站建设 2026/9/4 22:54:50

人工智能 智能体 系统设计与多模态交互实验:第一版该做到什么程度

人工智能 智能体 系统设计与多模态交互实验:第一版该做到什么程度讨论时,一次架构评审中,团队为首个多模态 Agent 的功能范围产生分歧。 团队正在规划首个面向终端用户的多模态 Agent 系统。前端工程师希望直接支持语音连续打断、视频流实时 …

作者头像 李华
网站建设 2026/9/3 19:55:57

DeepSeek Harness插件开发指南:从零构建AI智能体技能

如果你正在寻找一个能让 AI 大模型真正融入你日常开发工作流,而不仅仅是聊天窗口的工具,那么 DeepSeek Harness 和它的插件生态,就是你接下来需要关注的重点。 过去,我们使用 AI 辅助编程,往往是在 IDE 和聊天窗口之间…

作者头像 李华