如何对 Unix 系统进行指纹识别

如何对 Unix 系统进行指纹识别

我想对一些 Unix(大多数是 Debian)系统进行指纹识别。我所说的指纹识别是指运行一个收集材料标识符、系统版本等的脚本,以便能够:

  • 准确识别机器
  • 区分机器的硬件和软件修改

我知道 a 可以使用几个命令来跟踪元信息,例如udevuname等。

我的问题是:

  • 是否有执行此类操作的软件包
  • 如果不是,我必须收集什么才能准确地实现这一目标。

答案1

在 Debian 衍生系统上,硬件信息使用lshw, hwinfo, udevadm, hdparm, inxi(这个需要先安装)等。为了准确识别机器,您可以尝试使用系统序列号、供应商、型号、网络控制器的 MAC 地址、硬盘序列号等(您只能尝试因为有些机器是虚拟的...)有一个带有屏幕截图的教程http://www.binarytides.com/linux-commands-hardware-info/一般来说,谷歌并不缺乏建议。

您可能想要记录hostnameuname -alsb-release -cdr/etc/machine-id。也df可能会派上用场。

对于已安装的软件包,请使用 dpkg-query,例如,

dpkg-query --list | grep '^ii' | awk '{print $2 " " $3 " ("$4")"}

生成一个以以下开头的列表

a11y-profile-manager-indicator 0.1.10-0ubuntu3 (amd64)
account-plugin-facebook 0.12+16.04.20160126-0ubuntu1 (all)
account-plugin-flickr 0.12+16.04.20160126-0ubuntu1 (all)
account-plugin-google 0.12+16.04.20160126-0ubuntu1 (all)
accountsservice 0.6.40-2ubuntu11.3 (amd64)
acl 2.2.52-3 (amd64)
... etc. etc. ...

其他 Linux 变体有自己的收集系统信息的机制,例如 Red Hat Enterprise Linux 具有sosreport.

大多数(如果不是全部)专有 UNIX 系统都有专用工具来收集系统信息,包括硬件配置和安装的软件。例如,HP-UX 有一个很好的/opt/ignite/bin/print_manifest命令。

相关内容