Tips
虽说家丑不可外扬,不过有件事情还是跟大家分享一下的好。鸟哥之前的主机曾经由
于安装一套软件,导致被攻击成为跳板。
会发现的原因是系统中只要出现
*.patch
的扩展名时,使用
ls -l
就是显
示不出来该文件名
(
该档名确实存在
)
找了好久,用了好多工具都找不出问题,最终利用
rpm -Va
找出来,原来
好多
binary program
被更动过,连
init
都被恶搞!此时,赶½重新安装
Linux
并移除那套软件,之后就比½正常
了。所以说,这个
rpm -Va
是个好功能喔!
.
数字签名
(digital signature)
谈完了软件的验证后,不知道你有没有发现一个问题,那就是,验证只能验证软件内的信息与
/var/lib/rpm/
里面的数据库信息而已,如果该软件文件所提供的数据本身就有问题,那你使用验证的
手段也无法确定该软件的正确性啊!
那如何½决呢?在
Tarball
与文件的验证方面,我们可以使用
前一章谈到的
md5
指纹码来检查,
不过,连指纹码也可能会被窜改的嘛!那怎办?没关系,我们
可以透过数字签名来检验软件的来源的!
就像你自己的签名一样,我们的软件开发商原厂所推出的软件也会有一个厂商自己的签章系统!
是这个签章被数字化了而已。厂商可以数字签名系统产生一个专属于该软件的签章,并½该签章的公
(public key)
释出。
当你要安装一个
RPM
文件时:
1.
首先你必须要先安装原厂释出的公钥文件;
2.
实际安装原厂的
RPM
软件时,
rpm
指令会去读取
RPM
文件的签章信息,与本机系统内的签章信息比对,
3.
若签章相同则予以安装,若找不到相关的签章信息时,则给予警告并且停止安装喔。
我们
CentOS
使用的数字签名系统为
GNU
计划的
GnuPG (GNU Privacy Guard, GPG)(
1
)
GPG
可以透过哈希运算,算出独一无二的专属密钥系统或者是数字签名系统,有兴趣的朋友可以参考文末
的延伸阅读,
去了½一下
GPG
加密的机制喔!这里我们½简单的说明数字签名在
RPM
文件上的
应用而已。
而根据上面的说明,我们也会知道首先必须要安装原厂释出的
GPG
数字签名的公钥文
件啊!
CentOS
的数字签名位于:
[root@study ~]#
ll /etc/pki/rpm
-
gpg/RPM
-
GPG
-
KEY
-
CentOS
-
7
-
rw
-
r
--
r
--
. 1 root root 1690 Apr
1 06:27 /etc/pki/rpm
-
gpg/RPM
-
GPG
-
KEY
-
CentOS
-
7
[root@study ~]#
cat /etc/pki/rpm
-
gpg/RPM
-
GPG
-
KEY
-
CentOS
-
7
-----
BEGIN PGP PUBLIC KEY BLOCK
-----
Version: GnuPG v1.4.5 (GNU/Linux)
mQINBFOn/0sBEADLDyZ+DQHkcTHDQSE0a0B2iYAEXwpPvs67cJ4tmhe/iMOyVMh9
....(
省略
)....
-----
END PGP PUBLIC KEY BLOCK
-----
从上面的输出,你会知道该数字签名码其实½是一个随机数而已,这个随机数对于数字签名有意义而
已,
我们看不懂啦!那么这个文件如何安装呢?透过底下的方式来安装即可喔!