如果公司的網站頁面被成惡意攻擊者置換掉,那麼對公司商譽的損傷是難以彌補的,而整個IT團隊也會顏面盡失,如何制止這類事件的發生就變得非常重要了。對此,這裡將介紹如何透過Linux系統的Inotify機制,並搭配inotify-tool及incron軟體,來建構一個可即時監控系統變動的解決方案。
接下來,繼續說明Inotify機制所支援的常見監控事件,如表3所示。
表3 Inotify所支援的常見監控事件
安裝inotify-tool
inotify-tool是一種可與inotify結合,提供監控檔案系統上的檔案與目錄變動的功能,安裝此套件相當地簡單,利用如下指令即可:
在安裝完成後,inotify-tool主要提供inotifywait來實現監控檔案系統的目的。
inotifywait實際是用來監控檔案系統上的檔案或目錄,其使用語法如下:
其中,[組態選項]部分的相關說明,如下所示:
-r: 設定採用遞迴(Recursive)的方式監控所設定的目錄,亦即同時也會監控該目錄下的所有子目錄。
-m: 設定持續地監控所要監控的目錄或檔案,如果未設定此選項,inotifywait程式在執行完一次之後,就會結束。
-d: 就如同-m選項,但此選項會將inotifywait程式於背景程式(Daemon)中運作。
-e: 設定要監控檔案或監控目錄的狀態(例如檔案關閉或屬性改變)是否發生,所監控的狀態如表4所示。
表4 inotifywait監控檔案及目錄時的狀態說明
--exclude:如果監控的對象是目錄,可利用此選項
排除此目錄內某些檔案或目錄的監控。
-t: 設定欲監控的時間長度(單位為秒),如果在此時間長度中,所監控的檔案或目錄並沒發生異動,即解除監控狀態。
以下指令將測試以inotifywait監控某個目錄:
該指令設定以遞迴的方式來監控「/var/log」目錄下的檔案或目錄是否有發生變動的情形。如圖3所示,在「/var/log/」目錄下新增一個名稱為hello的檔案。
|
▲圖3 新增一個名稱為hello的檔案。 |
由於inotifywait僅為單一的工具程式,當偵測到檔案系統發生變化時就會自動結束,所以在使用的時候,通常需要自行撰寫程式來執行,而其程式架構如下所示(#之後為註解):
由於使用inotifywait程式經常需要自行撰寫程式,使用上較為不便,因此接著介紹另外一套較為完整的incron套件,只需設定組態,即可持續監控檔案系統的變動。
使用incron
incron的安裝方式很簡單,先至incron的官方網站下載原始碼(目前最新的版本為0.5.10)。
然後解壓縮,並執行「make && make install」指令即可安裝。成功安裝後,incron主要提供以下兩個主程式:
‧incrond:實際運作的主程式
‧ incrontab:編寫組態檔的程式,可用來編寫設定的組態檔。
而incron的組態檔格式以及相關說明如下:
< path> : 設定要監控的目錄或檔案,要特別注意的一點是,如果監控的對象是目錄的話,incron不會以遞迴的方式往下監控相關的子目錄。