什么样的 Linux 可以像 debsums(Debian) 一样验证其所有文件/包,甚至更多?

什么样的 Linux 可以像 debsums(Debian) 一样验证其所有文件/包,甚至更多?
# debsums -a, --all  check configuration files (normally excluded)

然而,不仅在 tmp-dir 中,到处都有大量的临时辅助文件。

python的大约4000个二进制.pyc文件,默认情况下无法禁用:

# cat /etc/python/debian_config  
# standard, optimize 
byte-compile = standard

ETC...

是否有任何 Linux 发行版具有在线存储库,能够安全地验证我的计算机上安装的每个文件?

我说的是包管理器例如基于主机的入侵检测系统,具有现代加密技术,能够预防/检测任何感染。

答案1

基于 RPM 的系统有rpm -q --verify,它做类似的事情。

然而,我认为这些功能都不是 IDS 的合适替代品。关键问题是校验和位于有问题的机器上,因此如果它已被泄露,您就不能信任本地校验和。

也许您可以从互联网存储库中获取新的校验和,但我仍然认为您使用包校验和的方式是错误的。

更好的选择是使用专用的文件完整性检查器,例如助手或者绊线。一旦系统进入已知良好状态,这些工具就可以让您计算系统的校验和,然后将它们存储在可移动只读介质(例如 CD-R)上以供以后比较。

包校验和方法的另一个问题是它不能检查/etc文件之类的东西,因为众所周知它们会故意更改库存内容。使用 AIDE 之类的工具,您可以计算校验和您对这些文件的库存版本进行更改,因此您可以自信地说更改是否是预期的。

这并不是说包校验和验证没有用。只是它并不是为了检测恶意修改。它用于检测意外更改,以便修复它们。例如,某人可能做了一个笨手笨脚的chmod -R命令,然后Ctrl-C在意识到自己的错误后很长时间才运行,因此您验证包以找出哪些包的文件权限被破坏。

答案2

我更喜欢 Warren 的解决方案 (AIDE),但如果您真的想监视您的系统,请使用 CFEngine 或衍生产品(Puppet、Chef、saltstack 等)来管理文件系统的全部内容。使用包管理器来安装文件,使用配置管理系统来管理所有配置文件的内容,并在配置系统之外发生任何更改时发出警报(以及可能将内容更改回来)。不过,你走得越深入,解决方案就越复杂。完全管理系统及其上的所有文件是一项非常艰巨的任务。如果您不关心文件内容而只是在事情发生变化时收到通知,CFEngine 可以学习文件的校验和并为您监视它们。其他人可能有类似的功能,但速度会慢一些。我可以告诉你,你真的不想用 Puppet 进行频繁的递归文件系统监控。话又说回来,不同工具的学习曲线是不同的。 AIDE 很容易上手,CFEngine 可能是一个小挑战。

相关内容