大概每隔一段時間,總會有類似「某家廠商的網站被駭客入侵,大量的個人資料隨之外洩」的消息傳出,在實行個人資料保護法後,被駭的廠商可能會面臨高額的求償。在不改動原先網站伺服器架構的原則下,本文將實作Proxy型式的網頁防火牆,為在實際服務中的網站伺服器前端,阻擋相關的網頁惡意攻擊。
接下來,繼續來說明mod_security所提供的組態說明,常用的組態如 表6所示。
表6 mod_security所提供的組態
系統實作
這裡將以兩個階段來完成此實作,在第一個階段中,將利用Apache的Proxy功能來設定Reverse Proxy,將Apache伺服器變身為Reverse Proxy伺服器。而後,第二個階段再將mod_security模組加入,使其具有網頁防火牆的功能。系統架構圖如圖5所示。
|
圖5 系統實作架構圖。 |
假設圖5中的兩台主機均已完裝完成相關軟體,並且已啟動Apache伺服器。首先設定圖5中的140.117.71.244(以下簡稱Proxy主機)的Reverse Proxy功能,如圖6所示。
|
圖6 設定Reverse Proxy功能。 |
設定完成後,重新啟動Proxy主機的Apache伺服器,然後以瀏覽器連接Proxy主機。如果一切正常,所看到的頁面應為實際服務的主機,如本例為140.117.71.124的連線紀錄。若查看該主機的access_log,應該會發現許多來自140.117.71.244。
Proxy功能設定完成後,接著繼續設定mod_security模組。在httpd.conf下新增以下的設定(#為註譯,本例將Apache伺服器偽裝成IIS):
在設定完成之後,可利用telnet指令來驗證mod_security,如圖7所示。
|
▲圖7 使用telnet指令來驗證mod_security。 |
如果網站伺服器回傳的訊息中的Server欄位有IIS字樣,即表示mod_security已經正常地運作。
如上所述,mod_security模組只是一個工具,要能有效地發揮其功能,主要的重點在於所設定的規則是否有符合現實所需。而要能有效地調校出適當的規則,必須有相當的HTTP通訊協定背景知識,方可調校適當的規則。