機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
用RPM校驗(yàn)文件
用RPM校驗(yàn)文件
 更新時(shí)間:2009-8-12 16:57:16  點(diǎn)擊數(shù):0
【字體: 字體顏色
有些事情對(duì)我們系統(tǒng)管理員來(lái)說(shuō)至少發(fā)生過(guò)一次,就是你感覺(jué)到你的系統(tǒng)好像不對(duì)勁
,開(kāi)始懷疑有人已經(jīng)突破了你的防御。確定此事是否發(fā)生的途徑之一就是檢查系統(tǒng)文
件有沒(méi)有變化,你需要安裝TripWire或者其他審計(jì)工具來(lái)幫忙。

幸運(yùn)的是,Red Hat的程序員們開(kāi)發(fā)了一個(gè)工具,叫作Red Hat Package Manager,簡(jiǎn)
稱為RPM。在Red Hat的Linux系統(tǒng)中是默認(rèn)存在的。

RPM能為我做些什么?
RPM是一個(gè)強(qiáng)大的工具,用來(lái)安裝、升級(jí)和校驗(yàn)Red Hat系統(tǒng)上的軟件包。它的校驗(yàn)功能可以用來(lái)確認(rèn)文件是否被修改或覆蓋,這正是本文所要討論的。除了文件的大小和時(shí)間戳,RPM還能檢查文件的信息文摘或MD5簽名。

在RFC 1321中有MD5的詳細(xì)描述。簡(jiǎn)單的說(shuō),MD5根據(jù)文件的內(nèi)容用算法產(chǎn)生一個(gè)唯一的128位簽名,用任何方法改變文件都會(huì)導(dǎo)致簽名改變。盡管人們一直在討論修改文件后能保持簽名不變的理論可能性,但截止到目前還沒(méi)有人能夠做到。所以在文件使用前后各作一次MD5檢查,能夠99.9999%的保證文件沒(méi)有改變。

如何使用RPM來(lái)檢查文件?
有一些RPM的參數(shù)你需要注意。第一個(gè)是“-V”,它檢查與某一RPM包相關(guān)所有文件的
完整性。語(yǔ)法為:

rpm -V package_name_to_verify

比如系統(tǒng)上運(yùn)行了sendmail,通過(guò)以下命令檢查所有相關(guān)文件的完整性:

rpm -V sendmail

輸出看來(lái)是這樣的:

[root@fubar /root]# rpm -V sendmail 
S.5....T c /etc/aliases 
missing /etc/mail/ip_allow 
S.5....T c /etc/mail/relay_allow 
S.5....T c /etc/sendmail.cf 
S.5....T c /etc/sendmail.cw 
S.5....T /usr/sbin/sendmail 
S.5....T /var/log/sendmail.st 
[root@fubar /root]# 

只有校驗(yàn)失敗的文件才被列出,沒(méi)有列出的文件應(yīng)該是完好無(wú)損的。左邊給出了為什
么校驗(yàn)失敗的原因,具體解釋如下:

S = 大小改變
M = 權(quán)限改變
5 = MD5改變 
L = 連接改變
D = 設(shè)備改變
U = 用戶改變
G = 組改變
T = 日期和時(shí)間改變
missing = 文件丟失

從上面的輸出可見(jiàn),文件aliases, relay_allow, sendmail.cf 和 sendmail.cw的大
小、時(shí)間日期和MD5發(fā)生了改變。由于它們是配置文件,應(yīng)該沒(méi)什么關(guān)系。但是/usr/
bin/sendmail的改變就要引起注意了,它是一個(gè)監(jiān)聽(tīng)在25端口的可執(zhí)行文件,用來(lái)接
受信件。除非你升級(jí)了sendmail,否則它不應(yīng)該校驗(yàn)失敗,很明顯有人修改或者覆蓋
了原來(lái)的sendmail文件,可能帶有木馬或者后門(mén)。

輸出還顯示ip_allow文件被刪除或者被改名。這是用來(lái)檢查和控制SPAM的一個(gè)文件,
它的丟失某種程度上表明相關(guān)的二進(jìn)制文件可能被修改。

當(dāng)觀察RPM輸出的時(shí)候,在檢查日期時(shí)間和文件大小的同時(shí),要特別注意MD5是否變化,入侵者經(jīng)常修改或覆蓋某些文件來(lái)隱藏他們的蹤跡。

挨個(gè)檢查軟件包很費(fèi)時(shí)間,用“-a”選項(xiàng)可以一次性檢查所有RPM包:

rpm -Va > /root/rpm_chk.txt &

這條命令讓RPM檢查服務(wù)器上安裝的RPM包,結(jié)果輸出到rpm_chk.txt文件,最后的可選項(xiàng)“&”表示命令在后臺(tái)運(yùn)行,給出shell提示符可以作其他事情。

最后一個(gè)技巧,當(dāng)你想要檢查某個(gè)文件而不知道它屬于哪個(gè)RPM包,可以用“-qf”選
項(xiàng)查看哪個(gè)軟件包安裝了此文件:

[root@fubar /root]# rpm -qf /usr/sbin/sendmail 
sendmail-8.8.7-20 
[root@fubar /root]# 

這表明此sendmail文件是sendmail-8.8.7-20 RPM包的一部分。如果一個(gè)文件沒(méi)有關(guān)聯(lián)
的RPM包,輸出大概是這樣的:

[root@fubar /root]# rpm -qf /sbin/.vile_stuff 
file /sbin/.vile_stuff is not owned by any package 
[root@fubar /root]# 

小心你系統(tǒng)上運(yùn)行的不能被校驗(yàn)的程序!

如何開(kāi)始?
首先,你必須有root權(quán)限來(lái)運(yùn)行RPM。當(dāng)以普通用戶身份來(lái)運(yùn)行RPM校驗(yàn)時(shí),它的輸出信息是不正確的,因?yàn)槠胀ㄓ脩魧?duì)某些文件可能都沒(méi)有read權(quán)限。這意味著只有root才能檢查整個(gè)系統(tǒng)文件的完整性。

RPM二進(jìn)制文件在/bin目錄下,它的數(shù)據(jù)庫(kù)文件在/var/lib/rpm下。

最安全的方法是在服務(wù)器連到Internet之前,把這些數(shù)據(jù)文件和RPM二進(jìn)制文件保存到
軟盤(pán)或CD上,這能夠保證你的工具自身是安全的。

第一件事是檢查/var/lib/rpm,這些數(shù)據(jù)文件的日期和時(shí)間應(yīng)該和安裝系統(tǒng)當(dāng)時(shí)的情
況一樣,如果你發(fā)現(xiàn)日期不對(duì),就要小心了。

其次,我們可以使用RPM來(lái)校驗(yàn)自身的完整性:

[root@fubar /root]# rpm -V rpm 
[root@fubar /root]# 

沒(méi)有輸出表示RPM應(yīng)該沒(méi)有什么問(wèn)題。但這不是絕對(duì)的,因?yàn)槎M(jìn)制文件如果本身可疑就很難說(shuō)。所以要盡可能使用CD上的工具,如果你沒(méi)有比較安全的工具,用RPM校驗(yàn)自身在一般情況下也足夠了。

現(xiàn)在我們知道RPM自身沒(méi)有問(wèn)題了,對(duì)整個(gè)系統(tǒng)作個(gè)檢查:

rpm -Va > /root/rpm_chk.txt & 

一個(gè)簡(jiǎn)單的技巧就是定期檢查整個(gè)系統(tǒng),然后比較不同時(shí)期的rpm_chk.txt,從而發(fā)現(xiàn)
哪些不正常的文件改動(dòng)。

總結(jié)
盡管RPM不是專門(mén)設(shè)計(jì)用來(lái)審計(jì)文件的,但它可以幫你不少忙。目前Red Hat Linux各
個(gè)版本中都默認(rèn)自帶RPM,這意味著你完成Red Hat Linux安裝以后,就可以使用RPM了,同時(shí)MD5提供了一種高精確度的文件校驗(yàn)方法。唯一注意的是要保證RPM自身和它所有數(shù)據(jù)文件的完整性,以防止入侵者修改它們來(lái)隱藏蹤跡。
  • 上一篇: 如何配置linux與win2000/NT 雙重引導(dǎo)
  • 下一篇: 讓linux支持你的DMA66硬盤(pán)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1