新聞中心
rpm -qa 命令可以看到,linux 系統(tǒng)中裝有大量的 RPM 包,且每個(gè)包都含有大量的安裝文件。因此,為了能夠及時(shí)發(fā)現(xiàn)文件誤刪、誤修改文件數(shù)據(jù)、惡意篡改文件內(nèi)容等問題,Linux 提供了以下兩種監(jiān)控(檢測)方式: 
吉縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,吉縣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為吉縣1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的吉縣做網(wǎng)站的公司定做!
- RPM 包校驗(yàn):其實(shí)就是將已安裝文件和 /var/lib/rpm/ 目錄下的數(shù)據(jù)庫內(nèi)容進(jìn)行比較,確定文件內(nèi)容是否被修改。
- RPM 包數(shù)字證書校驗(yàn):用來校驗(yàn) RPM 包本身是否被修改。
Linux RPM 包校驗(yàn)
RPM 包校驗(yàn)可用來判斷已安裝的軟件包(或文件)是否被修改,此方式可使用的命令格式分為以下 3 種。
[root@localhost ~]# rpm -Va
-Va 選項(xiàng)表示校驗(yàn)系統(tǒng)中已安裝的所有軟件包。
[root@localhost ~]# rpm -V 已安裝的包名
-V 選項(xiàng)表示校驗(yàn)指定 RPM 包中的文件,是 verity 的首字母。
[root@localhost ~]# rpm -Vf 系統(tǒng)文件名
-Vf 選項(xiàng)表示校驗(yàn)?zāi)硞€(gè)系統(tǒng)文件是否被修改。
例如我們校驗(yàn) apache 軟件包中所有的安裝文件是否被修改,可執(zhí)行如下命令:
[root@localhost -]# rpm -V httpd
可以看到,執(zhí)行后無任何提示信息,表明所有用 apache 軟件包安裝的文件均未改動(dòng)過,還和從原軟件包安裝的文件一樣。
接下來嘗試對 apache 的配置文件 /etc/httpd/conf/httpd.conf 做適當(dāng)修改,修改格式如下:
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
...省略部分內(nèi)容...
Directorylndex index.html index.html.var index.php
#這句話是定義apache可以識別的默認(rèn)網(wǎng)頁文件名。在后面加入了index.php
#這句話大概有400行左右
…省略部分內(nèi)容...
由于我們還未學(xué)習(xí)如何配置 apache,為防止其崩潰,這里僅嘗試修改 apache 的默認(rèn)網(wǎng)頁文件。按照以上格式對文件進(jìn)行修改后保存退出,再次使用
rpm -V 命令對 apache 軟件包進(jìn)行驗(yàn)證:
[root@localhost ~]# rpm -V httpd
S.5....T. c /etc/httpd/conf/httpd.conf
可以看到,結(jié)果顯示了文件被修改的信息。該信息可分為以下 3 部分:
- 最前面的 8 個(gè)字符(S.5....T)都屬于驗(yàn)證信息,各字符的具體含義如下:
- S:文件大小是否改變。
- M:文件的類型或文件的權(quán)限(rwx)是否改變。
- 5:文件MD5校驗(yàn)和是否改變(可以看成文件內(nèi)容是否改變)。
- D:設(shè)備的主從代碼是否改變。
- L:文件路徑是否改變。
- U:文件的屬主(所有者)是否改變。
- G:文件的屬組是否改變。
- T:文件的修改時(shí)間是否改變。
- .:若相關(guān)項(xiàng)沒發(fā)生改變,用 . 表示。
- 被修改文件類型,大致可分為以下幾類:
- c:配置文件(configuration file)。
- d:普通文檔(documentation)。
- g:"鬼"文件(ghost file),很少見,就是該文件不應(yīng)該被這個(gè) RPM 包包含。
- l:授權(quán)文件(license file)。
- r:描述文件(read me)。
- 被修改文件所在絕對路徑(包含文件名)。
由此,S.5....T. c S.5....T. c /etc/httpd/conf/httpd.conf 表達(dá)的完整含義是:配置文件 httpd.conf 的大小、內(nèi)容、修改時(shí)間被人為修改過。
注意,并非所有對文件做修改的行為都是惡意的。通常情況下,對配置文件做修改是正常的,比如說配置 apache 就要修改其配置文件,而如果驗(yàn)證信息提示對二進(jìn)制文件做了修改,這就需要小心,除非是自己故意修改的。
Linux RPM數(shù)字證書驗(yàn)證
RPM 包校驗(yàn)方法只能用來校驗(yàn)已安裝的 RPM 包及其安裝文件,如果 RPM 包本身就被動(dòng)過手腳,此方法將無法解決問題,需要使用 RPM 數(shù)字證書驗(yàn)證方法。
簡單的理解,RPM 包校驗(yàn)其實(shí)就是將現(xiàn)有安裝文件與最初使用 RPM 包安裝時(shí)的初始文件進(jìn)行對比,如果有改動(dòng)則提示給用戶,因此這種方式無法驗(yàn)證 RPM 包本身被修改的情況。
數(shù)字證書,又稱
數(shù)字簽名,由軟件開發(fā)商直接發(fā)布。Linux 系統(tǒng)安裝數(shù)字證書后,若 RPM 包做了修改,此包攜帶的數(shù)字證書也會(huì)改變,將無法與系統(tǒng)成功匹配,軟件無法安裝。
可以將數(shù)字證書想象成自己的簽名,是不能被模仿的(廠商的數(shù)字證書是唯一的),只有我認(rèn)可的文件才會(huì)簽名(只要是廠商發(fā)布的軟件,都符合數(shù)字證書驗(yàn)證);如果我的文件被人修改了,那么我的簽名就會(huì)變得不同(如果軟件改變,數(shù)字證書就會(huì)改變,從而通不過驗(yàn)證。當(dāng)然,現(xiàn)實(shí)中人的手工簽名不會(huì)直接改變,所以數(shù)字證書比手工簽名還要可靠)。
使用數(shù)字證書驗(yàn)證 RPM 包的方法具有如下 2 個(gè)特點(diǎn):
- 必須找到原廠的公鑰文件,然后才能進(jìn)行安裝。
- 安裝 RPM 包會(huì)提取 RPM 包中的證書信息,然后和本機(jī)安裝的原廠證書進(jìn)行驗(yàn)證。如果驗(yàn)證通過,則允許安裝;如果驗(yàn)證不通過,則不允許安裝并發(fā)出警告。
數(shù)字證書默認(rèn)會(huì)放到系統(tǒng)中
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6位置處,通過以下命令也可驗(yàn)證:
#系統(tǒng)中的數(shù)字證書位置
[root@localhost ~]# ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
-rw-r--r--.1 root root 1706 6 月 26 17:29 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
安裝數(shù)字證書的命令如下:
[root@localhost ~]# rpm --import /efc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
--import表示導(dǎo)入數(shù)字證書
數(shù)字證書安裝完成后,可使用如下命令進(jìn)行驗(yàn)證:
[root@localhost ~]# rpm -qa|grep gpg-pubkey
gpg-pubkey-c105b9de-4e0fd3a3
可以看到,數(shù)字證書已成功安裝。在裝有數(shù)字證書的系統(tǒng)上安裝 RPM 包時(shí),系統(tǒng)會(huì)自動(dòng)驗(yàn)證包的數(shù)字證書,驗(yàn)證通過則可以安裝,反之將無法安裝(系統(tǒng)會(huì)報(bào)錯(cuò))。
數(shù)字證書本身也是一個(gè) RPM 包,因此可以用 rpm 命令查詢數(shù)字證書的詳細(xì)信息,也可以將其卸載。查詢數(shù)字證書詳細(xì)信息的命令如下:
[root@localhost ~]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3
#查詢數(shù)字證書包的詳細(xì)信息
Name : gpg-pubkey
Relocations: (not relocatable)
Version : c105b9de Vendor: (none)
Release : 4e0fd3a3 Build Date: 2012年11月12日 星期一 23時(shí)05分20秒
Install Date: 2012年11月12日星期一23時(shí)05分20秒 Build Host: local host
Group : Public Keys
Source RPM: (none)
Size : 0
License: pubkey
…省略部分輸出…
-----END PGP PUBLIC KEY BLOCK----
卸載數(shù)字證書可以使用 -e 選項(xiàng),命令如下:
[root@localhost ~]# rpm -e gpg-pubkey-c105b9de-4ead3a3
雖然數(shù)字證書可以手動(dòng)卸載,但不推薦大家將其卸載。
網(wǎng)站題目:LinuxRPM包驗(yàn)證和數(shù)字證書(數(shù)字簽名)
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/djdsdcs.html


咨詢
建站咨詢
