免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 715 | 回复: 0
打印 上一主题 下一主题

rpm应用小技巧(摘录) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-01 22:47 |只看该作者 |倒序浏览
rpm小技巧:
 1)安装rpm包时显示进度:用-vh参数,如rpm -ivh ipchains-1.3.6-1.i386.rpm,用glint或xrpm则不必。

  2)直接通过ftp来安装rpm包:如rpm -i
ftp://ftp.xxx.xxx

  3)校验所有的rpm包,查找丢失的文件:rpm -Va

  4)查找一个文件属于哪个rpm包:例如:rpm -qf /usr/bin/who

  5)列出一个rpm包的描述信息:例如:rpm -qpi mon-0.37j-1.i386.rpm

  6)列出一个rpm包的文件信息:例如:rpm -qpl mon-0.37j-1.i386.rpm
用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是否变化,入侵者经常修改或覆盖某些文件来隐藏他们的踪迹。

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

  rpm -Va > /root/rpm_chk.txt &

  这条命令让RPM检查服务器上安装的RPM包,结果输出到rpm_chk.txt文件,最后的可选项“&”表示??钤诤筇ㄔ诵校??鰏hell提示符可以作其他事情。

  最后一个技巧,当你想要检查某个文件而不知道它属于哪个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自身和它所有数据文件的完整性,以防止入侵者修改它们来隐藏踪迹。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84024/showart_1356933.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP