您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何監(jiān)控Linux文件變化,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
概述
在*nix體系一切皆文件,系統(tǒng)文件的變化往往反應(yīng)著系統(tǒng)的變化,比如系統(tǒng)應(yīng)用的更新、系統(tǒng)的操作活動(dòng)(可以用安全審計(jì)來(lái)確定)或系統(tǒng)被黑。根據(jù)蟲蟲多年來(lái)維護(hù)經(jīng)驗(yàn)系統(tǒng)被黑最明顯之一的特征就是系統(tǒng)文件變化,包括不限于:
/bin (替換基本工具為惡意木馬等,比如netstat,ps等)
/sbin (替換基本工具為惡意木馬等,比如sshd,lsof,ss等)
/usr/bin(替換基本工具為惡意木馬等,比如sshd,lsof,ss等)
/usr/sbin (替換基本工具為惡意木馬等,比如sshd,lsof,ss等)
/etc/init.d (修改開機(jī)啟動(dòng)任務(wù),添加惡意腳本開機(jī)啟動(dòng))
/etc/
/etc/cront.d (修改計(jì)劃任務(wù),添加惡意腳本定時(shí)執(zhí)行)
/etc/crontab (修改計(jì)劃任務(wù),添加惡意腳本定時(shí)執(zhí)行)
~/.ssh/目錄 (注入公鑰)
/etc/sysconfig (修改iptables配置等,開放網(wǎng)絡(luò)限制)
/etc/ssh/ (修改ssh配置)
web目錄 (修改網(wǎng)站)
等目錄下文件被替換或者添加非法文件。
加強(qiáng)對(duì)這些目錄和文件的監(jiān)控,就可以在一定程度上防止系統(tǒng)被黑,以及系統(tǒng)被黑,而無(wú)法發(fā)現(xiàn)的問(wèn)題。
find –mtime目錄文件變化
監(jiān)控系統(tǒng)變化的最簡(jiǎn)單,最常用的方法是使用find命令,其-mtime表示最近有過(guò)變動(dòng)的文件。
比如要查看一天內(nèi)/usr/bin目錄下變化過(guò)的文件可以使用
find /usr/bin -m -1
要看詳細(xì)這些文件詳細(xì)信息,可以用xargs或者-exec把這些變化文件在用ls -al顯示出來(lái),比如:
find /var -type f -mtime -1 -exec ls -al {} \;
RPM監(jiān)控系統(tǒng)文件的變化
RPM是Linux一種應(yīng)用包,利用RPM安裝應(yīng)用大家可能都熟悉。實(shí)際上RPM還是一個(gè)系統(tǒng)包數(shù)據(jù)庫(kù),并提供包驗(yàn)證功能,可以用來(lái)發(fā)現(xiàn)原始安裝包變化情況。RPM應(yīng)用包文件驗(yàn)證的基本命令是rpm -V。比如查詢驗(yàn)證nginx包可以用rpm -V nginx:
該命令結(jié)果的前幾位屬性驗(yàn)證,.表示屬性正常,其他標(biāo)志表示屬性有變化,如果文件被刪除,則會(huì)提示"missing …"。具體屬性的含義如下:
結(jié)果表示: nginx包中default.conf文件的大小,md5哈希值,文件修改時(shí)間都改變了。
注意:上圖中中間位還有個(gè)字母c標(biāo)志,該標(biāo)表示文件的屬性,c表示文件為配置文件。其他標(biāo)志有: d %doc 說(shuō)明文檔;g %ghost 不應(yīng)包含的文檔,有可能有問(wèn)題;l %license 授權(quán)文件;r %readme readme說(shuō)明文件。
-V選項(xiàng)增加-a就可以列出當(dāng)前系統(tǒng)中安裝后,所有變化過(guò)的包文件,可以以此來(lái)檢查文件包的完整性,安全性等。我們對(duì)結(jié)果使用grep進(jìn)一步檢查就得到具體的文件,比如要獲取bin目錄系統(tǒng)文件變化過(guò)的文件:
Inotify監(jiān)控文件變化
另一個(gè)比較常用的方法是用Inotify來(lái)監(jiān)控文件變化。Inotify是Linux內(nèi)核自帶(2.6.13)的系統(tǒng)事件監(jiān)控機(jī)制。Inotify優(yōu)點(diǎn)之一是基于內(nèi)核事件通知機(jī)制,無(wú)需定時(shí)主動(dòng)探測(cè)文件狀態(tài),簡(jiǎn)單可靠。另一個(gè)好處是有文件變化時(shí)通知時(shí)候,可以記錄當(dāng)時(shí)的用戶和事件進(jìn)程。基于Inotify的工具有inotify-tools、sersync和lsyncd等,我們此處簡(jiǎn)單介紹inotify-tools使用。
inotify-tools安裝
安裝比較簡(jiǎn)單,以centos為例,先添加epel源,然后
yum install inotify-tools
inotify-tools使用
inotify-tools安裝后會(huì)附帶兩個(gè)工具即inotifywait和inotifywatch。inotifywait工具用來(lái)添加文件或目錄監(jiān)控,支持對(duì)文件的一些操作事件,比如open、close、delete等,運(yùn)行后系統(tǒng)處于阻塞狀態(tài)。inotifywait的參數(shù)和對(duì)應(yīng)事件列表如下圖所示:
做為安全方面考慮,重點(diǎn)關(guān)注文件文件變化和創(chuàng)建時(shí)間,即modify和create事件。
inotifywatch工具用來(lái)查看所監(jiān)視的文件發(fā)生事件的數(shù)據(jù)統(tǒng)計(jì)。
下面舉一個(gè)實(shí)例來(lái)說(shuō)明,我們用inotifywait來(lái)監(jiān)控/var目錄下文件的變化:
inotifywait -mre modify /var
為了便于閱讀,我們添加一些日志和時(shí)間格式參數(shù):
inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f' -e modify -e create /var
要統(tǒng)計(jì)系統(tǒng)內(nèi)30秒內(nèi)的變化數(shù)據(jù),可以用inotifywatch:
inotifywatch -v -t 30 -r /proc
inotifywatch 的使用此處不在詳細(xì)介紹。
自建編寫腳本進(jìn)行文件Md5監(jiān)控
還有一個(gè)方法就是對(duì)特定目錄(比如Web目錄)開始時(shí)候?qū)ζ溆?jì)算md5 哈希,以后定時(shí)計(jì)算md5然后比對(duì),發(fā)現(xiàn)md5 哈希不一致了,說(shuō)明文件已經(jīng)被篡改了。對(duì)此,蟲蟲之前基于這個(gè)原理用Perl寫了一個(gè)腳本MD5Check(github: /bollwarm/MD5Check),可以直接用來(lái)使用或者做參考。
MD5Check安裝很簡(jiǎn)單,有Perl的環(huán)境下(依賴Digest::MD5)直接下直接clone文件就可以使用,或者使用cpanm安裝
cpanm MD5Check
使用:
使用方法,執(zhí)行 perl bin/init.pl web目錄(自定義),初始化MD5值。
然后使用perl bin/check.pl前一部保存的md5哈希的文件檢查。
詳細(xì)實(shí)例,見(jiàn)bin目錄下的 init.pl 和 check.pl
cpanm安裝后,可以直接用perl單行程序檢查使用
初始化:
perl -MMD5Check -e 'init("/web")' >file
檢查:
perl -MMD5Check -e 'print md5check(file)'
實(shí)例:我們舉一個(gè)wordexpree網(wǎng)站為例子:
perl init.pl /web >webmd5.20161027
檢查:
perl check.pl webmd5.20161027
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何監(jiān)控Linux文件變化”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。