歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

利用Tripwire檢測系統完整性(3)

六、完整性檢測的自動化 如果您想讓Tripwire在特定的時刻或每隔一段時間就自動進行檢測的話,可以按照下列提示來完成。例如我們要他每天的下午2點進行一次檢測,那該如何做呢?我們可以利用cron來來協助我們完成此項任務。我們可以在root用戶的 crontab文件 六、完整性檢測的自動化

如果您想讓Tripwire在特定的時刻或每隔一段時間就自動進行檢測的話,可以按照下列提示來完成。例如我們要他每天的下午2點進行一次檢測,那該如何做呢?我們可以利用cron來來協助我們完成此項任務。我們可以在root用戶的 crontab文件中添加以下一項:

0 2 * * * /usr/sbin/tripwire --check


需要注意的是,cron本身也可能受到攻擊,因而可能出現不執行等意外情況。所以我們最好在一個可信的遠程機器上來執行cron任務。在trusty上的crontab中添加如下一個遠程檢測項:

0 2 * * * ssh -n -l root untrusty /usr/sbin/tripwire --check


但是如果入侵者攻破了untrusty上的sshd的話,那麼覆巢之下,焉有完卵--您的安全性也必將受到威脅!此外,某些rootkits能夠顛覆對Tripwire的遠程exec調用。為了獲取最大的安全性,只是執行cron任務是遠遠不夠的,還得在可信機器上進行完整性檢驗。

Red Hat Linux預配置情況下,會在每晚通過cron任務/etc/cron.daily/tripwire-check來運行Tripwire程序。但是,Tripwire數據庫不是由操作系統來提供的,而是由用戶自己來提供一個原件,否則,cron只是定時向超級用戶發送一封Tripwire調用失敗的的電子郵件。

七、生成Tripwire報告

上面介紹了如何配置Tripwire來進行完整性檢測。但這並不是使用Tripwire的目的所在,我們需要的是完整性檢測的結果,換句話說還得要Tripwire將結果以報告的形式提交給管理人員,這樣我們才能以此判斷系統是否遭到破。具體操作如下所示:

#!/bin/shDIR=/var/lib/tripwire/reportHOST=`hostname -s`LAST_REPORT=`ls -1t $DIR/$HOST-*.twr | head -1`twprint --print-report --twrfile "$LAST_REPORT"


一般情況下,Tripwire報告存放在什麼地方是由Tripwire配置文件中的REPORTFILE變量來決定,其常見值為:

REPORTFILE = /var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr

變量HOSTNAME存放的是機器的主機名,變量DATE存放的是時間戳,如。所以,主機untrusty的報告文件名應當為:

/var/lib/tripwire/report/untrusty-20040130-030518.twr

雖然tripwire可以通過電子郵件發送報告,但不要太信賴電子郵件,因為它很可能被截獲並被篡改後重發。所以,最好由您直接檢查報告為上,要Twprin打印報告,可以按如下操作進行:

# twprint --print-dbfile --dbfile /var/lib/tripwire/`hostname -s`.twdTripwire(R) 4.0 DatabaseDatabase generated by:        rootDatabase generated on:        Mon Jan  1 22:33:55 2004Database last updated on:     Never... contents follow ...


八、Tripwire數據庫的維護

對於Tripwire數據庫的維護工作,主要包括數據庫的更新、添加和刪除操作,下面我們將分別介紹。

更新數據庫

有時候,我們會對程序作一些正常的修改,這些改動也會反映在最新的Tripwire報告中,但問題是,我們使用Tripwire很大程度上只想讓它報告那些"非法的"修改。那麼,這時我們就需要利用最新的報告來更新一下我們的Tripwier數據庫,具體操作如下所示:

#!/bin/shDIR=/var/lib/tripwire/reportHOST=`hostname -s`LAST_REPORT=`ls -1t $DIR/$HOST-*.twr | head -1`tripwire --update --twrfile "$LAST_REPORT"


這裡有一點必須注意,那就是如果你已經修改了某些文件的話,您不能只是簡單的運行更新就算了事:您必須在此之前首先進行完整性檢驗。進行更新的好處是它比初始化數據庫要快得多!

向數據庫中添加文件

為了向Tripwire的數據庫中添加文件和目錄,請執行以下操作:

向有效策略文件中添加指定的文件,如/bin/ls:

/bin/ls  -->  $(SEC_BIN) ;


向有效策略文件中添加整個目錄樹,比如/etc:

/etc     -->  $(SEC_BIN) ;


向有效策略文件中添加目錄如/etc及其下的文件,但不包括其子目錄:

/etc     -->  $(SEC_BIN) (recurse=1) ;


向有效策略文件中添加目錄如/etc,但不包括其下的文件以及其子目錄:

/etc     -->  $(SEC_BIN) (recurse=0);


然後初始化數據庫。

策略實際上就是存放在策略文件中的規則表,規則的一般形式如下所示:

filename -> rule ;


它的基本含義就是,如果給定的規則被違反的話,那麼對應的文件或目錄就被認為是到了安全侵害。例如:

/bin/login -> +pisug ;


上面這條規則的含義是:如果自從上次快照之後,如果/bin/login的文件權限(p)、inode號(i)、 尺寸 (s),、用戶(u)或組 (g)發生了變化的話,那麼就應當引起我們的關注。如果想全面深入的了解Tripwire語法的話,請參閱Tripwire手冊。在這裡,我們使用了一個預定義的全局變量SEC_BIN來指出二進制文件不得修改。recurse= n的作用在於通知Tripwire在文件系統中的遞歸深度;當n為零時,其含義為只測試到目錄文件本身這一層次。

很多時候我們需要修改默認策略文件,因為它們所提供的策略未必完全適合我們的系統,所以我們需要針對不同的Linux類型和版本,對Tripwire所提供的默認策略進行適當的剪裁,從而滿足我們的要求。

新聞2頁,當前在第1頁  1  2  

Copyright © Linux教程網 All Rights Reserved