当前位置: 首页 > news >正文

Linux系统下Nessus漏洞扫描器安装配置与实战指南

1. 项目概述

Nessus,这个名字在网络安全圈里,尤其是做渗透测试和漏洞评估的同行中,几乎无人不晓。它被很多人称为“漏洞扫描领域的瑞士军刀”,原因无他,功能全面、更新及时、社区庞大。但很多刚入门的朋友,或者从Windows平台转战Linux的兄弟,第一次在Linux上部署Nessus时,总会遇到些“坑”:从官网下载哪个包、依赖怎么解决、服务起不来、Web界面访问不了,还有那个绕不开的激活与插件更新问题。今天,我就以一名老运维兼安全测试人员的身份,手把手带你走一遍Nessus在Linux系统上的完整安装、配置与基础使用流程。这不是一个简单的命令罗列,我会把每一步背后的逻辑、可能遇到的“坑”以及我趟过的雷,都掰开揉碎了讲清楚。无论你用的是Ubuntu、CentOS还是Kali Linux,这篇“保姆级”指南的目标是让你一次成功,把工具稳稳当当地跑起来,为后续的安全工作铺好路。

2. 核心需求与前置准备解析

2.1 为什么选择Nessus及Linux环境考量

在开始动手之前,我们得先搞清楚两个问题:为什么是Nessus?以及为什么要在Linux上装?

Nessus的核心优势在于其庞大的、持续更新的漏洞知识库。Tenable公司有一个专业团队在维护这个库,这意味着它能识别出从操作系统、中间件到应用层数以万计的已知漏洞。对于企业安全巡检、合规性检查(比如等保)和渗透测试的信息收集阶段,它是一个效率倍增器。虽然它有商业版,但其提供的家庭版(Home Feed)对于个人学习、测试内部非生产环境已经足够强大。

至于Linux环境,对于安全从业者而言几乎是标配。首先,很多安全工具原生就是为Linux设计的,环境兼容性更好。其次,Linux服务器在互联网中占据绝对主流,在同类系统上进行扫描,可以避免一些因系统差异导致的不必要干扰。最后,从操作习惯上,命令行能提供更精细的控制和自动化可能,这对于批量任务和集成到CI/CD管道中至关重要。

2.2 系统环境与资源准备

安装前,请确保你的Linux环境满足以下条件,这能避免一半以上的安装失败问题:

  1. 操作系统:主流发行版均可。本文会以Debian/UbuntuRHEL/CentOS/Rocky Linux两大系列为例进行说明。对于像Kali Linux这类渗透测试专用系统,其本质是Debian,因此遵循Debian系的步骤。
  2. 系统权限:你需要拥有root权限或能通过sudo执行特权命令。
  3. 网络连接:安装过程中,Nessus需要从Tenable的服务器下载核心组件和插件(尤其是首次安装后)。请确保你的系统能正常访问互联网。如果身处内网需要代理,需要提前配置好系统的HTTP/HTTPS代理环境变量(如http_proxy,https_proxy)。
  4. 硬件资源:这是很多人忽略的点。Nessus尤其是其插件库,比较消耗资源。
    • 内存:至少4GB。如果扫描目标较多或并发扫描,建议8GB或以上。内存不足会导致服务进程异常退出。
    • 磁盘空间:至少预留10GB以上的空闲空间。插件库本身就会占用几个GB,扫描报告也会占用空间。
    • CPU:现代多核CPU即可,扫描速度与CPU性能正相关。

注意:强烈建议在虚拟机或独立的测试环境中进行安装和练习。不要直接在重要的生产主机上操作。

2.3 获取安装包:官网与版本选择

这是第一步,也是容易走错的一步。不要去第三方网站下载来历不明的包,直接访问Tenable官网。

  1. 打开浏览器,访问 Tenable 官方下载页面:https://www.tenable.com/downloads/nessus
  2. 页面会要求你填写一个邮箱地址来获取下载链接。填写一个有效的邮箱,选择 “Nessus Essentials” (即之前的家庭版)。这个版本免费,最多支持扫描16个IP地址,对于学习和测试完全足够。
  3. 在操作系统选择区域,根据你的Linux发行版选择对应的包格式:
    • Debian/Ubuntu/Kali:选择.deb包 (例如:Nessus-10.5.0-ubuntu1404_amd64.deb)。
    • RHEL/CentOS/Rocky/Fedora:选择.rpm包 (例如:Nessus-10.5.0-es7.x86_64.rpm)。
  4. 你会收到一封邮件,里面包含下载链接和激活码(Activation Code)。务必保存好这个激活码,后续初始化需要。

你也可以在Linux终端里直接使用wgetcurl配合邮件中的下载链接来获取安装包,这样更直接。

# 示例:使用wget下载 (请替换为你的实际下载链接) wget --user-agent="Mozilla" "https://www.tenable.com/downloads/api/v1/public/pages/nessus/downloads/XXXXXXX/download?i_agree_to_tenable_license_agreement=true" -O Nessus-latest.deb

实操心得:官网下载链接有时会校验User-Agent。如果直接用wget下载得到一个HTML页面而不是安装包,可以尝试加上--user-agent="Mozilla"参数模拟浏览器行为。最简单的方法还是在浏览器里下载好,再用scpsftp传到Linux服务器上。

3. 分步安装与初始化配置详解

拿到安装包后,我们进入核心安装环节。我会按照不同的包管理器来分别说明。

3.1 Debian/Ubuntu/Kali Linux 安装流程

对于.deb包,我们使用dpkg工具进行安装。

# 1. 安装软件包,-i 参数表示安装 sudo dpkg -i Nessus-*.deb # 如果遇到依赖错误(如提示缺少某些库),运行以下命令修复安装并自动安装缺失的依赖。 sudo apt-get update && sudo apt-get install -f

dpkg -i是直接安装本地deb包,但它不会处理这个包所依赖的其他软件包。如果报错,apt-get install -f会修正断裂的依赖关系,这是Debian系系统处理依赖的常规操作。

安装完成后,Nessus服务(nessusd)并不会自动启动,需要我们来操作。

# 2. 启动Nessus服务 sudo systemctl start nessusd # 3. 设置Nessus服务开机自启(可选,但建议) sudo systemctl enable nessusd # 4. 检查服务状态,确认是否正常运行 sudo systemctl status nessusd

看到状态显示active (running)并且没有红色的错误日志,就表示服务启动成功了。

3.2 RHEL/CentOS/Rocky Linux 安装流程

对于.rpm包,我们使用rpmyum工具。

# 1. 使用yum本地安装,它能自动处理依赖关系,比单纯的rpm -i更省心。 sudo yum localinstall -y Nessus-*.rpm # 或者使用rpm命令安装 # sudo rpm -ivh Nessus-*.rpm

yum localinstall会检查并尝试从配置的仓库中解决这个rpm包的依赖,是更推荐的方式。

服务管理与Debian系类似,只是早期CentOS 7可能默认使用service命令,但新版本都统一到了systemctl

# 2. 启动并启用服务 sudo systemctl start nessusd sudo systemctl enable nessusd # 3. 检查状态 sudo systemctl status nessusd

3.3 防火墙配置与Web访问

Nessus的Web管理界面默认运行在TCP 8834端口。如果您的系统开启了防火墙(如firewalldufw),需要放行该端口。

对于 firewalld (CentOS/RHEL/Rocky):

sudo firewall-cmd --permanent --add-port=8834/tcp sudo firewall-cmd --reload

对于 ufw (Ubuntu/Debian):

sudo ufw allow 8834/tcp sudo ufw reload

现在,打开你的浏览器,访问https://<你的服务器IP地址>:8834。注意是HTTPS协议。 首次访问会看到浏览器安全警告,这是因为Nessus使用自签名证书。这是正常的,直接点击“高级”或“继续前往”即可。

3.4 初始化设置与激活

进入Web界面后,会开始初始化设置流程:

  1. 选择产品类型:对于免费用户,选择 “Nessus Essentials”。
  2. 创建管理员账户:输入你想要的用户名(如admin)和密码。这个密码务必复杂且牢记,它是你管理Nessus的钥匙。
  3. 输入激活码:将之前官网邮件里收到的激活码(Activation Code)粘贴进来。
  4. 插件下载:点击继续后,Nessus会开始下载最新的漏洞插件库。这是一个非常耗时且需要稳定网络的过程,可能会持续几十分钟到一小时以上,具体取决于你的网速和服务器性能。页面会显示进度条。

核心注意事项:插件下载阶段切勿关闭浏览器或中断服务器网络!如果中途失败,可以稍后重新登录,系统通常会尝试续传。你可以在服务器上通过命令tail -f /opt/nessus/var/nessus/logs/nessusd.messages来查看实时的插件下载和解压日志。

当所有插件下载并解压完成后,会自动跳转到登录页面。用你刚才设置的管理员账号密码登录,就能看到Nessus的主仪表盘了。至此,安装和初始化大功告成。

4. 基础使用与首次扫描实战

安装好了,我们来点实际的,创建并运行你的第一次漏洞扫描。

4.1 扫描策略与模板理解

登录后,点击顶部的“Policies”(策略)。策略定义了“怎么扫”。Nessus预置了很多模板,对于新手,我们从最简单的开始:

  • Basic Network Scan:最基础的网络扫描,默认使用所有插件,适合全面探测。
  • Advanced Scan:提供更细粒度的配置选项,适合有特定需求时使用。
  • Web Application Tests:针对Web应用的扫描模板。
  • Internal Network Scan:针对内部网络环境的优化模板。

我们点击“Create a new policy”,然后选择“Basic Network Scan”作为起点。你可以给这个策略起个名字,比如 “My First Internal Scan”。

在策略配置页面,有很多选项,初期我们关注几个关键点:

  • Settings:可以配置扫描的端口范围(默认是常用端口)、扫描速度(避免对目标造成压力)、是否进行暴力破解等。
  • Credentials:如果你有目标系统的账号密码,可以在这里添加,以便进行更深入的授权扫描(如检测缺失的系统补丁)。
  • Plugins:这里是选择启用哪些漏洞检测插件。对于“Basic Network Scan”,默认是全选。你可以根据目标类型禁用一些无关的插件(例如,目标没有数据库,可以禁用Oracle/MS SQL相关的插件),这能显著提升扫描速度。

首次使用,我们保持默认,直接保存策略。

4.2 创建并执行扫描任务

有了策略,接下来创建扫描任务(Scan)。点击顶部的“Scans”->“New Scan”

  1. 选择模板:点击 “User Defined”,选择你刚才创建的 “My First Internal Scan” 策略。
  2. 配置任务
    • Name:给任务起名,如 “Scan-Local-Network”。
    • Description:可选描述。
    • Folder:选择任务存放的文件夹。
    • Targets这是最重要的部分。输入你要扫描的目标。可以是:
      • 单个IP:192.168.1.100
      • IP范围:192.168.1.1-192.168.1.254
      • CIDR网段:192.168.1.0/24
      • 主机名:target.example.com(确保DNS能解析)
      • 文件上传:如果有很多IP,可以写在一个文本文件里,每行一个,然后上传。

    重要警告只扫描你有权扫描的设备!未经授权扫描他人的网络或系统可能是违法的。请务必在你的实验环境(如虚拟机局域网)内进行测试。例如,可以扫描你自己创建的另一个虚拟机(IP如192.168.1.200)。

  3. Schedule:可以设置定时扫描,我们先选 “One time”(一次性)。
  4. Notifications:设置扫描完成后的通知,比如发邮件,初期可以不设。

配置完成后,点击 “Save”。任务就创建好了,会出现在Scans列表里。

找到你刚创建的任务,点击右边的“Play”(三角形图标) 按钮,启动扫描。状态会变为 “Running”。

4.3 扫描结果分析与解读

扫描时间取决于目标数量、开放端口数量和策略配置。扫描完成后,状态变为 “Completed”。点击任务名称进入报告页面。

报告页是信息密度最高的地方,你需要学会看这几个关键部分:

  1. Vulnerabilities(漏洞)选项卡:按严重程度分类(Critical, High, Medium, Low, Info)。这是核心。
  2. Hosts(主机)选项卡:列出所有扫描到的主机及其开放端口、发现的漏洞数量。
  3. Remediations(修复建议)选项卡:汇总了修复漏洞的建议,非常实用。

如何解读一个漏洞条目?点击任意一个漏洞(比如一个 “High” 级别的)。你会看到:

  • Synopsis(概要):漏洞的简要描述。
  • Description(描述):详细的技术说明。
  • Solution(解决方案):如何修复这个漏洞,比如安装哪个补丁、升级到哪个版本、修改什么配置。
  • Output(输出):Nessus检测到该漏洞的具体证据,例如返回的HTTP头、版本号等。这是判断漏洞真实性的关键。
  • Plugin Details:提供这个检测插件的ID、发布时间等信息。

首次扫描后建议:不要被可能出现的成百上千个漏洞吓到。先从Critical(严重)和High(高危)级别的开始看。很多中低危漏洞可能是信息泄露、默认配置等,需要结合实际情况判断风险。Nessus的报告可以导出为PDF、HTML、CSV等格式,方便存档或分享。

5. 高级配置、维护与故障排查

把Nessus跑起来只是第一步,要让它在生产或长期测试环境中稳定、高效地工作,还需要一些维护技巧。

5.1 插件更新与手动更新技巧

Nessus的漏洞库(插件)是其灵魂。虽然服务启动后会自动在后台定期检查更新,但有时我们需要手动触发或处理网络问题。

通过Web界面更新: 在设置(Settings)-> 软件更新(Software Update)页面,可以手动点击 “Update Plugins”。

通过命令行更新: 有时Web界面更新缓慢或失败,可以通过命令行操作,更直观。

# 停止Nessus服务 sudo systemctl stop nessusd # 执行离线更新命令 (需要root权限) sudo /opt/nessus/sbin/nessuscli update --all # 或者,如果你已经下载了离线插件包(.tar.gz格式),可以指定文件更新 # sudo /opt/nessus/sbin/nessuscli update /path/to/your/all-2.0.tar.gz # 更新完成后,重新启动服务 sudo systemctl start nessusd

注意事项:离线更新包需要从Tenable官网获取,通常需要有效的订阅许可。家庭版(Essentials)通常只能通过在线方式更新。

5.2 服务管理、日志查看与性能调优

服务管理常用命令

# 启动服务 sudo systemctl start nessusd # 停止服务 sudo systemctl stop nessusd # 重启服务(修改配置后常用) sudo systemctl restart nessusd # 查看服务状态 sudo systemctl status nessusd # 查看服务日志(实时跟踪) sudo journalctl -u nessusd -f

关键日志文件: Nessus的详细日志位于/opt/nessus/var/nessus/logs/目录下。

  • nessusd.messages:主日志文件,记录插件加载、扫描任务状态等。
  • www_server.log:Web界面访问日志。
  • scans/目录:每个扫描任务会有独立的日志文件。

当扫描任务出错或服务异常时,首先查看nessusd.messages日志的尾部。

tail -n 100 -f /opt/nessus/var/nessus/logs/nessusd.messages

性能调优建议: 如果扫描速度慢或服务器负载高,可以调整:

  1. 扫描策略中的“Performance”设置:降低“最大主机数”和“最大检查数”的并发值。
  2. 系统层面:确保Nessus服务器有足够的内存。如果频繁使用交换分区(swap),扫描会变得极慢。可以考虑增加物理内存或调整nessusd进程的优先级。
  3. 插件管理:在策略中禁用与目标明显无关的插件簇(Plugin Families),如“Solaris Local Security Checks”对于Windows网络就是无用的。

5.3 常见故障与问题排查实录

即使按照教程,你也可能会遇到一些问题。这里记录几个我遇到过的典型问题及解决方法:

问题1:浏览器访问https://IP:8834无法连接。

  • 检查1:确认Nessus服务是否真的在运行:systemctl status nessusd
  • 检查2:确认防火墙是否放行了8834端口:sudo firewall-cmd --list-portssudo ufw status
  • 检查3:服务器本地能否访问:在服务器上执行curl -k https://localhost:8834。如果本地能通,外部不通,一定是网络或防火墙问题。
  • 检查4:查看Nessus是否在监听端口:sudo netstat -tlnp | grep 8834

问题2:初始化时卡在“Downloading plugins...”很久,甚至失败。

  • 原因:网络连接Tenable服务器不稳定或速度慢。
  • 解决:耐心等待,这是最长的一步。可以查看日志tail -f /opt/nessus/var/nessus/logs/nessusd.messages观察下载进度。如果多次失败,尝试在网络条件更好的时间段或环境下进行。确保服务器DNS解析正常。

问题3:扫描任务启动失败,提示“Unable to start the scan”。

  • 查看任务日志:在Scans页面,点击失败的任务,查看“Notes”或“Errors”标签页,通常有具体错误信息。
  • 常见原因:目标不可达(IP写错、网络不通)、没有扫描权限(尝试使用 credentialed scan 但凭据错误)、资源不足(内存耗尽)。根据日志提示逐一排查。

问题4:扫描报告里出现大量“Syn scan”或“Port scan”相关的信息项(Info),但没有实质漏洞。

  • 解读:这是正常的。Nessus首先会进行端口发现和主机发现,这些信息项记录了扫描的基础发现。真正的漏洞会在“Vulnerabilities”分类下。你可以调整策略,减少信息级别报告的详细程度。

问题5:如何卸载Nessus?如果你想彻底清理:

# Debian/Ubuntu sudo dpkg -r nessus # 或者 sudo apt-get purge --auto-remove nessus # RHEL/CentOS/Rocky sudo rpm -e Nessus # 或者 sudo yum remove Nessus # 删除残留数据和配置(谨慎操作,这会清除所有扫描数据和配置!) sudo rm -rf /opt/nessus sudo rm -rf /var/lib/nessus

卸载前,请务必导出你需要保留的扫描报告和策略。

http://www.jsqmd.com/news/1121548/

相关文章:

  • 2021年五大工程级机器学习模型选型指南
  • Linux驱动开发入门:30分钟从零编写可加载内核模块
  • 基于YOLOv8的混凝土缺陷智能检测系统开发
  • 3分钟快速恢复B站经典界面:Bilibili-Old终极使用指南
  • MBA学员必备的8款AI工具实战指南
  • 协方差矩阵热力图:高维特征冗余识别与可解释降维
  • 3步让旧Mac重获新生:OpenCore Legacy Patcher完整使用指南
  • NCMDump技术解析:逆向工程解锁网易云音乐NCM加密格式
  • 基于CNN的遥感图像分类:沙漠、湖泊与森林识别
  • AI论文写作工具全攻略:从格式调整到内容创作
  • 终极免费文档下载工具kill-doc:告别繁琐步骤,一键获取全网文档资源
  • STM32F042C6与UG95模组在物联网中的高性价比方案
  • 国产大模型写作能力横评:聚焦中文真实场景的评估新范式
  • AI自动化同步飞书文档:打通ChatGPT与团队协作的API连接器
  • WorkshopDL技术架构深度解析:多引擎协同的跨平台模组下载实现原理
  • 22款实测AI模型生存指南:零门槛、真免费、高稳定
  • 生产级机器学习服务部署实战:从模型到稳定API
  • Linux内核升级后NVIDIA驱动修复指南:从DKMS到CUDA兼容性
  • 2022实战型机器学习书单:理论-工具-工程三层认知地图
  • 车智赢APP登录协议逆向分析:签名算法与RSA加密还原实战
  • 电力负荷预测:SVM与PSO优化算法实战解析
  • 专科生必备AI工具指南:9款实用工具提升学习效率
  • C#与ONNX Runtime实现YOLO工业视觉检测部署
  • 贷款违约预测实战:KNN、决策树、SVM与逻辑回归四算法对比
  • 基于YOLOv11的餐厅智能检测系统实现
  • PIC18F85J50与UG95 LTE模块的嵌入式通信方案解析
  • 存储型XSS钓鱼攻击实战:从Pikachu靶场到防御体系构建
  • 决策树面试实战:从ID3手推到生产级剪枝与特征重要性避坑
  • Web界面配置NAT:从原理到实战的完整指南
  • 神经网络选型实战指南:7类架构与数据物理形态的精准匹配