為提升 IIS 安全性,微軟提供 IIS Lockdown 與 URLScan (已整合於 Lockdown 2.1)。Lockdown 核心功能:停用/移除非必要 IIS 服務與元件、修改預設配置強化系統與 Web 目錄安全、整合 URLScan 過濾惡意 HTTP 請求。本文詳述前兩項功能實作 (針對 2.1 版,舊版操作差異大)。
下載 iislockd.exe (自解壓縮執行檔)。切勿直接雙擊解壓至當前目錄 (會與內部同名執行檔衝突)。正確步驟:
iislockd.exe /q /c /t:c:\IISLockdown (/q 靜默、/c 僅解壓、/t 指定目標資料夾)。iislockd.exe (主程式)、iislockd.ini (設定檔)、iislockd.chm (線上說明)、404.dll (自訂 404 回應)、URLScan 相關檔案。iislockd.exe 啟動精靈,接受授權條款。%windir% 下執行檔 ACE,明確拒絕匿名 Web 用戶執行 cmd.exe、tftp.exe 等。httpext.dll 載入。加鎖過程在 %windir%\system32\inetsrv 產生:oblt-log.log (詳細操作)、oblt-rep.log (摘要)、oblt-undo.log (回滾清單)、metaback\oblt-mb.md0 (Metabase 備份)。務必異地備份這些檔案,以便手動回滾或重灌系統時恢復。
只要找到 oblt-log.log 即可回滾:先移除上次加鎖的服務 (控制台「新增/移除程式」) 與 URLScan,再執行 Lockdown Undo。Undo 會還原加鎖前的 Metabase 備份,中間對 IIS 的所有變更將遺失,但 Undo 會先備份當前 Metabase,必要時可重做遺失操作。
編輯 iislockd.ini 的 [Info] 區段:
Unattended=TRUE UnattendedServerType=<ServerType>
ServerType 取值來自 ServerTypesNT4 或 ServerTypes 鍵。Lockdown 2.1 不支援命令列參數,需為不同伺服器類型建立獨立目錄與 ini 檔,再進入對應目錄執行。Undo=TRUE 可觸發無人值守回滾。
編輯 iislockd.ini:在 ServerTypesNT4 (NT 4.0) 或 ServerTypes 加入新模板名稱 → 複製最接近的現有模板區段至檔案末尾 → 修改模板名稱 (括號內) → 修改 Label 說明文字 → 依需求啟用/停用各選項鍵值。
結語:IIS Lockdown 能便利提升安全性,但安全是動態演進的過程,唯有持續關注、修補與審計,方能防患未然。