之前的文章曾介紹過mod_security模組,這是一套開源碼社群中頗負盛名的WAF軟體,其主要功能在於阻擋如SQL injection、X.S.S等惡意行為的網頁攻擊行為。其實mod_security模組除了在防禦惡意網頁攻擊行為具有優異的表現外,在網站Log紀錄的處理方面也具有相當強大的功能,不但可依設定分門別類處理不同種類的網站Log紀錄,甚至還能提供儲存至遠端資料庫的功能。
Log伺服器的網站Log檔案暫存在「/var/log/mlogc/data」目錄(SecAuditLogStorageDir所設定)後,利用mlogc程式(如上圖中的SecAuditLog)將相關的網站Log資訊回傳至後端console的資料庫內。接著,設定mlogc相關的組態,也就是設定「/etc/mlogc.conf」檔案,設定內容如下圖示:
mlogc常用的組態設定,如表5所示。
表5 mlogc常用組態設定
設定完成後,重啟Sensor端的網站伺服器,故意在Sensor端製造一個404事件(選取一個不存在的網頁),如果設定正常,在Console端的「/usr/local/apache2/davtmp」目錄下,應該會產生一個名稱為「tmp」的檔案,檔案內容即為Sensor端所傳過來的Log內容,類似下圖所示。
然後,繼續設定mod_security模組所提供的Sensor-Console機制,並提供將稽核紀錄回傳至後端的資料庫系統,相關架構圖如下所示。
與上個階段最大的不同在於,mod_security模組提供一個轉換程式(檔案名稱為mlog2waffle)用來將接收到的Log資訊直接轉換到資料庫中。mlog2waffle是一個用Perl語言所撰寫而成的程式。
要執行此程式,必須先安裝下列幾個Perl模組,方可正常的執行本支程式:
libwww
File::Pid
File::Tail
LWP::UserAgent
接著要新建相關的資料庫表格,在該原始碼目錄中有一個waffle.mysql檔案,請自行依其內容建置相關的資料庫,本文中將新建資料庫名稱為「waffle」的資料庫。
資料庫建立完成後,就來設定console端的相關設定(亦即安裝waf-fle程式)。在此假設已完成建置網站伺服器(需支援PHP程式語言)。
將waf-fle所有程式複製到網站根目錄內,並設定其中config.php檔案內的資料庫相關資訊,如下圖所示。
$DB_HOST:設定資料庫所在的主機IP位址
$DB_USER:設定資料庫連接所使用的使用者名稱
$DB_PASS:設定資料庫連接所使用的連線密碼
$DATABASE:設定連接的資料庫名稱
在設定完成後,可利用瀏覽器連結網址「http://
/waf-fle/dashboard/login.php」。若是第一次使用,將會顯示登入畫面,系統會要求輸入帳號與密碼(waf-fle預設帳號及密碼為admin與admin),可以在登入後再修改密碼即可。
登入後,新增欲接收Sensor的帳號與密碼資訊,請點選網頁介面上方功能列的MANAGEMENT的新增Sensor,如下圖示。
然後,再填入Sensor的帳號名稱與密碼資訊即可,但必須與Sensor主機上「/etc/mlog2waffle.conf」中的帳號(SensorUsername)與密碼(SensorPassword)設定一致。在新增成功後,將會顯示如下般的畫面,將會顯示Sensor主機相關的資訊。