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环境满足以下条件,这能避免一半以上的安装失败问题:
- 操作系统:主流发行版均可。本文会以Debian/Ubuntu和RHEL/CentOS/Rocky Linux两大系列为例进行说明。对于像Kali Linux这类渗透测试专用系统,其本质是Debian,因此遵循Debian系的步骤。
- 系统权限:你需要拥有
root权限或能通过sudo执行特权命令。 - 网络连接:安装过程中,Nessus需要从Tenable的服务器下载核心组件和插件(尤其是首次安装后)。请确保你的系统能正常访问互联网。如果身处内网需要代理,需要提前配置好系统的HTTP/HTTPS代理环境变量(如
http_proxy,https_proxy)。 - 硬件资源:这是很多人忽略的点。Nessus尤其是其插件库,比较消耗资源。
- 内存:至少4GB。如果扫描目标较多或并发扫描,建议8GB或以上。内存不足会导致服务进程异常退出。
- 磁盘空间:至少预留10GB以上的空闲空间。插件库本身就会占用几个GB,扫描报告也会占用空间。
- CPU:现代多核CPU即可,扫描速度与CPU性能正相关。
注意:强烈建议在虚拟机或独立的测试环境中进行安装和练习。不要直接在重要的生产主机上操作。
2.3 获取安装包:官网与版本选择
这是第一步,也是容易走错的一步。不要去第三方网站下载来历不明的包,直接访问Tenable官网。
- 打开浏览器,访问 Tenable 官方下载页面:
https://www.tenable.com/downloads/nessus - 页面会要求你填写一个邮箱地址来获取下载链接。填写一个有效的邮箱,选择 “Nessus Essentials” (即之前的家庭版)。这个版本免费,最多支持扫描16个IP地址,对于学习和测试完全足够。
- 在操作系统选择区域,根据你的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)。
- Debian/Ubuntu/Kali:选择
- 你会收到一封邮件,里面包含下载链接和激活码(Activation Code)。务必保存好这个激活码,后续初始化需要。
你也可以在Linux终端里直接使用wget或curl配合邮件中的下载链接来获取安装包,这样更直接。
# 示例:使用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"参数模拟浏览器行为。最简单的方法还是在浏览器里下载好,再用scp或sftp传到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 -fdpkg -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包,我们使用rpm或yum工具。
# 1. 使用yum本地安装,它能自动处理依赖关系,比单纯的rpm -i更省心。 sudo yum localinstall -y Nessus-*.rpm # 或者使用rpm命令安装 # sudo rpm -ivh Nessus-*.rpmyum localinstall会检查并尝试从配置的仓库中解决这个rpm包的依赖,是更推荐的方式。
服务管理与Debian系类似,只是早期CentOS 7可能默认使用service命令,但新版本都统一到了systemctl。
# 2. 启动并启用服务 sudo systemctl start nessusd sudo systemctl enable nessusd # 3. 检查状态 sudo systemctl status nessusd3.3 防火墙配置与Web访问
Nessus的Web管理界面默认运行在TCP 8834端口。如果您的系统开启了防火墙(如firewalld或ufw),需要放行该端口。
对于 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界面后,会开始初始化设置流程:
- 选择产品类型:对于免费用户,选择 “Nessus Essentials”。
- 创建管理员账户:输入你想要的用户名(如
admin)和密码。这个密码务必复杂且牢记,它是你管理Nessus的钥匙。 - 输入激活码:将之前官网邮件里收到的激活码(Activation Code)粘贴进来。
- 插件下载:点击继续后,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”。
- 选择模板:点击 “User Defined”,选择你刚才创建的 “My First Internal Scan” 策略。
- 配置任务:
- 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:
重要警告:只扫描你有权扫描的设备!未经授权扫描他人的网络或系统可能是违法的。请务必在你的实验环境(如虚拟机局域网)内进行测试。例如,可以扫描你自己创建的另一个虚拟机(IP如
192.168.1.200)。 - Schedule:可以设置定时扫描,我们先选 “One time”(一次性)。
- Notifications:设置扫描完成后的通知,比如发邮件,初期可以不设。
配置完成后,点击 “Save”。任务就创建好了,会出现在Scans列表里。
找到你刚创建的任务,点击右边的“Play”(三角形图标) 按钮,启动扫描。状态会变为 “Running”。
4.3 扫描结果分析与解读
扫描时间取决于目标数量、开放端口数量和策略配置。扫描完成后,状态变为 “Completed”。点击任务名称进入报告页面。
报告页是信息密度最高的地方,你需要学会看这几个关键部分:
- Vulnerabilities(漏洞)选项卡:按严重程度分类(Critical, High, Medium, Low, Info)。这是核心。
- Hosts(主机)选项卡:列出所有扫描到的主机及其开放端口、发现的漏洞数量。
- 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性能调优建议: 如果扫描速度慢或服务器负载高,可以调整:
- 扫描策略中的“Performance”设置:降低“最大主机数”和“最大检查数”的并发值。
- 系统层面:确保Nessus服务器有足够的内存。如果频繁使用交换分区(swap),扫描会变得极慢。可以考虑增加物理内存或调整
nessusd进程的优先级。 - 插件管理:在策略中禁用与目标明显无关的插件簇(Plugin Families),如“Solaris Local Security Checks”对于Windows网络就是无用的。
5.3 常见故障与问题排查实录
即使按照教程,你也可能会遇到一些问题。这里记录几个我遇到过的典型问题及解决方法:
问题1:浏览器访问https://IP:8834无法连接。
- 检查1:确认Nessus服务是否真的在运行:
systemctl status nessusd。 - 检查2:确认防火墙是否放行了8834端口:
sudo firewall-cmd --list-ports或sudo 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卸载前,请务必导出你需要保留的扫描报告和策略。