亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

IIS常見問題及解答以及故障分析

添加時間:2014-6-23 17:40:11  添加: 思海網絡 

解決以下常見問題:
1. 我怎樣對IIS設置進行備份? 
2. 什么工具能幫助我施加一個負載并進行應用程序的強度測試?
3. 當Localstart.asp返回了一個“正在創建中”響應時,發生了什么事情?
4. 能在Microsoft Windows XP Home Edition中安裝IIS或PWS嗎?
5. ISAPI篩選器能在一個單獨的進程空間中運行嗎?
6. 我在哪能獲得這樣的示例代碼--它顯示了如何在使用WebDAV的ASP中編輯文檔?
7. 當我試圖用ASP去訪問一個數據庫時,我得到了一個“拒絕訪問”的回應,這是什么原因?
8. 如何在沒有恢復原始設置的情況下運行IIS鎖定工具? 
9. 在我的intranet環境中,如何處理“server-side include”語法,而不必重新命名所有的文件?
10. 當我從一個客戶工作站進行訪問時,怎樣做才能在IIS 4.0(Windows NT 4.0 Service Pack 6a)中訪問IISADMIN虛擬目錄而不會導致服務器重新啟動呢?
11. 在Windows 2000 Professional中,我怎樣做才能讓域用戶來管理虛擬目錄,以便域用戶能夠創建和管理他們自己的虛擬目錄?
12. 在Windows 2000 Server上,當一個站點需要SSL時,我怎樣才能在相同的站點上使用主機頭?
13. 如何在Microsoft Windows XP Home Edition中安裝IIS 5.0?

問:  我怎樣對IIS設置進行備份? 
 
答:   有多種方法可以用來完成此項工作。在Internet信息服務管理器控制臺(IIS插件)中所設置的屬性和值都被儲存在Metabase.bin文件 中,缺省情況下,這個文件位于“C:winntsystem32inetsrv”目錄中。在IIS 5.0中,你可以從內置的IIS插件中來備份元數據。如果需要進行此工作,請選擇桌面上的計算機圖標然后單擊右健。然后再選擇 “備份/恢復配置”。然后你就可以選擇備份現有元數據設置或者恢復以前的版本。與此相同的選項在MetaEdit 2.2中也可找到。
當你以 這種方式保存了元數據時,你的備份將以.md0文件的格式儲存在C:winntsystem32instrvmetaback文件夾中。當你執行備份時, 文件將使用你所指定的名稱,如Pre-Lockdown.md0。如果你使用相同的文件名創建了多個備份,他們將使用數字逐漸遞增的擴展名,如 Backup.md0,Backup.md1等等。
在你的元數據嚴重損壞的情況下,你將不能啟動IIS。此時,你也不能從IIS插件或 metaedit中執行恢復操作。如果真的發生了類似情況,你就可以通過從備份文件夾中選用最合適的.md0(.md1等等)元數據備份文件來替換 Metabase.bin。如果你的備份文件沒有錯誤,IIS將會立刻啟動。
制作元數據的備份還有其它兩個意義。你可以使用xcopy,scopy或其它復制程序來簡單地復制Metabase.bin文件。你應該先停止Internet服務,以保證你的元數據是最新的并且不在使用狀態中。
最 后,我們還提供了兩個腳本--metaback.vbs和metarest.vbs--它們位于 Inetpub/IISSamples/sdk/admin(如果你在IIS 5.0上安裝了IIS SDK)文件夾中或在IIS Resource Kit/Utility/ADSI Admin s文件夾(如果你安裝了IIS 4.0 Resource Kit)中。這些.vbs腳本使用了一個ADSI命令,它是專門為創建元數據備份而提供的。  
問:什么工具能幫助我施加一個負載并進行應用程序的強度測試?
 
答:   有許多工具可以用來實現這個目的。而且有一些功能完備并且十分有用的你將會發現有相當多的可利用的商業工具可供您利用被完全裝備了,并且這些工具是有 很用的。Microsoft提供了Web Application Stress Tool,在大多數情況下,對于裝載在Web服務器上施加負載來說,并檢查它在一定壓力下是否能夠正常工作這一目的當進行應用程序強度測試時,查看它們的 執行情況,這個工具是足夠用的。預先執行測試是一個好主意,因為在應用程序的設計過程中,問題并不會顯現出來,除非在這個服務器上施加一定負載被加載了- -而且在一個產品成品服務器上你肯定不希望發現任何問題。
Web Application Stress Tool有幾個有用的特性,它可以將您包括當你在通過Web站點中進行的指向并和點擊操作記錄為一個可重新回放的腳本路線時記錄重放腳本的能力。然后當你 遠程監視服務器上的性能監視計數器時,就能同步地在一個或多個客戶端上重新播放這個腳本。另外,你還能指定詳細資料,如用于測試驗證身份驗證吞吐量所使用 的用戶賬號,以及顯示請求和測試計劃日程之間的延遲。
當你在你安裝了Web Application Stress Tool的時時候,它還在計算機上安裝了一個服務,叫名為做“WebTool”的服務。如果你確信當不再需要這個工具時,您可以卸載Web Application Stress Tool。
問:  當Localstart.asp返回了一個“正在創建中”響應時,發生了什么事情?
 
答:   這個“正在創建中”頁面應該出現在從一個遠程的IP地址對默認的Web站點進行訪問的時候。如果你從一個內部的IP地址訪問,IIS在線文檔就會被顯 示。如果你在Internet Explorer中訪問http://localhost,并且未安裝Default.htm或Default.asp,則Web站點將會運行 IISStart.asp。IISStart.asp將檢查下面兩個條件:
你是否已經敲入輸入了“localhost”。
客戶端的IP地址是否與服務器端IP地址相匹配。
在任一種情況下,你都將會被重定向到Localstart.asp,然后打開所需要的頁面。
確定這些文件在你的系統上是存在的,并且在“文檔”選項卡標簽中調用的是IISStart.asp。為了確定這些,你可以嘗試寫一段簡短的.asp網頁,來顯示服務器變量的值,如下:
Your local IP address is 207.46.249.190
The client IP address is 210.82.106.28
如 果IP地址沒有被識別,則可能是因為Localstart.asp頁未被調用。當然,你總是可以通過直接使用http: //localhost/localstart.asp來調用它。如果沒有配置默認文檔,在直接調用Localstart.asp時就可能出現問題。腳本 將返回下述消息:
目前當前,你沒有為用戶設置一個默認文檔。當前所有試圖連接到這個站點的用戶都將收到一個“正在創建中”的頁面。

問:能在Microsoft Windows XP Home Edition中安裝IIS或PWS嗎?
 
答:   Windows XP Home Edition不支持任何版本的IIS,沒有任何可靠的方法能使其運行IIS。Windows XP Home Edition并未設計成一個Web應用程序的開發平臺。在升級到Windows XP Professional后,你就可以在系統上安裝IIS 5.1,以便利用ASP.Net進行開發工作。在Windows XP Professional上的IIS 5.1是一個全功能的Web服務器端,但是它只能建立10個并發連接,這是因為它只是一個工作站操作系統而不是服務器平臺。Windows XP Home Edition還有一些與Windows XP Professional相同的其它限制,因為它也是一個工作站操作系統而不是服務器操作系統。大體上,你會發現,在Windows 2000 Professional和Windows 2000 Server或Advanced Server上的IIS 5.0中,這些差別是相類似的。無論怎樣,對于使用.NET Framework來開發基于Web 的應用程序來說,Windows XP Professional才是一個優秀的環境。   
問:ISAPI篩選器能在一個單獨的進程空間中運行嗎?
 
答:  為 與Web服務器協同工作所開發的應用程序都有著特殊的要求。例如,你不能從一個URL中調用一個Notepad.exe實例并且希望在客戶端的系統上看到 一個記事本窗口。為了從IIS中與請求進行交互(并不是CGI),程序必須使用ISAPI編寫。ISAPI是Internet服務器應用程序接口 (Internet Server Application Programming Interface)的縮寫。有兩種可執行的ISAPI:擴展和篩選器。
可以從一個URL中直接調用ISAPI擴展,如http: //localhost/myisapi.dll。假設你已經在目錄上配置了IIS,允許腳本和可執行程序,并且用戶有執行NTFS的許可權限,則dll 將會運行。IIS允許你指定應用程序是在進程內(作為Inetinfo部分)運行還是在進程外(作為IIS 4.0上的MTX部分,或者作為IIS 5.x部分的dllhost)運行。當一個應用程序在進程外運行時,Inetinfo就從問題中被隔離出來。如果應用程序出現故障,Web服務器也會出現 故障。
ISAPI篩選器又是另一個內容。ISAPI篩選器能改變進入或離開IIS的數據流。因此,ISAPI篩選器有著非常強大的功能,能用來實現客戶日志、驗證或更改數據流。對IIS 5.0來說,在ISAPI篩選器中實現的特性包括數據壓縮、摘要驗證和URLScan。
因 為篩選器在IIS中扮演了一個如此重要的角色,所以它們總是作為Inetinfo部分運行在過程內。因此,正確的ISAPI篩選器結構對服務器的正常運行 是必備的。你可能希望與Microsoft 產品支持服務一起工作來確定問題,因為處理這種例外可能是一個較大的挑戰。
基于這個考慮,有兩個 新技術可以使生活更加輕松,IIS 6.0就是其中的一個。由于它是一個新的體系結構,所有的ISAPI篩選器都在進程外運行。這將使Web 服務器從一個捉摸不定ISAPI篩選器中隔離開來,但這實際上并沒有真正解決問題。為了解決這個問題,你可以考試使用.NET語言在ISAPI方面做一些 工作。通使用C++設計ISAPI篩選器相比,使用.NET實現相同的功能要大為簡單。   
問:我在哪能獲得這樣的示例代碼--它顯示了如何在使用WebDAV的ASP中編輯文檔?
 
答:   從IIS上的腳本中使用WebDAV的最好方法就是使用ASP.Net的WebClient類。如果你正在使用Windows XP或Windows Server 2003,WebDAV功能就是這個操作系統的一部分。這就允許你在一個Web服務器上使用HTTP引用一個文件,就像使用一個UNC路徑名稱一樣。例 如,你可以用NET USE * http://servername/directory來映射一個驅動器,然后通過使用驅動器符號來訪問這個位置。另一方面,你還可以創建一個COM對 象,它是一個WebDAV的客戶端。你可以使用這個對象向IIS 5.x或IIS 6.0傳遞WebDAV動詞。
另外,如果你以WebDAV 為關鍵詞搜索MSDN,你將會找到一些例子,它們教你如何使用XML來為Exchange和其它Microsoft服務器構造WebDAV的查詢。在 Microsoft Exchange 2000 Server SDK中有一個WebDAV的示例應用程序。   
問:當我試圖用ASP去訪問一個數據庫時,我得到了一個“拒絕訪問”的回應,這是什么原因?
 
答:   有一個名為“Filemon”的優秀免費工具,你可以從Sysinternals.com上獲得它。你可以使用Filemon來快速診斷出絕大多數的 權限問題,因為它能實時顯示服務器上的全部文件權限、調用的過程名稱及訪問的結果。因此,無論隱藏多么深的嵌套包含或多么模糊的臨時索引,任何“拒絕訪 問”的消息都能被輕松識別。
當一個在先前的操作系統上能夠正常工作的應用程序在升級后出現問題時,它就無能為力了。但是,這種類型的問題還 是 有啟發意義的。IIS 4.0和IIS 5.0之間的一個差異就與COM和COM+之間的一個差異有關系。在IIS 5.0中,當一個COM+對象代表用戶訪問文件時,它的默認行為就是使用用戶的安全上下文環境來完成這些工作。這在IIS 4.0中并不算什么事情。因此,當從IIS 4.0向IIS 5.0遷移包含COM的應用程序時,你可能需要向文件提供用戶權限,而在IIS 4.0中并不需要。雖然跟以前相比這有些不方便,但是它在提高應用程序安全性設計方面的確是一個進步。即使是不能使用定制的COM對象去訪問數據庫, COM在本地的IIS組件中還是得到了廣泛的應用。
這里有一個能夠幫助您理解這種需求的例子,比如,你需要為正在創建數據庫的用戶授予請求使用Access臨時文件夾的權限。更多的信息請查閱Microsoft Knowledge Base中的Q210457和Q271071。   
問:如何在沒有恢復原始設置的情況下運行IIS鎖定工具? 
 
答:   IIS鎖定工具非常有效。這個工具允許你輕松、顯著地增加服務器的安全性。一旦運行了這個工具,它就將其活動的歷史記錄儲存到一個文件中,這個文件的 位置是%systemdrive%%systemdir%system32inetsrv。你將在下面的文件中找到這個信息:
Oblt-rep.log
Oblt-once.md0
Oblt-mb.md0
Oblt-undone.log也可能是最新的。
如果你刪除了這些文件,向導就會啟動,就好像IIS Lockdown tool并未被運行一樣。重復這個過程并沒有什么風險。在你這么做之前,一定要制作一個Metabase.bin的副本。
因為當它第一次運行的時候,這個過程將會讓你運行鎖定工具,就好像它從未被運行過,但并不會“解開”或反轉鎖定工具進行了一些設置,所以這個過程應該可以正常工作。

問:在我的intranet環境中,如何處理“server-side include”語法,而不必重新命名所有的文件?
 
答:   IIS 4.0和IIS 5.0提供了這樣一個選項,它不需要你更改所有文件的擴展名。ASP處理器也能處理服務器端的include語法,因此沒有必要使用.stm或者是. asp擴展名。那么,這對你又有什么幫助呢?通過在應用程序配置中創建一個條目,你可以將.htm 文件映射為由asp.dll處理,這樣,哪些帶有.htm擴展名的文件就將由asp.dll來處理。通過使用這種方式,那些含有includes的. htm 文件不用重命名就能被處理。現在你可能在考慮:“這會不會導致我所有的.htm文件都像腳本一樣被處理,從而降低系統的性能呢?”事實上,在IIS 4.0中,這的確是一個問題;但是,在IIS 5.0中,性能問題并不像你想象中的那么大,并且在IIS 5.1中,甚至會更好。IIS 5.0有一個特性叫做“less ASP”(無腳本ASP)用來處理這個特殊的問題。如果一個不包含腳本的文件被提交到ASP處理器,它就不會被解析,只是簡單地作為靜態頁面發送出去-- 在這種特定的情況中是一個有用的特性。   
問:當我從一個客戶工作站進行訪問時,怎樣做才能在IIS 4.0(Windows NT 4.0 Service Pack 6a)中訪問IISADMIN虛擬目錄而不會導致服務器重新啟動呢?
 
答:  因為IIS 4.0是在Windows NT 4.0 Service Pack 6a(SP6a)之前發布的,所以一定要在安裝完IIS 4.0后重新安裝SP6a和所有必需的即時修補程序。  
問:在Windows 2000 Professional中,我怎樣做才能讓域用戶來管理虛擬目錄,以便域用戶能夠創建和管理他們自己的虛擬目錄?
 
答:   你需要做的最后事情就是將域用戶加入到Power Users組中,因為這樣就可以為域中任何一個擁有用戶帳號的人賦予經過提升的權限。如果你信任域中的每一個成員都可以對系統進行很好的管理,這樣做不會 有什么問題,但是對于大多數計算機用戶來說,這樣的信任級別是不合適的。
為了在IIS中創建一個虛擬目錄,用戶需要有管理員權限。之所以這樣設計,是因為任何能在Web站點上創建虛擬目錄的人也能對虛擬目錄進行刪除、重命名、重定向或其它管理工作。
認 識到這點后,你可能希望不為用戶提供管理員身份就能獲得類似的權力,在IIS插件中有一個特性(“操作員”標簽),能讓你指定一個Web站點操作員(不是 管理員),為Web站點創建虛擬目錄。這個特性只有在Windows 2000 Server、Windows 2000 Advanced Server和Windows 2000 Datacenter Server中是可用的。相同的特性也可應用于IIS 4.0。
另外,你 還 可以在IIS Web站點內部創建一個虛擬目錄,并將它映射到%systemroot%%systemdir%inetsrviisadmin。你應該保護這個虛擬目錄 的安全,否則那些訪問這個站點的人就能夠管理這個Web站點。還要注意,這只有在Windows 2000 Server,Windows 2000 Advanced Server,和Windows 2000 Datacenter Server (以及IIS 4.0)上面是可行的。
當你發現你自己根據操作系統的限制將擴展權限授予了其他人或別的工作組,并且試圖將你的工作站當作服務器時,你可能需要安裝一個服務器操作系統。

 
問:在Windows 2000 Server上,當一個站點需要SSL時,我怎樣才能在相同的站點上使用主機頭?
 
答:  讓我們回顧一下SSL和主機頭的問題,因為對IIS來說,它的問題一直在常見問題解答的頭五個中。
當 客戶發出一個到IIS服務器的HTTP連接請求時,這個客戶的請求包括一個叫做HOST:的字段,它包括了URL中的Web服務器請求。例如,如果你的請 求將http://www.microsoft.com作為目的地,則瀏覽器將其發送到服務器,并一同提交HTTP頭中的其它信息,HOST: http://www.microsoft.com。因為此字段的名稱是“HOST”,并且它在客戶的HTTP頭中,所以我們把它稱作“主機頭”。
如果客戶請求建立一個SSL連接,主機頭字段仍然會包括在請求當中,只不過它被包含在這個包的加密部分里(在應用層中),因此Web服務器無法對其進行解密,以確定應該將請求發送到哪一個Web站點。
這就產生了一條定律:當使用SSL時,不能使用主機頭來作為識別一個Web站點的主要手段。
如 果你確實想使用帶有主機頭的SSL,那么會發生什么情況呢?考慮一下這個情況。你有兩個Web站點,其中一個不使用主機頭,另一個則使用。兩個站點都使用 相同的IP地址,并且都配置成使用證書。當你利用SSL訪問使用主機頭的站點時,第一個Web站點會對此做出響應。之所以發生這種情況是因為:我們使用 IP地址來識別你希望用來建立連接的站點,而不是主機頭。因為第一個站點對IP地址和HTTPS有反應,所以它接受了請求。如果第一個Web站點需要主機 頭,并且在不同的IP地址上,或者沒有證書,那么連接將會失敗。
因此,請考慮你的配置,在你需要SSL的相同站點上,只要不使用主機頭,你就可以做任何想做的事情。
問:如何在Microsoft Windows XP Home Edition中安裝IIS 5.0?

首 先需要說明一點,就是這種做法可能會有風險,因此在你實際操作之前,最好明確你的行為會帶來什么后果。并且經過這樣處理安裝的IIS在運行上可能存在某種 未知的缺陷。還有,同Professional版的XP一樣,在Home版上運行的IIS也有10個并發連接的限制。在同一個時間內,最多只能有10個人 使用你提供的IIS服務。如果你還想繼續,那么就往下看吧。
準備條件:一張Windows 2000 Professional的光盤(假設光驅是F盤)。
首 先在運行中輸入"c:windowsinfsysoc.inf",系統會自動使用記事本打開sysoc.inf這個文件。在sysoc.inf中找到" [Components]"這一段,并繼續找到類似"iis=iis.dll,OcEntry,iis.inf,hide,7"的一行字,把這一行替換為 "iis=iis2.dll,OcEntry,iis2.inf,,7"。之后保存并關閉。
把Windows 2000 Professional的光盤插入光驅,同時按下Shift鍵禁止光驅的自動運行。在運行中輸入"CMD"然后回車,打開命令行模式,在命令行下輸入下列的兩條命令,在每一行命令結束后回車:
  Expand d:i386iis.dl_ c:windowssystem32setupiis2.dll
  Expand d:i386iis.in_ c:windowsinfiis2.inf
“Web 匿名用戶”帳戶密碼的位置
問:我們希望向“Web 匿名用戶”帳戶授予從其他系統上讀取信息的訪問權;可是,我們不知道該帳戶的密碼。怎樣才能獲得該密碼呢?
答: IUSR_ 帳戶就是“Web 匿名用戶”帳戶,它是在 IIS 的安裝過程中創建的。該密碼存儲在本地 SAM 中(對于 Windows 2000 域控制器而言存儲在 Active Directory 中),Metabase 中也存儲著該密碼。由于該密碼存儲在 Metabase 中,您就可以使用一個 .vbs 腳本將 IUSR 和 IWAM 這兩個帳戶的密碼提取出來,方法如下:
Dim IIsObject
Set IIsObject = GetObject ("IIS://localhost/w3svc")
W.Echo "AnonymousUserName = " & IIsObject.Get("AnonymousUserName") & vbCrlf & _
"AnonymousUserPass = " & IIsObject.Get("AnonymousUserPass") &vbCrlf &vbCrlf &_
"WAMUserName = " & IIsObject.Get("WAMUserName") & vbCrlf & _
"WAMUserPass = " & IIsObject.Get("WAMUserPass")
Set IIsObject = Nothing
注: 通過此腳本可以顯示在主屬性級別上針對 Web 服務設置的 IUSR 和 IWAM 帳戶密碼。如果您已將匿名驗證配置為使用另外一個用戶帳戶來訪問網站或目錄,那么您必須相應地修改該腳本,以反映所做的更新。
如何在不同計算機之間移動 Metabase
問: 有沒有文檔資料記錄 IIS 4.0/5.0 中針對不同計算機的密鑰?如果我需要將 Metabase 從一臺計算機移到另一臺計算機上,應該采用哪種方法?我讀了 IISSync 實用工具的說明文檔,但不能解決我的問題。我在找一種類似于 MergeINI 文件這樣的工具。
答:IIS 4 和 IIS 5 均使用 %systemdir%/system32/inetsrv 中的 metabase.bin 來存儲 IIS 配置信息。Metabase 的密鑰是針對安裝 IIS 的計算機設置的,所以您不能簡單地在不同系統間移動 Metabase。正如 2001 年 11 月這一期的 IIS 有問必答專欄 (http://www.microsoft.com/technet/columns/insider/iisi1101.asp) 中指出的那樣,您可以使用 Metaedit 2.2 (http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe) 從 IIS 4 或 IIS 5 中導出 Metabase,然后再將這些設置導入另一個系統。導入后仍需確保導入系統中的設置正確無誤。例如,如果您的 Web 站點主目錄位于驅動器 D 上,而您使用 Metaedit 將 Web 站點導入一個新系統中的驅動器 E 上,就會導致 IIS 找不到站點內容。
另一個可用于遷移 Metabase 的實用工具是 IIS Export。這是一個非常實用的遷移工具,位于以下網址:http://www.adsonline.co.uk/IISExport。這個共享件實用 工具可以復制文件和權限,并將 Metabase 存儲在一個數據庫中,以便將配置信息應用到多個系統中。
最后,還可以借助 IIS Migration Tool。該實用工具屬于 Windows 2000 資源工具包的一部分,可以從 http://www.microsoft.com/serviceproviders/downloads/migration_toolsP65238.asp 下載。該工具可以通過端口 80 傳送 Metabase、文件和權限,但最多傳送 4GB 的數據。盡管不支持它作為資源工具包的一個實用工具,但該工具還是非常有用的。
可用于排除 SMTP 服務故障的資源
問:我想詢問有關 IIS 5.0 的 SMTP 服務的信息。我使用默認設置無法發出郵件,請問如何解決這個問題?
答:IIS 5 中的 SMTP 服務是 IIS 4 SMTP 服務的增強版本。您可以在很多地方找到非常有用的信息。除了隨服務器安裝的聯機幫助文件,您還可以查閱以下文章:
How to Configure the IIS SMTP Service to Relay SMTP Mail(如何配置 IIS SMTP 服務以轉發 SMTP 郵件,Microsoft 知識庫文章 Q230235)
Setting Up the SMTP Mail Service in Windows 2000 - Part 1(在 Windows 2000 中設置 SMTP 郵件服務 - 第一部分,http://www.asptoday.com/content/articles/20000306.asp)
但 我個人更愿意查閱由微軟出版社出版的 Running Microsoft Internet Information Server(運行 Microsoft Internet Information Server)一書中相關的一章。本書對所有 IIS 管理員都是必讀的,盡管其中介紹的是 Internet Information Server 4,但大量篇幅都適用于 IIS 5,包括涉及 SMTP 的那一章。您可以在 Microsoft TechNet 網站上找到這一章,網址是 http://www.microsoft.com/technet/prodtechnol/iis/iis4/deploy/confeat /mail.asp。
最后,還可以參考 Microsoft 培訓課程中有關如何配置 SMTP 服務的一個模塊,課程名稱為 2295a – Implementing and Supporting Microsoft Internet Information Services 5.0(實施和支持 Microsoft Internet Information Services 5.0)。
如何在系統帳戶環境之外運行應用程序
問: 我的 IIS 服務器可以運行一個自定義的 mpeg 播放應用程序。該應用程序可以將 mpeg 數據進行流式處理,具體是使用一塊特殊的卡將數據解碼并以流式輸出到投影機上。當 mpeg 源位于本地磁盤上時,這個進程可以正常運行。但現在我需要從 Unix 服務器上提取 mpeg。當 IIS 加載 mpeg 播放應用程序時,總是以 SYSTEM 身份執行加載,但此身份無法訪問 NFS(Unix 服務器)共享資源。我需要讓 IIS 在啟動 mpeg 播放應用程序時使用 SYSTEM 以外的一個用戶身份。我已經試過更改 IIS 服務使用的用戶帳戶,但這樣一來問題更多了。如何才能解決這個問題,我到底錯在哪里呢?
答: 任何進程都總是在帳戶的“上下文”中運行的。正如您指出的那樣,INETINFO 是由 SYSTEM 帳戶所啟動的進程,所以 Inetinfo 是在 SYSTEM 帳戶上下文中運行的。SYSTEM 帳戶不屬于典型的用戶帳戶。SYSTEM 帳戶的一個特點之一就是不具備網絡訪問權,因此,以 SYSTEM 身份運行的應用程序無法訪問網絡資源。某些情況下,可以對服務進行配置,讓它作為由一個指定的用戶帳戶啟動的進程運行,但 IIS 又不支持此項配置功能。
最理想的做法就是讓 IIS 服務器中的應用程序切換“上下文”,使用正調用該應用程序的用戶的安全身份驗證憑據(有關詳細信息,請參考以下兩本書:由微軟出版社出版的 Designing Secure Web-Based Applications for Microsoft Windows 2000(為 Microsoft Windows 2000 設計安全的基于 Web 的應用程序)及 Addison Wesley 出版的 Programming Windows Security(Windows 安全性編程)。
不過,您還可以通過將應用程序配置為在進程外 運行來解決問題。您可以在 IIS 管理單元的 Web 站點或目錄屬性中配置該設置。在 Internet Information Server 4 中,需要選中“在單獨的內存空間中運行(獨立進程)”復選框;在 IIS 5 中,需要將應用程序保護級別設置為“中”或“高”。一經配置,應用程序將在 IWAM_ 帳戶而不是 SYSTEM 帳戶的上下文中運行。IWAM 是一個普通的用戶帳戶,您可以為其分配訪問遠程網絡資源的權限,這樣在此環境中運行的應用程序就可以訪問這些資源了。
作為多個站點的主機時推薦使用的文件夾結構
問: 在選擇主目錄和主目錄的物理文件夾結構時需要注意哪些事項,特別是在作為多個站點的主機時需要注意什么?如果有 A 公司、B 公司或更多公司,它們是應位于 Inetpub 文件夾下還是 wwwroot 之下?換言之,wwwroot 是所有 Web 站點的根目錄還是只是安裝的默認 Web 站點的根目錄?這對訪問 s 等文件夾有何影響?
答:以下幾點說明可以澄清上述疑問。安裝 IIS 后,系統的目錄結構將如下所示:
Drive Root
Inetpub
Admins
Ftproot
Iissamples
s
Wwwroot
因為看到 wwwroot 名稱中含有“root”,人們往往就會推斷它是存儲所有 Web 內容的位置,但是,事實并非如此。該文件夾只是“默認 Web 站點”的主文件夾,您應將該名稱視為與“DefaultWebRoot”等同。
故此,您最好將新的 Web 站點放入默認 wwwroot 文件夾之外的文件夾中。如果不這樣做,所有 Web 站點內容都只能從默認 Web 站點中讀取。另外,為安全起見,不應將網站內容放在系統驅動器中。
還 應特別注意 s 文件夾。默認情況下,s 文件夾的訪問權限設為每個用戶 - 完全控制,并允許執行腳本,所以必須使該文件夾的安全控制更嚴格一些。我建議將 s 文件夾重新定位到新的 webroot 所在的驅動器,并對其重命名。這樣如果有人想探查服務器中有沒有名為“s”的文件夾,并在找到此文件夾后試圖上傳負載,那么這種攻擊行為將被 挫敗。 [SplitPage]
用 IIS 設置并路由子域
問:在 W2K 服務器上,怎樣用 IIS 5.0 創建子域?如果我讓 BerAult.Com 在根 web 站點,并希望讓 Technical.Bertault.com 帶我到一個新文件夾或者子站點,應如何設置它?我所能找到的全部信息都是關于如何將 Berault.com/technical 配置成 URL 的。
答:您的 web 站點體系結構及其與 DNS 的集成對于您的 IIS 安裝來說當然是一個很關鍵的部分。正如您說的那樣,為 Berault.com/technical 配置一個站點很容易,因為它實際上就是位于 Beralut.com 站點內的一個文件夾或虛擬目錄。
而 將 technical.bertault.com 配置為一個“子站點”則是另外一回事,這一點您已知道了。按照設計,URL 的構成是這樣的:http://domainname.com 應是 http://hostname.domainname.com 的父級域。這是 DNS 的設計使然,DNS 要求 URL 中使用這種名稱空間結構。不過,就一個 web 服務器而言,它們是兩個完全不同的概念。IIS 并不認為它們之間有什么關系。
因此,您應將 technical.berault.com 作為一個完全不同的 web 站點來看待。在 DNS 中,您可以為 technical.berault.com 添加一條 A 記錄,此記錄給 technical.berault.com 分配一個與 berault.com 相同的 IP 地址。然后,您可以創建一個 ASP 頁,用它檢查傳入的 URL 并相應地路由請求。如果您想讓“子域”路由到您主 web 站點內的一個文件夾,這一點將非常有用。或者,您也可以創建一個全新的 web 站點,用一個新的 IP 地址(它必須在 DNS 中配置)或用 IIS 內的主機標題來標識它。
您可以為您的“子域”創建一個新的 web 站點,使其主文件夾作為其父級域內的一個位置。雖然這樣做是可行的,但我建議您不要這樣做,因為這樣您會發現同一內容將有兩個管理界面,而且沒有辦法使它們保持同步。這樣會導致對配置和安全問題進行故障診斷時出現困難。
屏蔽 HTTP 標頭(內容-位置)中的 IP 地址
問:在對 IIS 5 服務器進行端口掃描時,它返回以下信息:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://192.168.0.44/Default.htm
Date: Tue, 19 Feb 2002 20:19:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16

問題是,Content-Location(內容-位置)標頭暴露了 web 服務器的內部 IP 地址。這就為黑客大開了方便之門。是否有辦法讓 IIS 在掃描過程中不返回服務器的 IP 地址?
答:有,您可以配置 IIS 4 和 IIS 5,使 Content-Location 字段返回 URL 而非 IP 地址,如下所示:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://homer.test.bh.tm/Default.htm
Date: Tue, 19 Feb 2002 20:27:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16

要做到這一點,您必須將 UseHostName 這一值添加到 Metabase 中的 W3SVC 鍵上。最簡單的辦法是使用默認情況下安裝在 InetpubAdmins 中的 ADSUTIL 程序,如下所示:
adsutil set w3svc/UseHostName True

然后,您必須重新啟動 web 服務。有關更多信息,請參閱 Microsoft 知識庫文章 Q218180。
更改 CGI 腳本超時時間
問:我們每天都要運行一個 CGI 腳本。開始時它運行一會兒,接著我們就會收到一條消息說“超過了 CGI 的時間限制”。CGI 的時間限制是多長,是否有辦法改變它?
答: IIS 確實有一個與 CGI 進程關聯的超時限制,默認設置為 300 秒(5 分鐘)。此設置可以在用戶界面上更改。此設置只在 WWW 服務的 Master 屬性中可以看到,所以不易找到它。打開“IIS 管理單元”,右鍵單擊您的服務器并選擇“屬性”。在選定 WWW Service Master Properties(WWW 服務主屬性)后,單擊 Edit(編輯)。單擊 Home Directory(主目錄)選項卡,然后依次單擊 Configuration(配置)選項卡、Process Options(進程選項)選項卡,如圖 1 所示。在這里可以看到 CGI 腳本超時設置。
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
圖 1 Application Configuration(應用程序配置)中的 Process(進程選項)選項卡
從 IIS Lockdown 工具中提取 URLScan
問:我們希望在服務器上安裝 URLscan,但又不想運行 IISLockdown 工具。以前,Microsoft 是分別提供這些工具的,而現在它們都在同一個安裝中。怎樣才能既安裝 URLScan 又不運行 IISLockdown 呢?
答: 您剛才說過,Microsoft 以前是分開發行 IIS Lockdown 工具和 URLScan 的。IIS Lockdown 工具的 2.1 版在更新之后包含了 URLScan 2.0。在絕大多數情況下,IIS Lockdown 向導應在 IIS 服務器上運行。這樣將執行若干個重要步驟以加強您服務器的安全,并將配置和安裝 URLScan ISAPI 篩選器。
可以從 IIS Lockdown 安裝包中提取 URLScan 組件,并在不運行 IIS Lockdown 的情況下安裝它。這將為您提供 URLScan 的 2.0 版本,而不是它的 1.0 版;在本文脫稿時,1.0 版仍可以作為一個單獨的可下載軟件從 Microsoft 的下載頁和通過許多 Microsoft 知識庫文章來下載。
如想從 IISLockdown 2.1 中提取 URLScan,請首先下載 IISLockdown 2.1。然后在該工具的位置打開一個命令提示窗口并鍵入以下命令:
iislockd.exe /q /c /t:c:lockdown_files

此命令將從安裝包中提取這些文件。然后,您就可以將 URLScan.dll 安裝為一個 WWW Master 屬性級別的 ISAPI 篩選器。確保存放 URLScan.ini 文件的位置與存放 URLScan.dll 文件的位置相同。
您 很可能需要為您的服務器手動配置 URLScan.ini 文件。我們建議,只有經驗豐富的管理員才可以編輯 URLscan.ini 文件。請閱讀從 IIS Lockdown 實用工具中提取的 URLScan.doc 文件中的使用說明。運行 IISLockdown 工具向導來安裝 URLScan 的好處之一是,它為您配置了 URLScan.ini 文件。
使用 URL 中的參數重定向請求
問:是否有辦法使用 URL 中的參數作為重定向的一部分,而不使用 ASP?換言之,當人們訪問我們的站點 www.oursite.com?A=1 時,我們想將此請求轉發到 www.theirsite.com?A=1 站點。
答: 在 web 站點、目錄、虛擬目錄或文件的屬性中,您可以將文件的位置指定為“本地”、在“另一系統上”(帶一個 UNC 路徑名),或者將請求重定向。如果您選擇重定向請求,您可能要用到鮮為人知但功能十分強大的重定向變量。就您的情況而言,您需要在 Redirect To(重定向至)文本框中輸入 http://www.theirsite.com$P。$Q 替換變量將全部問號及其后的參數附加到重定向請求后。
還有許多其他的重定向變量使您能夠不用編寫代碼就可以執行替換和其他操作。您可以在 IIS 聯機幫助文件中的 Redirect Reference(重定向參考)部分找到更多有關重定向參數方面的信息。
[SplitPage]
能否在 Windows XP Home Edition 上安裝 IIS 或 PWS?
問: 我曾在某處讀到過,不能在運行 Windows XP Home Edition(家庭版)的計算機上運行/開發 ASP.Net 應用程序。是否有辦法在運行 XP 家庭版的計算機上安裝 IIS 或 PWS?我有 VS.Net 專業版,但尚未找到用 ASP.Net 進行開發的方法。
答: Windows XP Home Edition(家庭版)不支持 IIS 的任何版本。據我所知,沒有任何可靠的方法能讓它運行 IIS。Windows XP Home Edition 不適合用作基于 Web 的應用程序的開發平臺。升級到 Windows XP Professional 后將允許您在系統上安裝 IIS 5.1,這樣您就可以用 ASP.Net 進行開發了。Windows XP Professional 上的 IIS 5.1 是一個全功能的、強大的 Web 服務器,但僅限于使用 10 個同時連接,因為 Windows XP Professional 是一個工作站操作系統而非服務器平臺。在將 Windows XP Professional 用作客戶端操作系統而非服務器操作系統時,還有其他幾點限制。大體上說,這兩者的區別,就是將 IIS 5.0 安裝在 Windows 2000 Professional 上時與安裝在 Windows 2000 Server/Advanced Server 上時您會看到的那些區別。但盡管如此,在使用 .NET 框架開發基于 web 的應用程序時,Windows XP Professional 仍是一種優秀的開發環境。
ISAPI 篩選器能否在獨立的進程空間中運行?
問: IIS 5.0 允許 ISAPI 擴展在獨立的進程空間運行。ISAPI 篩選器是否也能在獨立的進程空間運行呢?在我們安裝一個包含 ISAPI 篩選器的軟件后,我們一個客戶的 IIS 服務器每過兩三天就重啟一次。最后一次故障轉儲顯示 inetinfo.exe 因為“除以 0 的錯誤”而崩潰,但它在 ISAPI 篩選器中沒有崩潰。如果能在獨立的進程空間運行 ISAPI 就好了,這樣它就不會與 inetinfo.exe 沖突。
答:再重述一次,針對在 web 服務器上運行這一目的而編寫的程序有特定的要求。例如,您不能通過 URL 來調用 Notepad.exe 的一個實例并期望在客戶端系統上看到記事本窗口。為讓一個可執行文件(不是 CGI)與來自 IIS 的請求交互,需要用 ISAPI 來編寫它。ISAPI 的意思是“Internet 服務器應用程序編程接口”。ISAPI 可執行文件分兩類--擴展和篩選器。
ISAPI 擴展可從像 http://localhost/myisapi.dll 這樣的 URL 直接調用。假定您將 IIS 配置為允許執行目錄上的“腳本和可執行文件”而且用戶具有 NTFS“執行”權限,則該 dll 將可以運行。IIS 允許您指定讓應用程序在進程中運行(作為 inetinfo 的一部分來運行)還是在進程外運行(在 IIS 4 上作為 MTX 的一部分運行,或在 IIS 5.x 上作為 dllhost 的一部分運行)。當一個應用程序在進程外運行時,inetinfo 就會與您所說的那類問題隔離開,不受其影響。如果應用程序失敗,則 web 服務器也將失敗。
而 ISAPI 篩選器則全然不同。ISAPI 篩選器能夠修改傳入和傳出 IIS 的數據流。所以,它們有強大的能力,可用來實現自定義的日志記錄、身份驗證,也可用來修改數據流。IIS 5 的 ISAPI 篩選器中實現的功能包括數據壓縮、簡要身份驗證和 URLScan。
因為篩選器在 IIS 中扮演著這樣一種重要角色,所以在設計上,它們總作為 inetinfo 的一部分在進程中運行。因此,如您所知,正確構造 ISAPI 篩選器對于服務器的正常運行來說是十分重要的。我的建議是,您可以讓 Microsoft 產品支持服務與您一道找出問題所在,因為這類異常的診查工作可能會相當難。
就這一問題,有幾種新技術可能會使您的工作略輕松一點。一是期望使 用 IIS 6。由于它采用新的體系結構,所有 ISAPI 篩選器都在進程外運行。這樣可讓您實現將 web 服務器與反復無常的 ISAPI 篩選器隔離起來的目標,但并沒有真正解決問題。為最終解決問題,請評估一下 .NET 語言在實現 ISAPI 篩選器方面的能力。我估計您會發現,用 .NET 實現同樣的功能,將比采用 C++ 語言的標準 ISAPI 篩選器設計要簡單得多。
使用 WebDAV 從 ASP 編輯文檔的代碼示例
問:在哪里能找到使用 WebDAV 從 asp 編輯文檔的代碼示例?
答: 在使用 IIS 上的腳本中的 WebDAV 時,您最有可能使用的是 ASP.Net 的 WebClient 類。如果您在使用 Windows XP 或 Windows .NET 服務器,則操作系統中已包含 WebDAV 功能。這使您可以像使用 UNC 路徑那樣,用 HTTP 來引用一個 web 服務器上的文件。例如,您可以用 NET USE * http://servername/directory 命令來映射一個驅動器,然后用該驅動器符號訪問此位置。或者,您也可以創建一個用作 WebDAV 客戶端的 COM 對象。您可以用此對象向 IIS 5.x 或 IIS 6.0 發出 WebDAV 操作命令。
另外,如果您在 MSDN 上搜索 WebDAV,您會找到很多關于如何用 XML 為 Exchange 和其他 Microsoft 服務器創建 WebDAV 查詢的示例。在 Microsoft Exchange 2000 Server SDK 中有一個 WebDAV 示例應用程序。
嘗試用 ASP 訪問數據庫時“訪問被拒絕”
問:我們在 使用 ASP 訪問一個數據庫,但當我們向數據庫中寫入新內容時,總是出現“訪問被拒絕”這一結果。在運行 NT 4.0 工作站和運行與之相當的 web 服務器時 ASP 頁沒有問題,但升級到裝有 IIS 5.1 的 Windows XP Professional 后,它就無法使用了。問題好像出在某些目錄的訪問權限上,但我們怎樣才能確定問題究竟在何處呢?
答:有一種極棒的免費實用工具,叫做 Filemon,可以到 http://www.sysinternals.com 上找到它。在我講授 IIS 時,我讓學生們將此工具保存在軟盤上,不管到哪里都隨身帶著它。我并不完全是在開玩笑。您可以用 Filemon 快速診斷出多數權限問題,因為它可以實時顯示服務器上被訪問的所有文件、調用進程的名稱以及訪問結果。這樣,對于任何“訪問被拒絕”消息,不管問題在嵌套 的 include 中埋多深,也不管臨時索引有多模糊--都可輕松找出。
如果某一應用程序在一個操作系統上可以使用,而在操作系統升級后它 無法工作了,這會讓人很沮喪。不過,這類問題往往都很有啟發性。IIS 4 和 IIS 5 之間存在的一種差異與 COM 和 COM+ 之間的差異有關。在 IIS 5 中,當一個 COM+ 對象代表用戶訪問文件時,其默認行為是使用用戶的安全上下文進行訪問。在 IIS 4 中則不是這樣。所以,當您將包含 COM 的應用程序從 IIS 4 遷移到 IIS 5 時,您可能需要提供針對這些文件的用戶權限,盡管在 IIS 4 中不要求提供這些權限。有時這可能不大方便,比如您所遇到的情況;但是,在應用程序的安全設計方面,這確實是一項改進。盡管您可能沒有使用自定義 COM 對象訪問數據庫,但 COM 在本機 IIS 組件中的應用很廣泛。
體現這一要求的場合,是在需要授予對 Access 使用的臨時文件夾的權限以及需要向創建數據庫請求的用戶授予權限時。有關更多信息,請參閱 Microsoft 知識庫文章 Q210457 和 Q271071。
如何在不恢復原設置的情況下運行 IIS 鎖定工具
問:我們在我們的服務器上運行了“IIS 鎖定”工具,它在對系統執行一些基本的安全設置修改時看起來很成功。但在運行此工具后,我們又給服務器添加了一些功能和內容,然后想再次運行此工具。然而,當我們啟動 IIS 鎖定向導時,它顯示:
如果您的瀏覽器不支持內嵌框,請單擊此處在單獨的頁中查看。
在這種情況下,我們不想還原到以前的設置,因為這樣做會讓我們丟掉存儲在元數據庫中的、對 IIS 配置所做的更改。我們怎樣才能再次運行 IIS 鎖定工具而又不用先執行還原呢?
答:在我看來,IIS 鎖定工具是 Microsoft 真正的壓軸戲。如您所說,此工具讓您能夠輕松而又顯著地增加您服務器的安全性。運行此工具后,它將其操作歷史存儲在位于以下位置的一個文件中:system32inetsrv。您將可以在以下文件中找到此信息:
- Oblt-rep.log
- Oblt-once.md0
- Oblt-mb.md0

如果您運行了上面顯示的“撤銷”任務,則還會有一個 Oblt-undone.log 文件。
如果您刪除這些文件,則將啟動向導,好像沒有運行過 IIS 鎖定工具一樣。據我所知,重復執行此過程沒有什么風險。但在這樣做之前,一定要為 metabase.bin 制作一個副本。
因為這一方法能夠讓您像沒有運行過鎖定工具那樣再次運行它,但又不撤銷該鎖定工具第一次運行時實現的設置或對它們“解除鎖定”,所以對于您所說的情形,此方法應當行得通。 [SplitPage]
如何發送用以實現重定向的查詢字符串信息
問: 在我們最初的Web服務器配置方案中,多個文件夾中均包含稱作browse.asp的頁面。為簡化設計方案,我們目前只在單一文件夾中保留了一個 browse.asp文件。然而,服務器目前仍然接受來自用戶且要求在原先位置上尋找borwse.asp文件的服務請求。我希望將這些請求重定向到存放 browse.asp文件的新位置上。通過使用IIS所內建的重定向功能,這項工作看起來似乎非常簡單,然而,在實際處理過程中,查詢字符串信息好像總是 被丟失。舉例來說,我們將針對http://servername/oldfolder/browse.asp的請求重定向至http: //servername/newfolder/browse.asp。當用戶向服務器發送形式為http: //servername/oldfolder/browse.asp?cat=135的URL時,重定向操作雖然能夠執行,但卻無法傳遞查詢字符串。請 問是否存在某種方式能夠允許IIS發送從原始請求URL中提取的查詢字符串信息?
答:在指定IIS如何對URL進行重定向方面,IIS為 您提 供了相當程度的靈活性。IIS中所包含的一項鮮為人知但卻非常實用的特性能夠允許您在重定向過程中使用變量,從而實現了能夠精確指定向目標URL傳遞哪些 內容的高級控制能力。舉例來說,在您所描述的情況下,右鍵單擊原有browse.asp文件,在“文件”選項卡上選擇“重定向至URL”并輸入http: //servername/newfolder/browse.asp$Q。這種設置方式將使用內建服務器重定向變量$Q將原有URL中所包含的查詢字符 串部分內容發送到新的位置上。以下表格列出了在線IIS 5幫助文件以及編號為Q313074的Microsoft知識庫文章中所包含的有關查詢字符串的詳細信息。
變量
描述
舉例
$S
對請求URL中相匹配的后綴信息進行解析。相匹配的后綴信息是指原始URL中重定向URL被替代后所剩余的部分。
如果將/s重定向為/news且原始請求URL為/s/program.exe,則/program.exe即為后綴信息。服務器將自動執行后綴替換操作,$S變量僅用于同其它變量配合使用。
$P
對原始URL中的參數進行解析。
舉例來說,如果原始URL為/s/my.asp?number=1,那么,字符串“number=1”將被映射到目標URL中去。
$Q
對于從原始URL中所提取出的問號和參數進行解析。
舉例來說,如果原始URL為/s/my.asp?number=1,那么,字符串“?number=1”將被映射到目標URL中去。
$V
對于請求URL中除服務器名稱以外的其它信息進行解析。
舉例來說,如果原始URL為//myserver/s/my.asp,那么,字符串“/s/my.asp”將被映射到目標URL中去。
$0 至$9
對請求URL中與指定通配符相匹配的部分進行解析。
舉例來說,如果針對最低級別的目錄名稱(如*/default.htm)使用一個通配符,那么,URL中包含Default.htm的目錄名稱部分將被轉發。
!
不進行重定向。
使用這個變量以防止對虛擬目錄中已經實現重定向的子目錄或獨立文件進行再次重定向。

緩存溢出攻擊事件中術語“在進程以內”與“在進程以外”的區別
問:能否澄清一下不同運行方式之間的區別所在?
在進程以內運行的應用程序與在進程以外運行的應用程序相比,如果遭到緩存溢出攻擊的話,分別將會出現何種情況?
答: 我始終認為“在進程以內”這一術語存在一些混淆。所有應用程序均在某個進程中運行,因此,實際上并不存在所謂“在進程以外”運行的應用程序。然而,我們經 常在有關IIS應用程序的參考文獻中見到這個術語,那么,它究竟代表何種含義呢?在IIS 4與IIS 5.x中,包含一個名為inetinfo的進程。當Web應用程序“在進程以內”運行時,該應用程序將在inetinfo進程內部運行。對于IIS 4應用程序來說,缺省情況下,應用程序將在inetinfo進程內運行。
與此相對應,“在進程以外”運行的應用程序是指那些并非在inetinfo進程中運行的應用程序。對于IIS 4,“在進程以外”運行的應用程序宿主于一個名為MTX的進程;對于IIS 5.x,此種應用程序則宿主于一個名為dllhost的進程。
所有進程均在某個用戶帳號的安全環境中運行。Inetinfo進程在System帳號下運行。MTX(IIS 4)和dllhost(IIS 5.x)則在IWAM_帳號下運行。
現 在,我們已經對回答您的問題所涉及的相關概念進行了解釋。在一次成功的緩存溢出攻擊事件中,攻擊者可能會在托管失敗應用程序的進程安全環境中運行相關代 碼。因此,如果您的應用程序在進程以內(在inetinfo進程中)運行,攻擊者將在具備全面服務器訪問權限的System安全環境中運行。如果您的應用 程序在進程以外(在MTX或dllhost進程中)運行,攻擊者將在僅僅具備有限服務器訪問權限的IWAM帳號安全環境中運行。
需要特別注意 的是,在缺省配置方案中,IIS 5按照中等應用程序保護設置(在進程以外模式下采用池分配方式)“在進程以外”運行所有應用程序。由于前面所提到的原因,這種運行方式與在進程以內運行應 用程序相比要安全可靠得多。與缺省設置相比,由于通過System帳號訪問服務器在IIS 5上所導致高發性緩存溢出攻擊使服務器極易遭受攻擊。在針對IWAM與IUSER帳號應用嚴格限制條件的同時,通過運行IIS Lockdown工具還可實現額外的安全性。
順便提及一下,(作為Windows .NET Server 2003的組成部分之一)IIS 6采用這樣一種配置方式,即在缺省的工作進程獨立模式下,緩存溢出攻擊根本無法通過具備高級權限的用戶帳號對服務器進行訪問。
如何在重建站點后繼續使用原先的日志文件
問: 我有一個與IIS元數據庫文件相關的問題。當您在IIS 5服務器上創建一個新的Web站點時,日志文件夾將隨該Web站點一同創建。IIS通過增量方式對這個文件夾進行命名。這種方式有效避免了日志文件夾命名 不當或遭到意外破壞的情況。然而,當您刪除并重新安裝一個‘站點’時,您將丟失所有先前使用的元數據。同時,日志文件夾位置也將隨之丟失。此文件夾現在將 是按照增量方式最后創建的日志文件夾。[如果前一個取值為W3SVC8,那么,當前日志文件夾應為W3SVC9]。請問是否能夠通過某種方式對元數據庫進 行編輯,以便使IIS將站點屬性指向原有日志文件夾名稱?
答:您描述了一個非常有趣的問題,但是您所建立的假設需要進行澄清。是的,IIS確 實創建一個日志文件夾,通常情況下,這個文件夾是c:windowswinntlogfiles目錄。同時,正如您敏銳觀察到的那樣,如果刪除并重建一個 Web站點,日志文件夾名稱將發生變化。然而,IIS并非為避免與原先日志文件產生沖突而采用增量方式對日志文件夾進行命名。與此相反,用以保存日志文件 的文件夾名稱是基于元數據庫中所存儲的Web站點“站點編號”--有時也稱作實例編號--生成的。您所創建的每個站點均擁有一個獨立編號,當您每次創建新 的Web站點時,這個編號將依次遞增。您可以通過MetaEdit工具清楚的觀察到這一點,該工具以文件夾1、2、3的形式(此種情況下為元數據庫鍵值) 來顯示各個Web站點,通常情況下,1代表缺省Web站點,2代表管理Web站點,以此類推。(具體情況請查看圖1)。

 


圖1. MetaEdit用戶界面
由此可見,如果您擁有1、2、3三個站點,當您刪除站點2并希望通過從IIS控制臺創建一個新的Web站點來“重建”原有站點時,IIS將為其分配下一個取值最大的站點編號,當前情況下為5。此后,日志文件將被放置在名為w3svc5(而非w3svc3)的文件夾中。
一旦創建完畢后,由于其它鍵值(如站點根路徑)需要對其進行引用,因此,建議您最好不要對站點ID進行修改。在這種情況下,您只需將日志文件從原先使用的日志文件夾中復制到新建日志文件夾中。
然 而,如果您通過腳本而非用戶界面來創建Web站點的話,您可以指定希望針對“還原”Web站點所使用的站點ID。通過此種方式,您可以實現預先期望的目 標。您可以從InetpubAdmins文件夾中找到一個缺省安裝的名為mkw3site.vbs的腳本。在記事本或其它文本編輯器中打開這 個腳本以查看其中所使用的語法,您會發現其中的參數之一為Sitenumber。這個參數允許您使用自己指定的站點編號而非通過IIS控制臺以增量方式確 定的下一個站點編號來創建Web站點。 [SplitPage]
如何在IIS上運行除ASP以外的其它類型腳本
問:我們希望在自己的IIS服務器上運行PHP和Perl程序,但我們始終無法找到允許這些腳本程序正常工作的正確方式。我們手中擁有大量非常實用的腳本,但如何才能允許IIS運行除ASP以外的其它類型腳本呢?
答: Microsoft公司在Windows 2000資源工具包中提供一種版本的Perl解釋程序,但如需獲取最新版本且功能最為完善的解釋程序,您應從站點http: //www.activestate.com/上下載該產品的最新發布版本。從那里,您將能夠獲得一個稱作ActivePerl的軟件包,該軟件包中包含 能夠針對.pl和.plx文件創建應用程序映射關系的安裝例程,從而允許您對上述類型的腳本文件進行管理。換言之,如果您希望針對所有腳本使用.pl文件 類型,那么,您可以刪除針對.plx文件的應用程序映射關系。在條件允許的情況下,您應盡可能使用perl.dll解釋程序來替代perl.exe解釋程 序以獲得更加優異的性能與可伸縮性。除此之外,您還可以從站點http://www.iisanswers.com/Top10FAQ/t10- installperl.htm上以及編號為Q245225的知識庫文章中獲取有關這一主題的操作指導文章,
您可以從站點http://www.php.net/上下載PHP解釋程序以及大量相關文檔與在線資源。
針對java應用程序的JRUN可以從站點http://www.macromedia.com/software/jrun上獲取。
ASP.net可以通過站點http://gotdotnet.com/或Windows更新服務獲得。
如何檢測哪臺計算機上安裝了IIS
問:我想知道是否存在一種工具能夠檢測出某臺PC機上是否安裝了IIS。我們目前擁有3000多臺PC,我需要通過一種方式來確定哪些計算機上安裝了IIS。
答: Microsoft提供了兩種允許您對子網進行掃描的工具。HFNetChk和Microsoft Security Baseline Analyzer(MSBA)將在您的網絡中對所有裝有Microsoft網絡客戶端和文件與打印共享服務,以及正在運行服務器、工作站和遠程注冊表服務 的系統進行掃描,以標識出“特定”類型的系統。如果這些服務無法正常工作,您還可以借助諸如fport(這種工具可以從站點http: //www.foundstone.com/上進行下載,它將告訴您網絡中各個系統上有哪些端口處于打開狀態)之類的工具進行端口掃描。當然,由于IIS 能夠對用戶所選擇的任意端口進行監聽,因此,您無法通過這種端口掃描操作來判斷與每個端口相關聯的服務;盡管如此,根據經驗判定,如果80端口處于可用狀 態,那么,它很可能正在被IIS使用。來自Foundstone公司的另一種免費實用工具Superscan能夠以“標語”形式顯示出由您所連接到的服務 返回的信息。這項細微改進能夠快速完成網絡掃描并報告所發現的內容。
除以上所介紹的方法外,當用戶通過自己的帳號進行登錄時,您還可以從用戶的登錄腳本中測試出IIS是否存在。憑借Internet上針對這一目的所提供的各種選擇方案與可用工具,您將實現一個良好的開端。
在添加Internet服務后是否需要重新應用熱修補程序和服務軟件包?
問: 我們在Windows 2000服務器上安裝了IIS,但沒有安裝任何其它類型的Internet服務。現在,我們需要為一個要求從服務器上發送電子郵件的Web應用程序添加 SMTP服務。如果我們添加SMTP服務的話,是否需要重新應用最新的服務軟件包和熱修補程序?
答:在Windows NT 4.0中,當您向操作系統中添加諸如SMTP之類的服務時,您需要重新安裝服務軟件包和熱修補程序。在Windows 2000中,這種情況得到的明顯改善,當您安裝軟件、服務或更新程序時,通常情況下無需重新應用服務軟件包。舉例來說,您可以安裝不含IIS的 Windows 2000操作系統,并應用服務軟件包x(其中x為最新服務軟件包編號),此后,當您安裝IIS時,其二進制(程序)版本編號將自動與服務軟件包(SP)x 保持相同的級別。這項特性在添加諸如SMTP之類的服務時為您減少了大量工作。然而,熱修補程序和滾動升級程序又產生了另一個問題。盡管您的SMTP服務 能夠與SP x處在同一級別上,但您還需要重新應用與該服務相關的熱修補程序和滾動升級程序。舉例來說,當您卸載或重新安裝IIS時,在最近應用的服務軟件包發布后出 現的所有IIS熱修補程序與滾動升級程序都必須重新加以應用。
確保您已經應用所有必要熱修補程序和服務軟件包的最佳方式是在系統中使用 HFNetChk或Microsoft Security Baseline Analyzer(MSBA)。這是確定需要在服務器上應用哪些熱修補程序及更新程序的最可靠方式。由此可見,正確的操作過程是首先安裝SMTP,之后, 運行上述工具之一以確定需要應用哪些熱修補程序。[SplitPage]
重新命名IUSR帳號
問:重新命名IUSR帳號將導致何種后果?
答: IUSR帳號通常稱作“Web匿名用戶”帳號或“Internet來賓”帳號。IUSR帳號是一種常用的簡寫形式,該帳號的實際格式為IUSR_,其中, 是安裝IIS時所使用的Netbios服務器名稱。正如您可能已經知道的那樣,當IIS服務器啟用匿名身份驗證方式,且該服務器上存在針對特定訪問請求類 型具備適當NTFS權限的IUSR帳號時,系統將自動對其加以應用。
由于此帳號的名稱是眾所周知的,因此,為加大網絡黑客在服務器上猜測用戶名稱與口令的難度,建議您在那些對安全性要求較為嚴格的環境中對IUSR帳號名稱進行修改。對于需要具備高度安全性的服務器而言,這是一項非常良好的建議,然而,有幾種注意事項您必須時刻牢記。
當 修改匿名用戶帳號名稱時,您必須同時在Internet Information Services管理器和針對本地計算機的用戶與組中對其進行修改(假設針對匿名用戶使用本地帳號)。如果您在用戶與組中刪除IUSR帳號或對其名稱進行 修改,但未在Internet服務管理器中分配新的匿名用戶帳號,那么,IUSR帳號將會在下次重新啟動系統時自動重建。我經常簡單的禁用當前IUSR帳 號并創建一個新的帳號,之后在Internet服務管理器中針對匿名訪問分配新建帳號。如果您正在使用IIS Lockdown工具的話,請將新建用戶帳號設置為Web匿名用戶本地組中的成員。
當您針對匿名用戶創建新的用戶名稱與口令時,請一定確保 使 用一個難以破解的口令。Windows 2000操作系統中的匿名用戶帳號是一個隨機生成的由14個字母與數字所組成的字符串。通常情況下,按照人的一般習慣,事后創建的口令在保密效率上要遠遠 低于匿名用戶最初所使用的口令,因此,您一定要確保創建一個不易破解的口令。
只要心中牢記這些注意事項,在修改帳號的過程中就不會節外生枝,最后,請一定不要忘記在Internet Information Services管理器中指定新的匿名用戶帳號。
查看以往的專欄文章:2001年12月:“如何確保IUSR帳號安全性。”


利用FrontPage Server Extensions管理您的NTFS權限
問: 我們在自己的 IIS 4和IIS 5服務器上裝載了FrontPage Server Extensions 2000。我們發現,一旦載入FrontPage Server Extensions 2000,服務器上的NTFS權限便會遭到修改。新的權限中將包含對網絡與交互組的使用。您能否解釋一下這些組的作用以及FrontPage Server Extensions如何管理NTFS權限?
答:當您在Web服務器上安裝FrontPage Server Extensions(FPSE)時,需要確定允許FPSE自動管理相關權限,還是希望手工管理相關權限。缺省情況下,FPSE將自動對其所處Web站點 的權限進行管理。如果需要的話,您可以禁用這種自動管理方式,為此,您只需在Internet Information Services管理器中的服務器圖標上右鍵單擊鼠標,選擇“Server Extensions”選項卡,并選定“手工管理權限”復選框。請注意,這是一個服務器級選項,它無法針對各個站點采取不同的設置。在此,我強烈建議您從 允許FPSE自動管理權限或手工管理權限這兩種方式中選擇其一,而不要嘗試同時使用這兩種方式。
位于網址http: //officeupdate.microsoft.com/frontpage/wpp/serk/上的FPSE 2000資源工具包提供了關于由FPSE所分配并維護的相關權限的詳細信息。這些權限中包含您在問題中所提到的針對網絡與交互組的使用情況。
網 絡組是一種自動進行維護的本地組,它由所有包含某種網絡登錄類型的用戶所組成。網絡組中的成員通常通過網絡進行登錄。交互組同樣是一種自動進行維護的本地 組,它由所有包含某種本地登錄類型的用戶所組成。本地組包含在計算機控制臺上進行登錄的用戶以及通過基本身份驗證功能實現身份驗證的用戶。
從多種身份驗證方法中進行選擇
問:IIS 5允許您針對Web站點選擇多種不同的身份驗證方法。當您同時選擇匿名身份驗證、基本身份驗證和集成化Windows身份驗證方法時,請問IIS將如何選擇針對特定用戶的身份驗證機制?
答: 針對這一問題的背景情況比較復雜,但其可以通過幾條規則來加以總結。這些規則同時適用于IIS 4和IIS 5。有關身份驗證方法的第一條不變規則是“如果可能的話,您將首先以匿名用戶的身份通過驗證。”從資源角度考慮,這種方式只要求在服務器上啟用匿名身份驗 證方式--即確保匿名用戶擁有訪問請求資源的權限。針對這條規則的唯一例外情況是,用戶已經以匿名用戶以外的其它用戶身份通過驗證,且系統支持除匿名驗證 方式以外的其它身份驗證方式。
假設您已經選擇了多種身份驗證方法,且用戶無法憑借匿名用戶身份通過驗證,那么,如何確定所需采用的身份驗證方 法呢?答案是IIS將向客戶端提供一份身份驗證方法列表,由客戶端自行選擇何種方法最為安全可靠。當您同時選擇基本身份驗證和集成化Windows身份驗 證(或者IIS 4中的Windows NT 質詢/響應身份驗證方法)時,由于無法執行集成化Windows身份驗證,Netscape將選擇基本身份驗證方法。相反,對于Internet Explorer來說,如果提供同樣的選項,它將選擇集成化Windows身份驗證方法。在IIS 5服務器上,IIS與IE將進一步確定是否支持Kerberos,如果支持的話,最終將選擇使用Kerberos身份驗證方法。對于包括IIS 4在內的其它情況,將使用Windows NT 質詢/響應身份驗證方法。 [SplitPage]
重新命名IIS Server將會導致何種后果?
問:作為對11月份所提問題的延續:“請問對IUSR帳號進行重命名將會產生何種后果?”,我希望了解重命名服務器時針對IIS服務器所產生的后果。
答: 服務器名稱是在Windows 2000安裝過程中分配的,此名稱可以在安裝完成后進行修改。從技術上講,服務器名稱、計算機名稱和主機名稱這三種術語均可用于描述計算機的 Betbios名稱。您可以在命令行窗口中使用“hostname”命令來確定當前服務器名稱。
在Microsoft網絡中,此名稱用于通過 WINS、DNS(在Windows 2000中)或使用Netbios名稱表查找方式將服務器名稱解析為IP地址。IIS并不使用這種服務器名稱,因此,您可以任意對其進行修改。然而,這并 不意味著其它應用程序或應用程序中所包含的COM對象均獨立于服務器名稱。舉例來說,如果運行IIS 4的服務器上安裝了Site Server 3,那么,系統便不支持您修改服務器名稱。當您在運行IIS 4的服務器上修改服務器名稱時,需要完成一些必要的內部管理工作,如需獲取有關這些工作的詳細描述信息,請參閱http: //support.microsoft.com/default.aspx?scid=kb;EN-US;234142&sd=tech。相比 之下,IIS 5的處理方式則截然不同,我經常對運行IIS 5的Windows 2000服務器進行服務器名稱修改操作,且從未遇到過任何異常現象;但是,盡管如此,我還是建議您不要輕易執行這項操作。
如需修改服務器名稱,請右鍵單擊“我的電腦”,在隨后出現的快捷菜單中選擇“屬性”并單擊“網絡標識”。此后,單擊“屬性”按鈕以查看“計算機名稱”設置。
在 執行此類修改操作后,請牢記,服務器名稱以及IUSR_和IWAM_用戶帳號仍將反映原有的服務器名稱。這些對象未被更新為反映新的服務器名稱。然而,這 與IIS沒有任何關聯,匿名身份驗證過程(以及由此衍生而來且以IWAM用戶帳號身份運行的處理應用程序)仍將順利執行。如果使用諸如遠程MMC控制臺、 腳本或終端服務客戶端之類需要查找原先服務器名稱的遠程應用程序,那么,您還需要進行其它一些修改。此外,通過IIS服務器上的文件共享方式進行內容發布 的客戶端需要使用新的服務器名稱對其共享文件夾連接進行更新。
請記住,安裝證書服務的Windows 2000服務器無法修改自身標識。在對相應計算機名稱進行修改,或者將其加入到域中或從域中剝離之前,您必須首先卸載證書服務。
“語法分析程序錯誤消息”具有何種含義?
問: 我擁有一臺裝有最新補丁程序的IIS 5服務器,這臺服務器總是收到內容為“語法分析程序錯誤消息:這是一個由于在應用程序層上使用注冊為allowDefinition= ‘MachineToApplication’的部分所導致的錯誤。這個錯誤可能是由一個在IIS中未被配置為應用程序的虛擬目錄所造成的。”的出錯信 息。請問這是為什么?
答:我喜歡這些內容詳細的ASP.NET錯誤消息!它們不僅描述了出現問題的原因,同時還經常為您提供解決方案。如果 您 的ASP.NET應用程序被配置為需要使用那些在元數據庫定義好的“應用程序”的特性(如或),而這些“應用程序”定義又不存在,那么,您將看到這條出錯 信息。您可以通過從web.config文件中刪除相關設置或分別在Web站點、虛擬目錄或目錄的“主目錄”、“虛擬目錄”和“目錄”屬性選項卡上點擊 “創建”按鈕的方式糾正這種錯誤。為執行上述操作,您至少需要具備針對上述位置的腳本執行權限和讀取權限。
如何分析URLScan日志文件?
問: 為確定我們的服務器所遭受的攻擊類型并對其進行分類,我們目前正在著手對W2SVC和URLScan的日志文件進行分析。雖然我們已經找到了能夠載入 W3SVC日志文件的產品,但這些工具卻無一能夠對URLScan的日志文件進行掃描。請問Microsoft公司是否提供了能夠幫助我們對 URLScan日志文件進行分析的產品或工具?
答:請問一種允許您針對URLScan日志、W3SVC、事件查看器記錄或其它任意一種基于文 本的日志文件(如防火墻或入侵監測系統日志)進行數據挖掘、格式變化并生成分析報告的免費實用工具是否能夠滿足您的需要?Microsoft所提供的免費 日志分析器工具正是專為滿足那些需要收集并報告從具有不同文件格式的日志文件或其它數據源中所提取重要信息的IIS管理員、系統管理員和安全管理員的日常 工作需求而設計的。
日志分析器可以將采用多種不同格式的日志文件當作“數據源”進行處理,這些日志文件包括:
W3C Extended
IIS
IISMSID [在安裝MSIDFILT過濾器或CLOGFILT過濾器后所生成的Microsoft IIS日志格式文件]
NCSA Common
二進制日志文件格式(針對IIS 6)
開放式數據庫連接(ODBC)
URLScan
HTTP錯誤日志文件(針對IIS 6)
針對系統日志文件、應用程序日志文件、安全事件日志文件和EVT備份日志文件的事件查看器記錄。
普通CSV文件
普通W3C文件,如個人防火墻日志文件,Windows媒體服務日志文件和Exchange跟蹤日志文件。
文件與目錄結構信息。
普通文本文件
日志分析器包含一種允許您通過運行SQL查詢語句的方式生成分析報告或重新格式化信息結構的查詢引擎。某些通過SQL語法實現的技巧將為您提供極大的便利。
例如,您可以通過以下語句針對某個Web站點匯總每小時處理的請求個數以及所發送的字節數量: SELECT TO_STRING(TO_TIMESTAMP(date, time), 'yyyy-MM-dd hh') AS Hour,
 COUNT(*) AS Total, 
 SUM(sc-bytes) AS TotBytesSent
FROM ex*.log
GROUP BY Hour
ORDER BY Hour
當然,您還可以通過單獨文件夾或文件以及日志文件中所提供的諸如日期、時間之類的參數來縮小查詢范圍。
按照相同的方式,您便可以對URLScan日志進行查詢。以下示例將報告通過某一客戶端IP地址所拒絕的請求次數: SELECT   ClientIP,
 COUNT(*)
FROM URLSCAN
WHERE Comment LIKE 'Url%'
GROUP BY ClientIP
日志分析器還提供了許多其它特性,其中包括將結果輸出至XML文件的功能、提供日志分析器功能的Active X對象(通過ADO實現)、以及通過自定義模板格式化輸出結果的能力。
顯而易見,這是一種功能非常強大的實用工具,它將順理成章的成為廣大IIS管理員“工具包”文件夾中的一員。

關鍵字:IIS、元數據、虛擬目錄、服務器

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站