Rpm另類用法加固Linux安全

2021-06-22 03:04:28 字數 4378 閱讀 2969

rpm另類用法加固linux安全

rpm是

red hat package manager

的縮寫即

red hat

軟體管理器。它是乙個開放的包管理軟體,由

red hat

公司所開發和維護,可以在

red hat linux

及其他的

linux

上執行。用於管理

rpm軟體包的主要工具是

rpm命令,它有六個基本的功能:安裝、解除安裝、公升級、更新、查詢和校驗軟體包。此外,它還有鮮為人知的功能—安全維護。本文介紹如何使用

rpm來進行安全維護。

1.檢查系統公鑰

在rpm

軟體包安裝前,

rpm命令通過檢查軟體包簽名可以保證軟體沒有被篡改和破壞。現在無論發行版、

yum或

apt等軟體庫都帶有

gpg公有金鑰

(下文簡稱公鑰

)簽名,它們儲存在

/usr/share/doc/fedora-release-4

目錄下,主要包括

rpm-gpg-key

、rpm-gpg-key-beta

和rpm-gpg-key-fedora-extras

等。使用如下命令來檢測系統公鑰:

[root@localhost ~]#rpm -qagpg-pubkey*

gpg-pubkey-a109blec

-3f6e28d5

gpg-pubkey

-66534c

2b-41d57eae

gpg-pubkey

-1ac

70ce6-41bebeef

gpg-pubkey

-9a2a

932b-4192dfad

gpg-pubkey-a109b1ec

-3f6e28d5

gpg-pubkey-e42d547b-3960bdf1

gpg-pubkey

-66534c

2b-41d57eae

gpg-pubkey-e42d547b-3960bdf1

pgp-pubkey-1aa78495-3eb24301

pgp-pubkey

-4f2a

6fd2

-3f9d9d3b0

其中「gpg-pubkey-a109b1ec-3f6e28d5

」代表fedoracore

公鑰,如果想知道詳細的資料,則可以輸入以下命令

[roat@localhost~]# rpm-qi gpg-pubkey-a109b1ec-3f6e28d5 | less

從輸出的結果可看出,金鑰的名稱分為版本號和發行號兩種數字,本金鑰適用於

livna.org rpms

的gpg

。如果希望安裝新的或公升級

prm軟體包時,自動檢查金鑰,如果不比配就會停止程式的繼續進行

2 .匯入和刪除gpg金鑰1.1

).匯入官方金鑰

#rpm –import rpm-gpg-key-fedora

.匯入軟體倉金鑰

#rpm –import

.刪除金鑰

#rpm -e gpg-pubkey-a109b1ec

-3f6e28d5

軟體安裝前,檢查簽名的正確性:

[root@localhost ~]#cd /root/downfile

[root@localhost downfile]# rpm --checksig yumex-0.42-5.0.fc4.noarch.rpmyumex-0.42-5.0.fc4.noarch.rpm:(shal)dsa shal md5 gpg ok

3.檢測軟體完整性

以上結果全部通過後,就可以安心地安裝這個軟體了。如果缺少金鑰

dsa、

sha1

和gpg

及prm

檔案遭到破壞就全部以大寫出現;

rpm檔案內容被修改則

md5、

gpg顯示為

bad。

軟體安裝後,可以使用

rpm命令辨別是否有人進行過修改,下面介紹具體的步驟:

[root@locahost ~]#rpm –v sendmail

..?...... c /etc/mail/domaintable

..?...... c /etc/mail/mailertable

.......t. c /etc/mail/sendmail.cf

..?...... c /etc/mail/virtusertable

s.5....t. c /var/log/mail/statistics

上面輸出結果的右側列出與原始狀態不匹配的檔案,左側現實儲存系統屬性出現的錯誤。其中,「

.」點表示通過測試,

「?」表示因為某些原因計算不出檔案的

md5sum

;「s」

表示檔案大小已經變更;

「t」代表時間已經變更,

5」代表

md5sum

已經變更。此外,

rpm命令還可以檢查單個檔案的完整性

(已啟動指令碼為例)。

首先使用如下命令檢查檔案的**

:[root@localhost ~]# rpm -qf /etc/rc.d/init.d/sendmail

sendmail-

8.13.4

-2然後再使用下列命令列出軟體包含的檔案儲存資訊:

[root@localhost ~]#rpm –ql --dump sendmail|grep /etc/rc.d/init.d/sendmail

/etc/rc.d/init.d/sendmail 334811153829111d213325d3ce95952cf

87f4a

05d8a

488 01100755 root root 1 0 0 x

由上得到以下有用的儲存資訊:

檔案中最初的字元數

(3348)

;sendmail

檔案內容的

md5sum(1d213325d3ce95952cf

87f4a

05d8a

488);

與該檔案關聯的許可權

檔案的所有者

(root)

最後,檢查實際檔案內容是否被修改:

[root@localhost ~]# ls –l /etc/rc.d/init.d/sendmail

-rwxr-xr-x 1 root root 3348 3

月6 20

:35 /etc/rc.d/init.d/sendmail

[root@localhost ~]# md5sum /etc/rc.d/init.d/sendmail

1d213325d3ce95952cf

87f4a

05d8a

488 /rtc/rc.d/init.d/sendmail

這裡顯示的資訊與上步的輸出資訊相同,啟動指令碼與原始指令碼相匹配。

sendmail

軟體報的檔案大小、

md5sum

和時間都被變更,這是正常的,而且啟動指令碼沒有變更,這個如果變更就會影響軟體正常執行。所以,這個軟體包的

rpm資料庫處在安全狀態。

4.修復被破壞的rpm資料庫

如果rpm

資料庫被破壞,在軟體安裝、刪除等會長期無響應,有事重啟系統會自動修復,如果不能修復,可以參考一下的方法。

首先,使用如下命令殺出當前的

rpm資料庫

#rm -f /var/lib/rpm/_db.*

然後,使用下列命令重建資料庫:

#rpm –vv -rebuilddb

5.檢查系統的安全性

如果系統遭到入侵或被攻擊,一些重要檔案必須被修改,主要包括含有字串

/bin

和/sbin

的檔案。可以通過一下命令進行檢查:

[root@localhost ~]# rpm -va|grep 『bin\/』

如果輸出結果顯示多個儲存屬性發生變化,就表明系統曾被攻擊過。較好解決辦法是斷開網路,備份重要檔案重新安裝系統。

rpm命令可以保證軟體包安裝前後的完整性,並且可以跟蹤軟體裡檔案被修改的儲存資訊,從而及時發現系統被入侵的情況。但聰明的入侵者是會先破壞

rpm架構,讓其失去成為安全防護工具的意義。為了系統更加安全,大家應該及時備份系統的

rpm資料庫。

Linux下RPM 命令用法

一 rpm介紹 1.什麼是rpm rpm 即redhat package management,是redhat的發明之一 2.為什麼需要rpm 在乙個作業系統下,需要安裝實現各種功能的軟體包。這些軟體包一般都有各自的程式,但是同時也有錯綜複雜的依賴關係。同時還需要 解決軟體包的版本,以及安裝,配置,...

Linux中rpm命令用法

rpm ivh 軟體包名 安裝軟體包並顯示安裝進度。這個是用得最多的了。查詢已經安裝哪些軟體包。rpm q 軟體包名 查詢指定軟體包是否已經安裝。rpm uvh 軟體包名 公升級乙個軟體包。rpm e 軟體包名 刪除指定軟體包。end以 src.rpm結尾的檔案由軟體源 檔案組成,要安裝此種 rpm...

Linux下which指令的另類用法

最近在實現乙個linux下程式的時候,需要程式可以呼叫linux系統下面指定的應用程式。如果這是windows程式,那麼可以通過regopenkey和regopenkey讀取登錄檔找到指定程式的安裝路徑,再利用createprocess函式進行呼叫即可完成前面提到的功能。因為每個人安裝程式的習慣不一...