⑴ 禁用或者刪除不必要的IIS服務(wù)和組件。
⑵ 修改默認(rèn)配置,提高系統(tǒng)文件和Web內(nèi)容目錄的安全性。
⑶ 用URLScan來過濾HTTP請(qǐng)求。
本文介紹如何運(yùn)用IIS Lockdown 2.1的前兩項(xiàng)功能。注意本文的說明針對(duì) IIS Lockdown 2.1版本,以前版本的用法大不相同。
一、注意事項(xiàng)
IIS Lockdown會(huì)改變IIS的運(yùn)行方式,因此很可能與依賴IIS某些功能的應(yīng)用沖突。特別地,如果要在一個(gè)運(yùn)行Microsoft Exchange 2000 Server、Exchange Server 5.5或Microsoft SharePoint Portal Server的服務(wù)器上安裝IIS Lockdown和URLScan,應(yīng)當(dāng)加倍小心。
微軟的兩篇文章解釋了可能遇到的困難和解決辦法:《XADM:在Exchange 2000環(huán)境中使用IIS Lockdown向?qū)У囊阎獑栴}和調(diào)整策略》(http://support.microsoft.com/default.aspx?scid=kb;en-us;q309677),以及《SPS:IIS Lockdown工具影響SharePoint Portal Server》(http://support.microsoft.com/default.aspx?scid=kb;en-us;q309675)。
另外,在正式應(yīng)用IIS Lockdown或URLScan之前,務(wù)必搜索微軟的知識(shí)庫,收集可能出現(xiàn)問題的最新資料。掌握這些資料并了解其建議之后,再在測試服務(wù)器上安裝IIS Lockdown,全面測試Web應(yīng)用需要的IIS功能是否受到影響。最后,做一次全面的系統(tǒng)備份,以便在系統(tǒng)功能受到嚴(yán)重影響時(shí)迅速恢復(fù)。
二、安裝
IIS Lockdown 2.1可以從http://www.microsoft.com/downloads/release.asp?releaseid=33961下載。下載之后得到一個(gè)iislockd.exe,雙擊運(yùn)行,把它解壓縮到一個(gè)臨時(shí)目錄并啟動(dòng)IIS Lockdown向?qū)А5牵绻肐IS Lockdown來保護(hù)多個(gè)服務(wù)器,最好按照下文的說明把它解壓縮到一個(gè)專用目錄,這樣就不必每次運(yùn)行IIS Lockdown都要重新解壓縮了。
必須注意的是,下載得到的是一個(gè)自解壓縮的執(zhí)行文件,這個(gè)執(zhí)行文件與壓縮包里面的應(yīng)用執(zhí)行文件同名。因此,如果把iislockd.exe解壓縮到它本身所在的目錄,就會(huì)引起文件名稱沖突。請(qǐng)按照下面的安裝步驟執(zhí)行,以避免可能出現(xiàn)的問題:
㈠ 將iislockd.exe下載到一個(gè)臨時(shí)目錄。
㈡ 打開控制臺(tái)窗口,進(jìn)入臨時(shí)目錄,執(zhí)行命令“iislockd.exe /q /c /t:c:\IISLockdown”解開壓縮,/q要求以“安靜”模式操作,/c要求IIS Lockdown只執(zhí)行提取文件的操作,和-t選項(xiàng)一起使用,-t選項(xiàng)指定了要把文件解壓縮到哪一個(gè)目錄(例如在本例中,要求把文件解壓縮到c:\IISLockdown目錄)。表一列出了iislockd.exe解壓縮得到的主要文件,注意iislockd.exe包含了URLScan的文件,但本文不準(zhǔn)備詳細(xì)探討URLScan。
表一:IIS Lockdown 2.1主要文件
IIS Lockdown文件 說明
iislockd.exe IIS Lockdown主執(zhí)行文件。
iislockd.ini 配置和選項(xiàng)文件。
iislockd.chm 聯(lián)機(jī)幫助。
runlockdunattended.doc 有關(guān)“無人值守”運(yùn)行方式的文檔。
404.dll “文件沒有找到”應(yīng)答文件。
URLScan文件 說明
urlscan.exe URLScan安裝程序包。
urlscan.doc URLScan文檔。
urlscan*.ini 配置和選項(xiàng)文件。
urlscan_unattend.txt 無人值守方式安裝URLScan的配置文件。
readme.txt 針對(duì)無人值守方式運(yùn)行URLScan的說明
unattend.cmd 無人值守方式安裝URLScan的命令文件。
三、實(shí)踐應(yīng)用
IIS Lockdown的用法很簡單。雙擊啟動(dòng)iislockd.exe,出現(xiàn)Internet Information Services Lockdown向?qū)В凑障驅(qū)У奶崾疽徊揭徊讲僮鳎芸炀涂梢詾閃eb服務(wù)器加上一把鎖。首先出現(xiàn)的是歡迎屏幕,點(diǎn)擊“下一步”出現(xiàn)最終用戶許可協(xié)議屏幕,選中I Agree選項(xiàng),點(diǎn)擊“下一步”進(jìn)入服務(wù)器模板選擇對(duì)話框.選擇一個(gè)最接近當(dāng)前服務(wù)器配置的模板,本文假定使用Static Web Server(靜態(tài)Web服務(wù)器)模板。選中View Template Settings選項(xiàng),向?qū)@示出一系列有關(guān)該模板類型的對(duì)話框,如果不選中這個(gè)選項(xiàng),向?qū)⑻^這些對(duì)話框,直接進(jìn)入U(xiǎn)RLScan安裝過程。
點(diǎn)擊“下一步”,出現(xiàn)Internet Services對(duì)話框,如圖二,這是第一個(gè)真正配置IIS加鎖選項(xiàng)的頁面。IIS Lockdown能夠禁用或刪除四種IIS服務(wù):HTTP,F(xiàn)TP,SMTP,以及NNTP(Network News Transport Protocol,網(wǎng)絡(luò)新聞傳輸協(xié)議)。怎樣才能知道哪些服務(wù)才是必需的呢?除了前面選擇的服務(wù)器模板類型可資參考之外,個(gè)人經(jīng)驗(yàn)、全面地測試也同樣重要。
Internet Services對(duì)話框中的IIS服務(wù)選項(xiàng)有三種狀態(tài):
㈠ 啟用:選項(xiàng)處于選中狀態(tài),檢查框有標(biāo)記,例如圖二的Web services。清除檢查框的標(biāo)記將禁用服務(wù)。
㈡ 啟用,但推薦禁用,例如圖二的E-mail service:選項(xiàng)沒有選中,檢查框沒有標(biāo)記。如果保留檢查框的清除狀態(tài),服務(wù)將被禁用。
㈢ 禁用,且不可選擇,例如圖二的File Transfer service:如果一個(gè)選項(xiàng)變灰,它的檢查框也沒有選中標(biāo)記,則表示不允許修改該服務(wù),可能是因?yàn)榉?wù)沒有安裝,也可能是因?yàn)楫?dāng)前選擇的服務(wù)器模板需要該服務(wù)。
如果服務(wù)器的用途不是經(jīng)常改變,最好徹底刪除不用的服務(wù),這樣就再也沒有人會(huì)意外地激活它了。
點(diǎn)擊“下一步”,向?qū)э@示出Script Maps(腳本映射)對(duì)話框。腳本映射是指把特定的文件擴(kuò)展名關(guān)聯(lián)到ISAPI(Internet Server API)執(zhí)行文件,由指定的ISAPI文件來解釋該類文件的內(nèi)容。例如,.asp文件類型映射到asp.dll。
如果禁用了某種類型的腳本文件,IIS Lockdown會(huì)把腳本映射指向一個(gè)特殊的DLL,當(dāng)用戶試圖運(yùn)行該類腳本文件時(shí)這個(gè)DLL會(huì)返回“文件沒有找到”的信息。要禁用某種類型的文件,只需在圖三對(duì)話框中清除該類文件的檢查框。
點(diǎn)擊“下一步”,進(jìn)入最后一個(gè)IIS Lockdown的選項(xiàng)對(duì)話框Additional Security,如圖四所示,通過這個(gè)對(duì)話框可以刪除不需要的目錄,禁止未經(jīng)授權(quán)的用戶訪問文件系統(tǒng)。IIS安裝好之后會(huì)有許多用于開發(fā)和學(xué)習(xí)的虛擬目錄,正式向用戶提供服務(wù)的環(huán)境不需要這些目錄,IIS Lockdown將刪除圖四對(duì)話框中選中的虛擬目錄,但仍會(huì)完好地保留這些目錄包含的數(shù)據(jù)。
默認(rèn)情況下,IIS會(huì)限制對(duì)Web內(nèi)容目錄的匿名訪問,但還應(yīng)該加上一層對(duì)系統(tǒng)工具(如cmd.exe)的保護(hù),以防止未經(jīng)授權(quán)的用戶在系統(tǒng)安全出現(xiàn)漏洞時(shí)訪問這些工具。如果選中圖四對(duì)話框中的Running system utilities (for example, Cmd.exe, Tftp.exe)檢查框,IIS Lockdown將修改\%windir%目錄及其子目錄下所有執(zhí)行文件的訪問控制屬性(ACE,Access Control Entry),明確地禁止本地Web匿名用戶組和Web用戶組的運(yùn)行權(quán)限。如果選中Writing to content directories 檢查框,IIS Lockdown還會(huì)加強(qiáng)所有Web內(nèi)容目錄的安全性,即設(shè)置ACE,禁止本地Web匿名用戶組和We應(yīng)用組的寫入權(quán)限。
窗口底部有一個(gè)Disable Web Distributed Authoring and Versioning(WebDAV)選項(xiàng),即禁用Web分布式創(chuàng)作和版本控制。WebDAV功能用來支持遠(yuǎn)程Web內(nèi)容創(chuàng)作和管理,如果確實(shí)不必用到該功能,那就可以選中Disable Web Distributed Authoring and Versioning檢查框。選中該選項(xiàng)之后,IIS Lockdown將設(shè)置httpext.dll(實(shí)現(xiàn)WebDAV功能的執(zhí)行文件)的ACE,禁止將httpext.dll文件裝入inetinfo.exe的進(jìn)程,從而也就禁止了WebDAV功能。
對(duì)話框的“下一步”,IIS Lockdown將詢問是否要安裝URLScan,如圖五。如果要用篩選器來禁止IIS處理某些可能有惡意的URL,即經(jīng)常被黑客用來攻擊系統(tǒng)的URL,那就可以用URLScan作為守衛(wèi)IIS的前門(即篩選器)。本文不準(zhǔn)備詳細(xì)介紹URLScan,請(qǐng)?jiān)L問http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/tools/urlscan.asp了解更多有關(guān)URLScan的說明。
取消安裝URLScan的選項(xiàng),點(diǎn)擊“下一步”,IIS Lockdown顯示出一系列將要執(zhí)行的操作,如圖六。點(diǎn)擊“取消”可以放棄操作,點(diǎn)擊“下一步”則開始執(zhí)行圖六清單中列出的“加鎖”操作。加鎖操作一旦開始,中途不能停止。
依賴于具體的修改操作,IIS Lockdown可能在\%windir%\system32\inetsrv目錄下創(chuàng)建幾個(gè)日志文件和IIS元數(shù)據(jù)備份文件,如表二所示。雖然沒有人要求我們一定要保證這些IIS Lockdown日志文件和元數(shù)據(jù)備份文件的安全,但如果要手工撤銷IIS Lockdown所做的操作,或者需要重新安裝OS,那就要用到這些文件。因此,最好把這些文件復(fù)制到另一個(gè)磁盤,或者把它們保存到另一個(gè)服務(wù)器。
表二:IIS Lockdown日志和元數(shù)據(jù)備份文件
.log或.md0文件 說明
oblt-log.log IIS Lockdown為了提高服務(wù)器安全性而執(zhí)行的一系列操作的清單。
oblt-rep.log 加鎖過程的一個(gè)簡短總結(jié)。加鎖過程結(jié)束后,點(diǎn)擊View Report按鈕可以看到這個(gè)文件。
oblt-undo.log IIS Lockdown為了撤銷加鎖操作而采取的一系列動(dòng)作的清單。
metaback\oblt-mb.md0 IIS元數(shù)據(jù)的備份文件。
metaback\oblt-beforeundo-mb.md0 在IIS Lockdown Undo命令恢復(fù)元數(shù)據(jù)備份之前備份的IIS元數(shù)據(jù)。
如果在正式為用戶提供服務(wù)的機(jī)器上運(yùn)行IIS Lockdown,一定要安排在正常的關(guān)機(jī)維護(hù)期間進(jìn)行。IIS Lockdown開始執(zhí)行修改操作時(shí)會(huì)關(guān)閉Web服務(wù),安排在正常的維護(hù)期間進(jìn)行修改可以避免給用戶帶來不必要的麻煩。
四、嘗嘗后悔藥
只要能夠找到oblt-log.log文件,IIS Lockdown就給你后悔的機(jī)會(huì)。如果你打算讓服務(wù)器采用一種新的IIS Lockdown配置,首先必須撤銷前一次操作,然后再啟動(dòng)IIS Lockdown,按照新的配置運(yùn)行向?qū)АH绻呀?jīng)在前一次加鎖操作時(shí)刪除了不必要的服務(wù),那就必須用控制面板中的添加/刪除程序功能重新安裝服務(wù)。類似地,如果已經(jīng)在加鎖過程中安裝了URLScan,也要用添加/刪除程序功能刪除它。
IIS Lockdown的撤銷操作會(huì)重新啟用在加鎖操作之前備份的元數(shù)據(jù)副本。因此,加鎖操作和撤銷操作之間的所有對(duì)IIS的修改都會(huì)丟失。不過,IIS Lockdown的撤銷操作會(huì)在啟用上次備份的元數(shù)據(jù)之前另行備份當(dāng)時(shí)的元數(shù)據(jù),因此必要時(shí)可以重新執(zhí)行丟失的修改操作。
五、無人值守
要用無人值守方式運(yùn)行IIS Lockdown也很簡單。用記事本打開iislockd.ini,修改[Info]部分的兩個(gè)鍵,使之成為:
Unattended=TRUE
UnattendedServerType=
ServerType的取值從ServerTypesNT4和ServerTypes鍵列出的值選擇,這兩個(gè)鍵也屬于[info]部分。IIS Lockdown 2.1不支持命令行參數(shù),因此修改iislockd.ini是唯一實(shí)現(xiàn)自動(dòng)加鎖的辦法。由于這一局限,如果要針對(duì)幾類不同的服務(wù)器配置使用IIS Lockdown加鎖,就會(huì)遇到一定的困難。要解決這個(gè)問題,可以按照下面的步驟操作:
㈠ 為每一種不同的配置創(chuàng)建一個(gè)專用的目錄。
㈡ 在每一個(gè)目錄的iislockd.ini文件中,啟用無人值守模式,并針對(duì)該配置要求設(shè)定服務(wù)器類型。
㈢ 針對(duì)要加鎖的服務(wù)器類型,進(jìn)入適當(dāng)?shù)哪夸洠缓髥?dòng)IIS Lockdown執(zhí)行無人值守的加鎖操作。
iislockd.ini配置文件的[info]部分中,最后一個(gè)鍵也值得一提,它就是Undo,設(shè)置成TRUE可以撤銷前一次加鎖操作。當(dāng)IIS Lockdown執(zhí)行撤銷操作時(shí),它不會(huì)再返回來按照UnattendedServerType鍵指定的服務(wù)器類型執(zhí)行加鎖操作。
六、定制服務(wù)器模板
如果要?jiǎng)?chuàng)建自定義的服務(wù)器配置模板,并將模板加入到IIS Lockdown的配置清單中,只要修改iislockd.ini文件增加適當(dāng)?shù)男畔⒕涂梢粤恕U?qǐng)按照下面的步驟創(chuàng)建定制的服務(wù)器模板:
⑴ 用記事本打開iislockd.ini文件。
⑵ 檢查一下ServerTypesNT4和ServerTypes鍵中已有的模板名稱,然后加入定制模板的名稱,注意定制模板的名稱不能與已有的模板沖突。用于NT 4.0平臺(tái)的模板名字加入到ServerTypesNT4鍵,其他模板名字加入到ServerTypes鍵。
⑶ 在iislockd.ini文件的現(xiàn)有模板中,選擇一個(gè)最接近定制模板配置的,將它復(fù)制到.ini文件的最后。
⑷ 把模板名稱(即[]括號(hào)內(nèi)的單詞)修改成步驟2中指定的定制模板名稱。
⑸ 將Label鍵的值修改成定制模板的說明文字。
⑹ 根據(jù)服務(wù)器配置需要編輯其他鍵,以啟用或禁用各個(gè)IIS Lockdown修改選項(xiàng)。這些選項(xiàng)對(duì)應(yīng)前文“實(shí)踐應(yīng)用”部分的對(duì)話框選項(xiàng),在此不再贅述。
最后必須指出的是,IIS Lockdown確實(shí)能夠方便地提高Web服務(wù)器的安全性,但不意味著有了IIS Lockdown就可以高枕無憂。安全是一個(gè)不斷發(fā)展和變化的概念,唯有時(shí)刻牢記在心,才能防患于未然。