NetBlade
Windows 步骤 5 / 12 ~15 分钟 中级

通过 SSH 清点 Linux 服务器和设备

使用普通帐户通过 SSH 让 NetBlade 读取 Linux 服务器:系统、内核、CPU、内存和已安装的软件包,并检查主机密钥。

Linux 服务器、虚拟化主机和许多设备不支持 Windows 管理协议,但它们支持 SSH。只需一个普通帐户,NetBlade 就能登录,读取这台计算机是什么、运行着哪些软件包,并记住服务器的身份,使被调包的计算机无法悄悄获取你的密码。本文介绍读取的内容、需要创建的帐户,以及你需要理解的那一个安全机制。

开始之前

  • 扫描后出现在 设备 中、开放了端口 22 的 Linux 计算机(端口扫描器或 识别 会显示)。
  • 对每台服务器的管理访问权限,用于创建帐户。
  • 服务器的 SSH 守护进程在 端口 22 上监听:NetBlade 连接的就是这个端口。

1. 了解 NetBlade 通过 SSH 读取什么

从 Linux 服务器或设备上,NetBlade 读取:

  • 主机名;
  • 操作系统,来自 /etc/os-release,该文件不存在时则读取内核名称;
  • 内核版本;
  • 处理器型号和核心数;
  • 总内存;
  • 已安装的软件包,来自 dpkg(Debian、Ubuntu 及其衍生版)或 rpm(Red Hat、Rocky、AlmaLinux、SUSE 及其衍生版);
  • 服务器的 主机密钥,NetBlade 会记住它。

通过 SSH 不会返回任何有关磁盘、用户或防护的信息。这是 NetBlade 通过该协议所询问内容的限制,而不是设备的限制,卡片上也会注明:“通过 SSH 读取。Linux 主机或设备只会返回其名称、内核和软件包,不包含磁盘、用户或防护信息。”

2. 创建一个普通帐户,不要 sudo

NetBlade 运行的每条命令读取的都是任何用户都能读取的文件和工具:hostname、/etc/os-release、uname、/proc/cpuinfo、nproc、/proc/meminfo,以及通过 dpkg-query 或 rpm -qa 获取的软件包列表。它从不使用 sudo,也从不需要 root。给它一个无法做更多事情的帐户即可。

在典型的 Linux 服务器上,以 root 身份或使用 sudo(通用 Linux 管理操作,请根据你的发行版调整):

sudo useradd -m -s /bin/bash netblade
sudo passwd netblade

不要将此用户加入 sudo、wheel 或任何管理组。

注意: NetBlade 通过 SSH 使用 密码 进行身份验证。不支持基于密钥的登录。如果你的服务器只接受密钥,就必须在 SSH 守护进程配置中为这一个帐户允许密码登录。请结合你的策略权衡这一点,使用一个长且唯一的密码,并按照你的标准对该帐户加以限制。

3. 存放 SSH 凭据

  1. 打开 凭据,点击 添加…。
  2. 将 协议 设置为 Linux / SSH。
  3. 输入用户和密码。
  4. 在 适用范围 中选择 一个站点;如果你的服务器位于用 保留此范围 保存的地址范围内,也可以选择 这些扫描范围。
  5. 为它添加标签,例如“A 办公室 - Linux 只读”,然后点击 存放。
  6. 在 要测试的计算机 中输入一台服务器的地址,然后点击 测试。上次测试 应显示“有效”。

SSH 凭据会在已发现端口 22 开放的地方(或尚不知道任何端口的地方)尝试,排在所有适用的 Windows 和 SNMP 凭据之后。

4. 读取服务器

  1. 打开 设备 并点击 深度清单,或打开某台服务器的卡片并点击 深度扫描。
  2. 读取状态显示“已于 … 通过 … 读取”。
  3. 软件 选项卡列出已安装的软件包及其版本。
  4. 清单 > 软件 现在会将这些软件包与 Windows 程序一起列出,因此“谁还在运行这个版本?”这个问题可以同时覆盖两者。

提示: 只有当 NetBlade 的词典能够识别软件包时,它们才会计入漏洞检查。在“软件”页面上,仅显示词典能识别的 会列出这些软件包。词典无法识别的程序在应用中的任何地方都不会得到漏洞判定:没有消息并不代表安全。

5. 理解主机密钥检查

NetBlade 首次连接服务器时,会记住服务器主机密钥的 SHA-256 指纹。之后每次连接时,如果密钥不同,NetBlade 会 在发送密码之前停止,并显示:

“主机密钥与此设备上次出示的不同。未发送任何内容:要么这台计算机已重装,要么有其他设备在它的地址上响应。”

这可以保护你的凭据,防止被一台占用了服务器地址的设备获取,无论它是误接入网络,还是被人故意放在那里。

看到这条消息时:

  1. 查明原因。服务器是否被重装、更换,或者它的地址被分配给了另一台计算机?
  2. 如果无法解释,请将其视为安全事件,而不是小故障。
  3. 如果变更是合法的,请清除旧的读取记录,以便接受新密钥。在此版本中,做法是删除该设备:在 设备 中点击 选择,勾选它,然后点击 删除。它会连同从中读取的所有内容及其历史记录一起离开目录,并在下次扫描时作为新设备重新出现。然后再次读取它。

6. 拥有自己命令行的设备

许多设备(防火墙、部分交换机、NAS 菜单)接受 SSH 登录,但返回的是它们自己的命令行界面,而不是 Linux shell。NetBlade 为每条命令都设置了超时,因此读取不会卡住,但返回的内容很少甚至没有。对于这类设备,SNMP 是更好的协议:请参阅 SNMP。

检查是否生效

  • 服务器的卡片显示“已于 … 通过 … 读取”,并显示系统、内核、处理器、核心数和内存。
  • 软件 选项卡列出软件包。
  • 在仪表板上,已读取的计算机 包含这些服务器。

如果出现问题

  • “SSH 拒绝了连接或凭据”。 用户或密码错误、帐户已锁定,或服务器不接受该帐户的密码登录。在终端中尝试同样的登录,看看是哪种情况。
  • 没有列出软件包。 NetBlade 只读取 dpkg 和 rpm。使用其他包管理器的发行版会返回系统详细信息,但没有软件包列表。
  • 服务器在 22 以外的端口上监听。 NetBlade 只连接端口 22。
  • 计划内重装后出现主机密钥消息。 这是预期行为。请按照第 5 步操作。
  • 没有任何磁盘或用户信息。 按设计,这些信息不会通过 SSH 读取。

下一步

PC、网络设备和服务器都已读取,接下来画出它们的连接方式:构建网络地图。

← 全部操作指南 功能指南 → 产品: NetBlade Windows →