分享
 
 
 

用RPM校验文件

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

有些事情对我们系统管理员来说至少发生过一次,就是你感觉到你的系统好像不对劲

,开始怀疑有人已经突破了你的防御。确定此事是否发生的途径之一就是检查系统文

件有没有变化,你需要安装TripWire或者其他审计工具来帮忙。

幸运的是,Red Hat的程序员们开发了一个工具,叫作Red Hat Package Manager,简

称为RPM。在Red Hat的Linux系统中是默认存在的。

RPM能为我做些什么?

RPM是一个强大的工具,用来安装、升级和校验Red Hat系统上的软件包。它的校验功能可以用来确认文件是否被修改或覆盖,这正是本文所要讨论的。除了文件的大小和时间戳,RPM还能检查文件的信息文摘或MD5签名。

在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是否变化,入侵者经常修改或覆盖某些文件来隐藏他们的踪迹。

挨个检查软件包很费时间,用“-a”选项可以一次性检查所有RPM包:

rpm -Va > /root/rpm_chk.txt &

这条命令让RPM检查服务器上安装的RPM包,结果输出到rpm_chk.txt文件,最后的可选项“&”表示命令在后台运行,给出shell提示符可以作其他事情。

最后一个技巧,当你想要检查某个文件而不知道它属于哪个RPM包,可以用“-qf”选

项查看哪个软件包安装了此文件:

[root@fubar /root]# rpm -qf /usr/sbin/sendmail

sendmail-8.8.7-20

[root@fubar /root]#

这表明此sendmail文件是sendmail-8.8.7-20 RPM包的一部分。如果一个文件没有关联

的RPM包,输出大概是这样的:

[root@fubar /root]# rpm -qf /sbin/.vile_stuff

file /sbin/.vile_stuff is not owned by any package

[root@fubar /root]#

小心你系统上运行的不能被校验的程序!

如何开始?

首先,你必须有root权限来运行RPM。当以普通用户身份来运行RPM校验时,它的输出信息是不正确的,因为普通用户对某些文件可能都没有read权限。这意味着只有root才能检查整个系统文件的完整性。

RPM二进制文件在/bin目录下,它的数据库文件在/var/lib/rpm下。

最安全的方法是在服务器连到Internet之前,把这些数据文件和RPM二进制文件保存到

软盘或CD上,这能够保证你的工具自身是安全的。

第一件事是检查/var/lib/rpm,这些数据文件的日期和时间应该和安装系统当时的情

况一样,如果你发现日期不对,就要小心了。

其次,我们可以使用RPM来校验自身的完整性:

[root@fubar /root]# rpm -V rpm

[root@fubar /root]#

没有输出表示RPM应该没有什么问题。但这不是绝对的,因为二进制文件如果本身可疑就很难说。所以要尽可能使用CD上的工具,如果你没有比较安全的工具,用RPM校验自身在一般情况下也足够了。

现在我们知道RPM自身没有问题了,对整个系统作个检查:

rpm -Va > /root/rpm_chk.txt &

一个简单的技巧就是定期检查整个系统,然后比较不同时期的rpm_chk.txt,从而发现

哪些不正常的文件改动。

总结

尽管RPM不是专门设计用来审计文件的,但它可以帮你不少忙。目前Red Hat Linux各

个版本中都默认自带RPM,这意味着你完成Red Hat Linux安装以后,就可以使用RPM了,同时MD5提供了一种高精确度的文件校验方法。唯一注意的是要保证RPM自身和它所有数据文件的完整性,以防止入侵者修改它们来隐藏踪迹。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有