用rpm校验文件:
在RFC
1321中有MD5的详细描述。简单的说,MD5根据文件的内容用算法产生一个唯一的128位签名,用任何方法改变文件都会导致签名改变。尽
管人们一直在讨论修改文件后能保持签名不变的理论可能性,但截止到目前还没有人能够做到。所以在文件使用前后各作一次MD5检查,能够
99.9999%的保证 文件没有改变。
如何使用RPM来检查文件?
有一些RPM的参数你需要注意。第一个是“-V”,它检查与某一RPM包相关所有文件的
完整性。语法为:
rpm -V package_name_to_verify
比如系统上运行了sendmail,通过以下命令检查所有相关文件的完整性:
rpm -V sendmail
输出看来是这样的:
[root@fubar /root]# rpm -V sendmail
S.5....T c /etc/aliases
missing /etc/mail/ip_allow
S.5....T c /etc/mail/relay_allow
S.5....T c /etc/sendmail.cf
S.5....T c /etc/sendmail.cw
S.5....T /usr/sbin/sendmail
S.5....T /var/log/sendmail.st
[root@fubar /root]#
只有校验失败的文件才被列出,没有列出的文件应该是完好无损的。左边给出了为什
么校验失败的原因,具体解释如下:
S = 大小改变
M = 权限改变
5 = MD5改变
L = 连接改变
D = 设备改变
U = 用户改变
G = 组改变
T = 日期和时间改变
missing = 文件丢失
从上面的输出可见,文件aliases, relay_allow, sendmail.cf 和
sendmail.cw的大小、时间日期和MD5发生了改变。由于它们是配置文件,应该没什么关系。但是/usr/bin/sendmail的改变就要引
起注意了,它是一个监听在25端口的可执行文件,用来接受信件。除非你升级了sendmail,否则它不应该校验失败,很明显有人修改或者覆盖了原来的
sendmail文件,可能带有木马或者后门。输出还显示ip_allow文件被删除或者被改名。这是用来检查和控制SPAM的一个文件,它的丢失某种程
度上表明相关的二进制文件可能被修改。当观察RPM输出的时候,在检查日期时间和文件大小的同时,要特别注意MD5是否变化,入侵者经常修改或覆盖某些文
件来隐藏他们的踪迹。