Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1351489
  • 博文数量: 245
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3094
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-12 14:51
文章存档

2011年(2)

2009年(152)

2008年(91)

我的朋友

分类: LINUX

2009-02-11 15:53:24

  RPM 验证与数位签章
  验证的功能主要在于提供系统管理员一个有用的管理机制!作用的方式是‘ 使用 /var/lib/rpm 底下的资料库内容来比对目前 Linux 系统的环境下的所有套件档案 ’也就是说,当您有资料不小心遗失, 或者是因为您误杀了某个套件的档案,或者是不小心不知道修改到某一个套件的档案内容, 就用这个简单的方法来验证一下原本的档案系统吧! 好让您瞭解这一阵子到底是修改到哪些档案资料了!验证的方式很简单:

  [root@linux ~]# rpm -Va
  [root@linux ~]# rpm -V  已安装的套件名称
  [root@linux ~]# rpm -Vp 某个 RPM 档案的档名
  [root@linux ~]# rpm -Vf 在系统上面的某个档案
  参数:
  -V  :后面加的是套件名称,若该套件所含的档案被更动过,才会列出来;
  -Va :列出目前系统上面所有可能被更动过的档案;
  -Vp :后面加的是档案名称,列出该套件内可能被更动过的档案;
  -Vf :列出某个档案是否被更动过~
  范例:

  范例一:列出你的 Linux 内的 logrotate 这个套件是否被更动过?
  [root@linux ~]# rpm -V logrotate
  # 如果没有出现任何讯息,恭喜你,该套件没有被更动过。
  # 如果有出现任何讯息,才是有出现状况啊!

  范例二:查询一下,你的 /etc/crontab 是否有被更动过?
  [root@linux ~]# rpm -Vf /etc/crontab
  S.5....T  c /etc/crontab
  # 瞧!因为有被更动过,所以会列出被更动过的资讯!

  好了,那么我怎么知道到底我的档案被更动过的内容是什么?呵呵!简单的说明一下吧! 例如,我们检查一下 logrotate 这个套件:

  [root@linux ~]# rpm -ql logrotate
  /etc/cron.daily/logrotate
  /etc/logrotate.conf
  /etc/logrotate.d
  /usr/sbin/logrotate
  /usr/share/doc/logrotate-3.7.1
  /usr/share/doc/logrotate-3.7.1/CHANGES
  /usr/share/man/man8/logrotate.8.gz
  /var/lib/logrotate.status
  # 呵呵!共有八个档案啊!

  [root@linux ~]# rpm -V logrotate
  ..5....T c /etc/logrotate.conf
  # 上面的资讯是这样的:
  S :file Size differs
  档案的容量大小是否被改变
  M :Mode differs (includes permissions and file type)
  档案的类型或档案的属性,如是否可执行等参数已被改变
  5 :MD5 sum differs
  MD5 这一种加密防骇的属性已被改变
  D :Device major/minor number mis-match
  装置名称已被改变
  L :readLink(2) path mis-match
  Link 属性已被改变
  U :User ownership differs
  档案的所属人已被改变
  G :Group ownership differs
  档案的所属群组已被改变
  T :mTime differs
  档案的建立时间已被改变

  所以,如果当一个档案所有的资讯都被更动过,那么他的显示就会是:

  SM5DLUGT c filename

  至于那个 c 代表的是‘ Config file ’的意思,也就是档案的类型,档案类型有底下这几类:

  * c :设定档(config file)
  * d :文件资料档(documentation)
  * g :鬼档案~通常是该档案不被某个套件所包含,较少发生!(ghost file)
  * l :授权档案(license file)
  * r :读我档案(read me)

  经过验证的功能,您就可以知道那个档案被更动过。那么如果该档案的变更是‘预期中的’, 那么就没有什么大问题,但是如果该档案是‘非预期的’,那么是否被入侵了呢?呵呵! 得注意注意啰!

  再来,由于数位签证的盛行,我们 Linux 的 RPM 也可以利用数位签证来判断待安装的套件档案是否有问题喔!一般我们使用的是 GPG 的金钥( public key )。应用的方法很简单,首先, 当我们想要使用某个团体释出的套件时,就需要将他们释出的 GPG 金钥先安装在自己的 Linux 系统上。然后,当安装该团体释出的套件时,就会检查两者的 key 是否相同,如果相同就直接安装,如果不同就会在萤幕上面显示讯息告知您并未安装该团体的 GPG 金钥!

  安装金钥的方法很简单,例如 Red Hat 本身就有金钥在系统当中,安装如下:

  [root@linux ~]# rpm --import /usr/share/rhn/RPM-GPG-KEY

  一般来说,您的 Linux distributions 都会释出自己的 GPG Key 的,如果是 Red Hat 系统的话, 可以使用:

  [root@linux ~]# locate GPG-KEY

  来进行搜寻档案的工作,至于这些金钥的内容,我们可以这样查询喔:

  [root@linux ~]# rpm -qa | grep gpg
  libgpg-error-1.0-2
  gpg-pubkey-4f2a6fd2-3f9d9d3b
  [root@linux ~]# rpm -qi gpg-pubkey-4f2a6fd2-3f9d9d3b
  Name        : gpg-pubkey               Relocations: (not relocatable)
  Version     : 4f2a6fd2                      Vendor: (none)
  Release     : 3f9d9d3b                  Build Date: Sat Jun 25 22:13:00 2005
  Install Date: Sat Jun 25 22:13:00 2005  Build Host: localhost
  Group       : Public Keys               Source RPM: (none)
  Size        : 0                            License: pubkey
  Signature   : (none)
  Summary     : gpg(Fedora Project )
  Description :
  -----BEGIN PGP PUBLIC KEY BLOCK-----
  Version: rpm-4.4.1 (beecrypt-3.0.0)

  mQGiBD+dnTsRBACwnlz4AhctOLlVBAsq+RaU82nb5P3bD1YJJpsAce1Ckd2sBUOJD11NUCqH
  .....中间省略.....
  =mJAx
  -----END PGP PUBLIC KEY BLOCK-----

  这样就能看到相关的资讯啰! ^_^

阅读(1961) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~