在企业内部网络安全评估中,Nessus是最被广泛使用的漏洞扫描工具之一。它能够在Ubuntu这类Linux发行版上以服务端形式运行,通过浏览器访问其Web界面来配置策略、发起扫描并生成报告。与单纯用命令行工具相比,Nessus提供了更完整的插件体系和可视化结果,适合做周期性资产排查。本文以Ubuntu 22.04环境为例,详细说明从安装到首次扫描的完整部署过程,并针对实际运维中容易遇到的服务启动失败、端口不可达等问题给出排查思路。

环境准备与软件包获取
在正式部署Nessus之前,需要先确认Ubuntu系统的版本架构以及依赖环境是否满足要求。Nessus官方提供了面向Ubuntu/Debian系的deb安装包,分为Nessus和Nessus Agent两种形态,普通漏洞扫描一般使用完整的Nessus服务端。你可以通过uname -m命令确认自己机器是x86_64还是aarch64,再到Tenable官网下载与之匹配的deb文件。如果系统未安装基础编译库或缺少libssl相关组件,后续启动可能会报动态链接错误,因此建议先执行一次系统更新。
获取安装包的方式通常有两种:一种是在本机用wget直接拉取官方链接,另一种是从其他机器拷贝过来。需要注意的是,Nessus安装包体积一般在几十兆左右,下载时应保证网络稳定,避免deb文件损坏导致dpkg解包失败。此外,Ubuntu默认启用的ufw防火墙如果处于开启状态,会阻断8834端口的外部访问,我们可以在安装前先放通该端口,或者规划好只允许特定管理网段连接,从而降低暴露风险。
除了网络与防火墙,还应预留足够的磁盘空间。Nessus在首次初始化时会下载最新的插件库,这些插件以压缩形式存放在/opt/nessus目录下,随着版本更新会逐渐占用数GB空间。如果服务器本身系统盘较小,建议提前将/opt挂载到独立数据盘,或至少保证根分区有十吉字节以上的空闲容量,防止初始化中途因写入失败而回滚。
安装流程与后台服务配置
拿到deb包以后,使用dpkg -i命令即可完成基础安装。假设文件名为nessus_10.5.2_ubuntu2204_amd64.deb,执行命令如下:
sudo dpkg -i nessus_10.5.2_ubuntu2204_amd64.deb sudo apt-get install -f
第二条命令用于修补可能缺失的依赖。安装结束后,Nessus并不会自动前台运行,而是以nessusd守护进程方式工作。我们需要用系统自带的systemctl来启动并设置开机自启:
sudo systemctl start nessusd sudo systemctl enable nessusd sudo systemctl status nessusd
当status输出中显示active (running)时,说明核心服务已经起来。此时Nessus会在本地监听8834端口,这是一个基于TLS的Web服务。若你是在云服务器上部署,还需去控制台安全组里放行8834入方向规则。很多新手在浏览器输入https://服务器IP:8834后提示无法连接,其实并不是Nessus崩溃,而是安全组或ufw未放通。可以用ss -tlnp | grep 8834确认监听状态,再逐层排查网络策略。
安装完成后首次打开Web页面,系统会引导你完成初始化向导。这一步要求输入从Tenable官网注册的激活码,激活码决定了你能使用的插件家族数量。免费版的Nessus Essentials限制扫描IP数量为16个,但足够个人和小环境使用。激活之后,后台会自动拉取插件,这个过程可能持续几分钟到半小时,取决于带宽和服务器性能,期间Web界面会显示进度条,切忌强行重启服务。
创建扫描任务与结果解读
初始化完毕并登录控制台后,第一步是创建管理员账号。该账号保存在Nessus本地用户库中,与系统Ubuntu账号相互独立。登录后点击New Scan,可以看到多种内置模板,例如Basic Network Scan适合普通资产探测,Web Application Tests则偏向应用层漏洞。对于内网主机群,通常选择Basic Network Scan并填写目标IP段即可。
在配置扫描策略时,有几个参数值得关注。首先是Scan Speed,若选得过快可能对老旧设备造成性能冲击;其次是Credentials配置,如果提供了SSH账号,Nessus能登录目标做本地检查,发现更多补丁类漏洞。下面是一段在Ubuntu上用ssh-keygen生成密钥并供Nessus调用的示例,目的是实现无密码的合规扫描:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/nessus_key cat ~/.ssh/nessus_key.pub
扫描结束后,Nessus会按漏洞严重程度用不同颜色标记。高危项通常对应可直接利用的远程代码执行或弱口令,中危多为配置不当,低危常常是信息泄露类。报告支持导出为PDF、CSV等格式,方便递交给修复团队。需要提醒的是,扫描行为本身可能触发目标系统的IDS告警,因此在生产环境排期时应提前沟通,避免被误判为攻击。通过合理规划扫描窗口与凭据,Nessus能在Ubuntu上成为持续性的安全守门员。
常见故障排查与性能优化
实际部署中,除了端口不通,还有一类问题是插件更新卡住。表现为Web界面一直停在Compiling plugins阶段,此时可以登录Ubuntu主机查看/opt/nessus/logs/nessusd.messages文件,搜索error或timeout关键字。如果是网络抖动导致下载中断,可尝试用/opt/nessus/sbin/nessuscli update手动触发一次更新,该命令会断点续传官方插件包。
另一个容易被忽视的点是系统资源瓶颈。Nessus在扫描大量主机时会开启很多线程,默认配置可能吃掉十几吉字节内存。若Ubuntu服务器内存偏小,会出现进程被OOM Killer终止的情况。我们可以通过修改/opt/nessus/etc/nessus/nessusd.conf中的max_simultaneous_hosts和max_threads来限流,例如将同时扫描主机数降到8以内,从而让2GB内存的机器也能平稳运行。
最后谈谈版本升级。Nessus每隔几个月会发布新版本修复自身缺陷并扩充插件。在Ubuntu上升级很简单,下载新deb包后用dpkg -i覆盖安装即可,配置与数据库一般会被保留。但跨大版本时建议先备份/opt/nessus目录,防止插件格式不兼容。保持Nessus为较新版本,才能有效识别近期披露的漏洞,真正发挥部署它的价值。