有一种方法可以根据原始RPM内容validation与特定软件包相关的文件:
# Verify `vsftpd` package. rpm -V vsftpd
如何完成链并validationrpm命令本身没有改变?
如果我用始终成功的脚本replacerpm ,这种validation将永远不会失败。
如果你将自己限制在你想要validation的单一系统上,这将是一个相当困难的问题。
幸运的是,我们生活在现实世界中,那里有一台以上的电脑!
validation二进制文件的一些可能性包括:
使用安装了RPM包装版本的另一个参考系统,对二进制文件进行散列并在每个系统上进行比较。
为了增加保证,请在比较之前从参考系统的存储库中重新安装已签名的软件包。
例:
# yum reinstall rpm ... Complete! # rpm -q rpm rpm-4.11.3-17.el7.x86_64 # sha256sum /usr/bin/rpm 743810f3c3a9e5eea8ba9bc87351db6b4e8c6393018b9bb56beb873a64ae5431 /usr/bin/rpm
使用基于主机的入侵检测系统(如OSSEC或Tripwire)来检测文件系统的意外更改。 当然,这并不能保证你的二进制文件不会被改变,但是如果正确的话可以给你警告攻击正在进行。
请注意,如果正在使用预链接,则这两项都会失败,这是为什么在最近的系统中通常不会默认启用它的原因之一。
# rpm -K rpm-2.3-1.i386.rpm rpm-2.3-1.i386.rpm: size pgp md5 OK
从http://www.rpm.org/max-rpm/s1-rpm-checksig-using-rpm-k.html