“ 目录:RHCA+ -> 6 软件仓库 -> 23 RPM包验证和数字证书 ”
为发现误删或恶意篡改文件内容时使用
一、RPM包校验
将已安装文件和/var/lib/rpm/目录下的数据库内容进行比较,判断已安装的软件包(或文件)是否被修改;语法格式为:rpm 参数 对象
对配置文件修改一般是配置时操作的;而二进制相关文件一般不会改,所以要格外注意
参数 | 作用 |
-V 已安装的包名 | 校验指定 RPM 包中的文件,verity的首字母 |
-f 系统文件名 | 校验某个系统文件是否被修改 |
[root@wuzuniao ~]# rpm -V time #执行后无任何信息,表示和原文件一样,未被改动过
[root@wuzuniao ~]# rpm -V time #手动修改后重新查询,已列出修改后的文件信息
S.5....T. d /usr/share/doc/time-1.7/README #说明文件README的大小、内容、修改时间被人为修改过
1、前面8个字符(S.5....T)属于验证信息,含义如下:
S:文件大小是否改变
M:文件的类型或文件的权限(rwx)是否改变
5:文件MD5校验和是否改变(可以看成文件内容是否改变)
D:设备的主从代码是否改变
L:文件路径是否改变
U:文件的属主(所有者)是否改变
G:文件的属组是否改变
T:文件的修改时间是否改变
.:若相关项没发生改变,用 . 表示
2、被修改文件类型,含义如下:
c:配置文件(configuration file)
d:普通文档(documentation)
g:"鬼"文件(ghost file),很少见,该文件不应该被RPM包包含
l:授权文件(license file)
r:描述文件(read me)
?:不可读文件
3、被修改文件所在绝对路径(包含文件名)
[root@wuzuniao ~]#
二、RPM包数字证书校验
校验RPM包本身是否被修改
数字证书默认放在/etc/pki/rpm-gpg/目录,本身也是一个RPM包
数字证书,又称数字签名,由软件开发商直接发布。系统安装数字证书后,若RPM包被修改,包的数字证书也会改变,将导致校验不过无法安装
1、必须要原厂的公钥文件,然后才能本机安装
2、安装RPM包会提取包中的证书信息和本机安装的原厂证书进行验证。验证通过,则允许安装;验证不通过,则不允许安装并发出警告
参数 | 作用 |
--import | 导入数字证书,密钥文件 |
-K | 验证签名,判断来源是否合法、完整性 dsa,gpg:验证来源合法性,也即验证签名;可使用--nosignature跳过 sha1,md5:验证软件包完整性;可使用--nodigest跳过 |
1、导入签名
[root@wuzuniao ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta #安装数字证书
[root@wuzuniao ~]# rpm -qa | grep gpg-pubkey #验证已安装的数字证书
gpg-pubkey-897da07a-3c979a7f
gpg-pubkey-f21541eb-4a5233e7
[root@wuzuniao ~]# rpm -qi gpg-pubkey-f21541eb-4a5233e7 #查询数字证书包的详细信息
Name : gpg-pubkey
Version : f21541eb
Release : 4a5233e7
Architecture: (none)
Install Date: Sun 02 Apr 2023 09:04:16 PM CST
Group : Public Keys
Size : 0
License : pubkey
Signature : (none)
Source RPM : (none)
Build Date : Tue 07 Jul 2009 01:27:03 AM CST
Build Host : localhost
Relocations : (not relocatable)
Packager : Red Hat, Inc. (beta key 2) security@redhat.com
Summary : gpg(Red Hat, Inc. (beta key 2) security@redhat.com)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.11.1 (NSS-3)
mQINBEmkAzABEAC2/c7bP1lHQ3XScxbIk0LQWe1YOiibQBRLwf8Si5PktgtuPibT
kKpZjw8p4D+fM7jD1WUzUE0X7tXg2l/eUlMM4dw6XJAQ1AmEOtlwSg7rrMtTvM0A
BEtI7Km6fC6sU6RtBMdcqD1cH/6dbsfh8muznVA7UlX+PRBHVzdWzj6y8h84dBjo
gzcbYu9Hezqgj/lLzicqsSZPz9UdXiRTRAIhp8V30BD8uRaaa0KDDnD6IzJv3D9P
xQWbFM4Z12GN9LyeZqmD7bpKzZmXG/3drvfXVisXaXp3M07t3NlBa3Dt8NFIKZ0D
FRXBz5bvzxRVmdH6DtkDWXDPOt+Wdm1rZrCOrySFpBZQRpHw12eo1M1lirANIov7
Z+V1Qh/aBxj5EUu32u9ZpjAPPNtQF6F/KjaoHHHmEQAuj4DLex4LY646Hv1rcv2i
QFuCdvLKQGSiFBrfZH0j/IX3/0JXQlZzb3MuMFPxLXGAoAV9UP/Sw/WTmAuTzFVm
G13UYFeMwrToOiqcX2VcK0aC1FCcTP2z4JW3PsWvU8rUDRUYfoXovc7eg4Vn5wHt
0NBYsNhYiAAf320AUIHzQZYi38JgVwuJfFu43tJZE4Vig++RQq6tsEx9Ftz3EwRR
fJ9z9mEvEiieZm+vbOvMvIuimFVPSCmLH+bI649K8eZlVRWsx3EXCVb0nQARAQAB
tDBSZWQgSGF0LCBJbmMuIChiZXRhIGtleSAyKSA8c2VjdXJpdHlAcmVkaGF0LmNv
bT6JAjYEEwECACAFAkpSM+cCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCT
ioDK8hVB6/9tEAC0+KmzeKceXQ/GTUoU6jy9vtkFCFrmv+c7ol4XpdTt0QhqBOwy
6m2mKWwmm8KfYfy0cADQ4y/EcoXl7FtFBwYmkCuEQGXhTDn9DvVjhooIq59LEMBQ
OW879RwwzRIZ8ebbjMUjDPF5MfPQqP2LBu9N4KvXlZp4voykwuuaJ+cbsKZR6pZ6
0RQKPHKP+NgUFC0fff7XY9cuOZZWFAeKRhLN2K7bnRHKxp+kELWb6R9ZfrYwZjWc
MIPbTd1khE53L4NTfpWfAnJRtkPSDOKEGVlVLtLq4HEAxQt07kbslqISRWyXER3u
QOJj64D1ZiIMz6t6uZ424VE4ry9rBR0Jz55cMMx5O/ni9x3xzFUgH8Su2yM0r3jE
Rf24+tbOaPf7tebyx4OKe+JW95hNVstWUDyGbs6K9qGfI/pICuO1nMMFTo6GqzQ6
DwLZvJ9QdXo7ujEtySZnfu42aycaQ9ZLC2DOCQCUBY350Hx6FLW3O546TAvpTfk0
B6x+DV7mJQH7MGmRXQsE7TLBJKjq28Cn4tVp04PmybQyTxZdGA/8zY6pPl6xyVMH
V68hSBKEVT/rlouOHuxfdmZva1DhVvUC6Xj7+iTMTVJUAq/4Uyn31P1OJmA2a0PT
CAqWkbJSgKFccsjPoTbLyxhuMSNkEZFHvlZrSK9vnPzmfiRH0Orx3wYpMQ==
=21pb
-----END PGP PUBLIC KEY BLOCK-----
[root@wuzuniao ~]# rpm -e gpg-pubkey-f21541eb-4a5233e7 #卸载数字证书,不推荐手动卸载
[root@wuzuniao ~]# rpm -qa | grep gpg-pubkey #再次查看数字证书已经少了个
gpg-pubkey-897da07a-3c979a7f
[root@wuzuniao ~]#
2、验证合法性
[root@wuzuniao ~]# rpm -K /media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm #验证签名,判断来源是否合法、完整性
/media/cdrom/Packages/httpd-2.4.6-17.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fd431d51)
[root@wuzuniao ~]# rpm -K /media/cdrom/Packages/httpcomponents-core-4.2.4-6.el7.noarch.rpm --nosignature #不验证签名,只验证软件包完整性
/media/cdrom/Packages/httpcomponents-core-4.2.4-6.el7.noarch.rpm: sha1 md5 OK
[root@wuzuniao ~]#