用RPM校验文件

2016-01-29 19:15 2 1 收藏

用RPM校验文件,用RPM校验文件

【 tulaoshi.com - Linux 】

  有些事情对我们系统管理员来说至少发生过一次,就是你感觉到你的系统好像不对劲
,开始怀疑有人已经突破了你的防御。确定此事是否发生的途径之一就是检查系统文
件有没有变化,你需要安装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上,这能够保证你的工具自身是安全的

来源:https://www.tulaoshi.com/n/20160129/1508852.html

延伸阅读
标签: ASP
  在处理密码校验这种问题的时候我们一般需要检测用户输入的数据,以排除类似单引号、or等特殊字符和单词,这时使用正则表达式是一个非常有效的方法。不过今天在编制论坛的时候却忽然想到这样一种写法: IF password<repassword OR len(password)<len(repassword) Then 这同样是一种简单而有效的校验方法,这样我们只需要在密码生成...
关于数据校验 作者:king_koo 下载源代码 1.什么是数据校验 通俗的说,就是为保证数据的完整性,用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值,如果和随数据提供的校验值一样,就说明数据是完整的。 2.最简单的检验 实现方法:最简单的校验...
标签: 电脑入门
在录入身份证号码的时候,一不小心就可能出错。下面我们就讲讲如何利用ET的格式转换功能,校验身份证号码中的出生日期部分。 图1 如图1所示,A列为身份证号码(输入前请先将该列单元格格式统一设置成文本),B列为用公式从身份证号中提取出的出生日期,以B2为例,公式为: =TEXT(IF(LEN(A2)=15,"19",)&MID(A2,7,IF(LEN(A2)=1...
标签: 电脑入门
在Linux系统中,RPM包的制作是很困难的,其实使用工具就能快速制作RPM包,简单易学,下面图老师小编就给大家介绍下Linux使用FPM制作RPM包的方法,感兴趣的朋友可以来了解一下。 一、我们来先安装FPM: # FPM是Ruby模块 yum -y install ruby rubygems ruby-devel # 添加淘宝的Ruby仓库 gem sources -a http://ruby.taobao.org/ # 移...
DiskGenius恢复文件怎么用   一、首先需要在电脑中下载安装DiskGenius工具,这是一款免费的硬盘工具,可以直接在任何Windows系统中安装使用。此外很多启动U盘工具中也内置有此工具,如果有启用U盘的话,可以进行PE中使用DiskGenius工具。 二、打开DiskGenius工具,然后在左侧树状列表中,选择需要选中恢复的数据的盘符,可以...

经验教程

858

收藏

45
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部