2012年9月15日 星期六

稽核並追蹤IIS 7.5 組態變更 (Auditing and tracing IIS 7.5 Configuration Changes)

大型商業用途的IIS伺服器經常包含了多個網站,而每個網站又提供了許多不同類型的網頁應用程式, 所以管理維護這種大型IIS伺服器的工作負荷既重且煩,因為經常需要針對多個網站、許多不同類型的網頁應用程式設定不同的安全性組態、進行各種效能診斷調整以及應用程式集區管理等工作。

基於更有效率的分散管理原則並降低管理負荷,IIS管理員經常透過委派管理的機制來將特定網站、特定應用程式底下的某些管理功能委託給他人來進行管理,因而讓一部IIS 7伺服器的管理組態可能同時有多個具備權限的人員可以進行不同部份的組態設定與變更,如果沒有一套適當的變更組態管理機制,容易產生IIS管理組態不一致、衝突甚至於不當組態發生的現象,進而影響到IIS伺服器的運作,所以對於採用委派方式來分散式管理的IIS伺服器,上層管理人員必需要能夠掌握與追蹤IIS組態的變更過程,亦即隨時可以查核什麼人、於何時,曾經變更過那些組態設定,變更的內容為何,以便一旦IIS系統突然發生異常問題時,可以檢查是否由於有人變更過組態設定而導致問題。

啟用IIS組態變更稽核功能

想要稽核與記錄IIS 7.5組態變更並非使用IIS管理員或appcmd等一般管理人員已熟知的管理工具,而是需要藉助於『事件檢視器(Event Viewer)』內的『應用程式及服務記錄檔』功能,其做法與步驟如下:

  1. 由『系統管理工具』選單內啟動『事件檢視器』(eventvwr.exe)工具。
  2. 由左側目狀目錄,利用滑鼠右鍵點選『應用程式及服務記錄檔』目錄下的『Microsoft ↘Windows↘IIS-Configuration↘Operational』節點並選取『啟用記錄』選項。
    iis-configuration
  3. 一旦啟用IIS-Configuration記錄功能後,記錄檔會被記錄在"%SystemRoot%\System32\Winevt\Logs\Microsoft-IIS-Configuration%4Operational.evtx",您可以透過『內容』對話方塊來變更其存放的位置,而且在這個記錄內容中也允許您重新設定記錄檔案大小和記錄檔到達上限後的處理方式,如果記錄檔不再需要,亦可按下下方的『清除記錄檔』按鈕直接清除記錄檔。
    iis-configuration2

檢視IIS組態變更記錄

啟用IIS組態變更記錄之後,您就可以由事件檢視器的中間窗格來檢查IIS組態是否曾經被變更以及如何被變動等資訊,如下圖的檢視視窗所示,您會看到一堆事件識別碼為29和50的事件,您通常需要檢查事件識別碼50前面的那一個識別碼29的事件。

iis-configuration4

由事件內容的預設的『一般』標籤頁面可看出何人在什麼時間點變更了IIS的那一項組態,如下圖範例所示david已變更了HTTP記錄功能。

iis-configuration7

若您需要進一步了解變動的內容,亦即組態變更的原始值與新值,則您需要切換至『詳細資料』標籤頁面,如下圖範例所示HTTP記錄的dontLog設定值已經由false改為true,因此記錄檔顯示了david在某個時間點已經將預設網站的記錄功能予以停用。

iis-configuration8

IIS 7.5 組態變更稽核記錄的限制與問題

啟用事件檢視器的『IIS-Configuration↘Operational』記錄功能來將IIS組態變更的事件詳細記錄下來以協助我們日後的查核工作,不過IIS組態變更的方式可能經由圖形介面的『IIS管理員』、命令列的appcmd指令,甚至自行撰寫WMI程式介面的vbs指令檔來程式化等多種方式來執行管理與設定,當然目前不論使用者利用上述何種方式於本機或遠端電腦進行管理設定均會被正確的記錄下來,但是如果使用者是使用任何文書編輯器(如記事本)來直接編輯更改IIS的XML格式組態檔(applicationHost.config),則此種直接編輯組態檔案的變更方式並無法被記錄下來予以稽核。

iis-configuration9

此外,這項IIS 組態變更稽核記錄功能也只適用於7.5版,先前的IIS版本並無法使用這項功能。