關於win2003+iis6服務器設置排錯集錦及其他

2003iis碰見的一些問題,只要對着症狀處理。服務器一定可以使用的。

問題1:未啓用父路徑

症狀舉例:
Server.MapPath()
錯誤 'ASP 0175 : 80004005'
不允許的 Path 字符
/0709/dqyllhsub/news/OpenDatabase.asp
,行 4
MapPath Path 參數中不允許字符 '..'

原因分析:
許多Web頁面裏要用到諸如../格式的語句(即回到上一層的頁面,也就是父路徑),而IIS6.0出於安全考慮,這一選項默認是關閉的。

解決方法:
IIS屬性->主目錄->配置->選項中。把啓用父路徑前面打上勾。確認刷新。


問題2ASPWeb擴展配置不當(同樣適用於ASP.NETCGI

症狀舉例:
HTTP
錯誤 404 - 文件或目錄未找到。

原因分析:
IIS6.0中新增了web程序擴展這一選項,你可以在其中對ASPASP.NETCGIIDC等程序進行允許或禁止,默認情況下ASP等程序是禁止的。

解決方法:
IIS中的Web服務擴展中選中Active Server Pages,點擊允許


問題3:身份認證配置不當

症狀舉例:
HTTP
錯誤 401.2 - 未經授權:訪問由於服務器配置被拒絕。

原因分析:IIS 支持以下幾種 Web 身份驗證方法:
匿名身份驗證
IIS
創建 IUSR_計算機名稱帳戶(其中計算機名稱是正在運行 IIS 的服務器的名稱),用來在匿名用戶請求 Web 內容時對他們進行身份驗證。此帳戶授予用戶本地登錄權限。你可以將匿名用戶訪問重置爲使用任何有效的 Windows 帳戶。
基本身份驗證
使用基本身份驗證可限制對 NTFS 格式 Web 服務器上的文件的訪問。使用基本身份驗證,用戶必須輸入憑據,而且訪問是基於用戶 ID 的。用戶 ID 和密碼都以明文形式在網絡間進行發送。
Windows
集成身份驗證
Windows
集成身份驗證比基本身份驗證安全,而且在用戶具有 Windows 域帳戶的內部網環境中能很好地發揮作用。在集成的 Windows 身份驗證中,瀏覽器嘗試使用當前用戶在域登錄過程中使用的憑據,如果嘗試失敗,就會提示該用戶輸入用戶名和密碼。如果你使用集成的 Windows 身份驗證,則用戶的密碼將不傳送到服務器。如果該用戶作爲域用戶登錄到本地計算機,則他在訪問此域中的網絡計算機時不必再次進行身份驗證。
摘要身份驗證
摘要身份驗證克服了基本身份驗證的許多缺點。在使用摘要身份驗證時,密碼不是以明文形式發送的。另外,你可以通過代理服務器使用摘要身份驗證。摘要身份驗證使用一種挑戰/響應機制(集成 Windows 身份驗證使用的機制),其中的密碼是以加密形式發送的。
.NET Passport
身份驗證
Microsoft .NET Passport
是一項用戶身份驗證服務,它允許單一簽入安全性,可使用戶在訪問啓用了 .NET Passport Web 站點和服務時更加安全。啓用了 .NET Passport 的站點會依靠 .NET Passport 中央服務器來對用戶進行身份驗證。但是,該中心服務器不會授權或拒絕特定用戶訪問各個啓用了 .NET Passport 的站點。

解決方法:
根據需要配置不同的身份認證(一般爲匿名身份認證,這是大多數站點使用的認證方法)。認證選項在IIS的屬性->安全性->身份驗證和訪問控制下配置。


問題4IP限制配置不當

症狀舉例:
HTTP
錯誤 403.6 - 禁止訪問:客戶端的 IP 地址被拒絕。

原因分析:
IIS
提供了IP限制的機制,你可以通過配置來限制某些IP不能訪問站點,或者限制僅僅只有某些IP可以訪問站點,而如果客戶端在被你阻止的IP範圍內,或者不在你允許的範圍內,則會出現錯誤提示。

解決方法:
進入IIS的屬性->安全性->IP地址和域名限制。如果要限制某些IP地址的訪問,需要選擇授權訪問,點添加選擇不允許的IP地址。反之則可以只允許某些IP地址的訪問。


問題5IUSR賬號被禁用

症狀舉例:
HTTP
錯誤 401.1 - 未經授權:訪問由於憑據無效被拒絕。

原因分析:
由於用戶匿名訪問使用的賬號是IUSR_機器名,因此如果此賬號被禁用,將造成用戶無法訪問。

解決辦法:
控制面板->管理工具->計算機管理->本地用戶和組,將IUSR_機器名賬號啓用。


問題6NTFS權限設置不當

症狀舉例:
HTTP
錯誤 401.3 - 未經授權:訪問由於 ACL 對所請求資源的設置被拒絕。

原因分析:
Web
客戶端的用戶隸屬於user組,因此,如果該文件的NTFS權限不足(例如沒有讀權限),則會導致頁面無法訪問。

解決辦法:
進入該文件夾的安全選項卡,配置user的權限,至少要給讀權限。關於NTFS權限設置這裏不再饋述。


問題7IWAM賬號不同步

症狀舉例:
HTTP 500 -
內部服務器錯誤

原因分析:
IWAM
賬號是安裝IIS時系統自動建立的一個內置賬號。IWAM賬號建立後被Active DirectoryIIS metabase數據庫和COM+應用程序三方共同使用,賬號密碼被三方分別保存,並由操作系統負責這三方保存的IWAM密碼的同步工作。系統對IWAM賬號的密碼同步工作有時會失效,導致IWAM賬號所用密碼不統一。

解決辦法:
如果存在AD,選擇開始->程序->管理工具->Active Directory用戶和計算機。爲IWAM賬號設置密碼。
運行c:"Inetpub"AdminScripts>adsutil SET w3svc/WAMUserPass +密碼同步IIS metabase數據庫密碼
運行cscript c:"inetpub"adminscripts"synciwam.vbs -v 同步IWAM賬號在COM+應用程序中的密碼


問題8MIME設置問題導致某些類型文件無法下載(以ISO爲例)

症狀舉例:
HTTP
錯誤 404 - 文件或目錄未找到。

原因分析:
IIS6.0
取消了對某些MIME類型的支持,例如ISO,致使客戶端下載出錯。

解決方法:
IIS屬性->HTTP->MIME類型->新建。在隨後的對話框中,擴展名填入.ISOMIME類型是application


問題9:無法在網站後臺上傳超過200k的文件。




原因:
IIS 6.0 中,默認設置是特別嚴格和安全的,這樣可以最大限度地減少因以前太寬鬆的超時和限制而造成的攻擊。
配置數據庫屬性實施的最大 ASP 張貼大小爲 204,800 個字節,並將各個字段限制爲 100 KB。在 IIS 6.0 之前的版本中,沒有張貼限制。

這就造成了文件上傳不能超過200k,而事實上是提交數據不能超過200k,你可以發一個很長的帖子試試,也會出現這個錯誤

解決辦法:


然後在服務裏關閉iis admin service服務
找到windows"system32"inesrv"下的metabase.xml,
打開,找到ASPMaxRequestEntityAllowed 把他修改爲需要的值,默認爲204800,即200K
然後重啓iis admin service服務
把它修改爲5120000050M

其他問題:

動態或靜態內容錯誤

禁止應用程序對資源進行訪問

在全新安裝之後,iis 6.0 以工作進程隔離模式運行。默認情況下,以此模式運行的應用程序使用網絡服務標識。"網絡服務"是具有極少用戶權限的帳戶,因此可通過限制對 web 服務器上資源的訪問來提供更高的安全性。如果在服務器處於工作進程隔離模式時將應用程序遷移到 iis 6.0,並且應用程序先前作爲本地系統在進程內運行(在 inetinfo.exe 中),則應用程序可能由於網絡服務標識設定的限制無法訪問資源。本地系統帳戶擁有操作系統上幾乎所有資源的訪問權限,因此,可能會產生嚴重的安全隱患。儘可能不要使用本地系統帳戶。如果必須使用本地系統帳戶來運行某個應用程序,則在其自己的虛擬目錄中的新應用程序池中運行該應用程序,以便通過隔離該應用程序來減少攻擊面。或者,如果應用程序需要使用可信計算庫 (tcb) 的權限,則以可配置的身份運行該應用程序,並給該可配置的身份指派 tcb 權限。但是,這種方法仍存在安全隱患,因爲可通過 tcb 權限執行很多操作。

詳細信息,請參閱配置工作進程標識和 iis 和內置帳戶。

動態內容請求返回 404 錯誤

爲了更好地預防惡意用戶和攻擊者的攻擊,iis 是在高度安全和鎖定模式下安裝的。在默認情況下,iis 僅處理靜態內容,這意味着除非啓用 aspasp.net、在服務器端的包含文件、webdav 發佈、frontpage® server extensions 和通用網關接口等功能,否則無法使用這些功能。如果在安裝 iis 後沒有啓用此功能,則在拒絕此類服務時,iis 默認返回常規 404 自定義錯誤頁以防止泄漏配置信息。默認情況下,iis 還將 404 錯誤及子狀態代碼 2 (404.2) 寫入到 w3c 擴展日誌文件中。

要點您必須是本地計算機上 administrators 組的成員或者您必須被委派相應的權限才能執行下列步驟。作爲安全性的最佳操作,請使用不屬於 administrators 組的帳戶登錄計算機,然後使用運行方式命令以管理員身份運行 iis 管理器。在命令提示符下,鍵入 runas /user:administrative_accountname "mmc %systemroot%"system32"inetsrv"iis.msc"

啓用或禁用 web 服務擴展

iis 管理器中,展開本地計算機,然後單擊"web 服務擴展"
在詳細信息窗格中,單擊要啓用或禁用的 web 服務擴展。
要啓用已禁用的 web 服務擴展,請單擊"允許"
要禁用已啓用的 web 服務擴展,請單擊"禁止"
單擊"確定"
要以編程方式啓用或禁用 web 服務擴展,請參閱 websvcextrestrictionlist

靜態文件請求返回 404 錯誤

對於靜態內容請求,此版本的 iis 僅處理具有已知文件擴展名的文件請求,此功能稱爲"已知擴展名"。如果所請求資源的文件擴展名沒有映射到 mimemap 屬性中的已知擴展名,則 iis 就會拒絕該請求,並默認在 w3c 擴展日誌文件中記錄 404 錯誤和子狀態代碼 3 (404.3)。要防止泄漏配置信息,可以將 iis 配置爲在拒絕此類服務時默認返回常規 404 自定義錯誤頁。您可以使用 iis 管理器添加或編輯多用途 internet 郵件交換 (mime) 映射。要關閉"已知擴展名"功能並允許 iis 處理具有任何擴展名的文件,可以將 *,application/octet-stream 值添加到 mime 映射列表中。如果更新全局 mime 映射,則在工作進程回收或重新啓動萬維網發佈服務(www 服務)後,更改纔會生效。如果更新單個網站 mime 映射,則更改會立即生效。

有關添加或編輯 mime 映射的詳細信息,請參閱使用 mime 類型。

工作進程回收丟失應用程序會話狀態

默認情況下,工作進程在 120 分鐘後回收。如果在回收工作進程時 asp 應用程序並不存儲會話狀態,則該 asp 應用程序中的會話狀態可能會丟失。要解決此問題,可以將會話狀態存儲在數據庫中,或者禁用工作進程回收。

禁用工作進程回收

iis 管理器中,展開本地計算機,展開"應用程序池",右鍵單擊該應用程序池,然後單擊"屬性"
"回收"選項卡上,清除"回收工作進程(分鐘)"複選框。
單擊"確定"

在服務器端的包含文件指令 (i nclude) 返回 404 錯誤(對於 .stm 文件)或 0131 錯誤(對於 .asp 文件)

如果 asp 頁使用i nclude 在服務器端的包含文件指令和 ".." 記號來引用某個父目錄,則除非重新配置了 aspenableparentpaths 配置數據庫屬性,否則,該指令將返回一條錯誤。默認情況下,將該屬性設置爲 false。如果將該屬性設置爲 true,則可能會產生潛在的安全隱患,因爲包含文件路徑可以訪問應用程序根目錄外的關鍵或機密文件。

通過 iis 管理器啓用父路徑

iis 管理器中,展開本地計算機,右鍵單擊要配置的應用程序的開始位置目錄,然後單擊"屬性"
單擊"目錄"選項卡,然後單擊"配置"
單擊"選項"選項卡。
"應用程序配置"部分,選擇"啓用父路徑"複選框。
單擊"確定"

asp 在事件日誌中給 global.asa 生成"權限被拒絕"錯誤

由於早期版本的 asp 在事件中沒有用戶上下文,因此只能在宿主進程的安全上下文(或用戶標識)中執行事件。這將會導致一些問題,例如在將文件寫入 session_onend 事件中時發生拒絕訪問錯誤。在當前版本中,asp 默認匿名運行 global.asa 事件、application_onend session_onend(默認值爲 true)。

要以編程方式更改此設置,請參閱 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/55aa5aaf-813a-40f0-9679-0032001f8305.mspx?mfr=true

cgi 進程不啓動

如果 cgi 進程沒有運行,則確保已啓用了 cgi web 服務擴展。請參閱本主題中的動態內容請求返回 404 錯誤。另外,除非給運行 cgi 進程使用的帳戶指派了某些用戶權限,否則,cgi 不會啓用。您可以將該帳戶添加爲 iis_wpg 組的成員,併爲它分配以下兩種用戶權限:
調整進程的內存配額
替換進程級令牌
爲本地計算機上的帳戶分配用戶權限
"開始"菜單中,指向"管理工具",然後單擊"本地安全策略"
展開"安全設置",雙擊"本地策略",然後雙擊"用戶權限分配"
在詳細信息窗格中,雙擊要更改的策略。
單擊"添加用戶或組"
"輸入對象名稱來選擇"框中,輸入用戶或組的名稱。
單擊"確定"

asp.net 頁作爲靜態文件返回

如果安裝了 iis 6.0 而沒有安裝 asp.net,則將 asp.net 文件作爲靜態文件返回。如果重新安裝了 iis 6.0 而沒有重新註冊 asp.net,則也可能會出現該錯誤。要了解如何糾正此問題,請參閱 asp.net iis 註冊工具和使用 i 選項。

windows nt server 的協作數據對象失敗

microsoft® windows nt® server
的協作數據對象 (cdonts) 已從 microsoft windows® server 2003 家族中刪除。如果 web 應用程序使用 cdonts,則可以將它們轉換爲 microsoft 協作數據對象 (cdo)cdonts 中的大多數方法在 cdo 中都有相匹配的方法,但是名稱可能不同。

有關平臺軟件開發工具包 (psdk) cdo 的參考資料,請參閱 msdn online 上的 overview of cdo

連接錯誤

客戶端請求收到 503 錯誤

檢查錯誤事件日誌以確定 503 錯誤是在 http.sys 中還是在萬維網發佈服務(www 服務)中檢測到的。如果該錯誤是在 http.sys 中檢測到的,則可能是由於隊列中的請求太多,而導致 http.sys 超過其應用程序池隊列長度限制。要解決此問題,請增加應用程序池隊列長度限制。

更改應用程序池隊列長度限制

iis 管理器中,展開本地計算機,展開"應用程序池"文件夾,右鍵單擊應用程序,然後單擊"屬性"
單擊"性能"選項卡。
"請求隊列限制"部分中,選中"核心請求隊列限制爲"複選框,然後鍵入隊列請求的最大數量。
單擊"確定"
如果在 www 服務中檢測到 503 錯誤,則問題可能是 iis 已啓動了快速失敗保護,因爲在給定一段時間內爲應用程序池分配的許多工作進程都處於不正常的運行狀態。要解決此問題,請增加啓動快速失敗保護前出現的故障數量或時間。您應該測試應用程序是否存在內存泄漏或者其他使工作進程處於不正常狀態的問題。

配置快速失敗保護

iis 管理器中,展開本地計算機,展開"應用程序池",右鍵單擊該應用程序池,然後單擊"屬性"
單擊"運行狀況"選項卡。
"失敗數"框中,鍵入在禁用工作進程之前要檢測的工作進程失敗數量。
"時間段"框中,鍵入累積失敗總數的時間長短(分鐘)。
單擊"確定"

進行子驗證登錄的匿名帳戶 (iusr_computername) 收到 401 錯誤

默認情況下,在 iis 6.0 中不啓用子驗證組件 iissuba.dll。在早期版本中,iissuba.dll 允許 iis 管理匿名帳戶的密碼,這會產生潛在的安全隱患。在 iis 6.0 中,您可以使用子驗證管理匿名帳戶的密碼,但必須滿足以下條件:

對於授權匿名訪問的應用程序,工作進程以本地系統身份運行。
註冊了子驗證組件 iissuba.dll
啓用了 anonymouspasswordsynch 配置數據庫屬性(設置爲 true)。
對於 iis 6.0 全新安裝和從配置了子驗證的 iis 安裝升級到 iis 6.0,爲滿足以上要求所採取的操作是不同的。

有關配置子驗證的步驟的信息,請參閱匿名身份驗證。

客戶端不能連接到服務器

windows server 2003
家族提供基於軟件的防火牆,以防止從遠程計算機對服務器進行未經授權的訪問。默認情況下禁用 internet 連接防火牆 (icf)。不過,如果您在安裝 windows server 2003 家族成員之後和安裝 iis 之前以默認配置方式啓用了防火牆,客戶端將不能連接到您的服務器。以下步驟將配置 icf,以便允許客戶端啓動連接到服務器的 web 和其他 iis 相關連接。

iis 配置 internet 連接防火牆

"開始"菜單中,單擊"控制面板"
雙擊"網絡連接"
右鍵單擊"本地連接",然後單擊"屬性"
單擊"高級"選項卡。
如果不想使用 icf,請確保沒有選中"通過限制或阻止來自 internet 的對此計算機的訪問來保護我的計算機和網絡"複選框,然後單擊"確定"
如果想使用 icf,請確保選中了"通過限制或阻止來自 internet 的對此計算機的訪問來保護我的計算機和網絡"複選框,然後單擊"設置"
"服務"選項卡上,啓用要允許客戶端訪問的服務。
在啓用服務之後出現的"服務設置"對話框中,執行以下某個操作:
如果要在正在使用的同一臺計算機上啓用某項服務,這時正確的計算機名稱已經填入。單擊"確定"
如果要在網絡上的另一臺計算機上啓用服務,請鍵入要啓用的主持此服務計算機的名稱或 ip 地址,然後單擊"確定"
重複第 7 步和第 8 步,直到希望客戶端可訪問的服務都已啓用。

unc 連接被拒絕訪問

通用命名約定 (unc) 驗證方法也稱爲"unc passthrough 驗證",它確定獲得遠程計算機上 unc 共享訪問使用的憑據。從 iis 6.0 開始,unc 驗證使用以下方法查看請求用戶和配置數據庫 uncusername uncpassword 屬性中存儲的憑據,以確定傳送到具有 unc 共享的計算機上的憑據:

如果指定了 uncusername(非空)並且 uncpassword 有效,則將配置數據庫用戶憑據作爲訪問的用戶標識發送到遠程共享。如果指定了 uncusername(非空)但是 uncpassword 無效,則向客戶端發送"500 內部服務器錯誤:用戶名或密碼無效"消息。
如果 uncusername 爲空,則將請求用戶的憑據(用於已驗證請求的一組驗證的憑據或用於匿名請求的 iusr_computername 憑據)作爲訪問的用戶標識發送到遠程共享。
注意不再將 uncauthenticationpassthrough 配置數據庫項用於 unc 驗證。

禁止訪問 system32 目錄中的控制檯應用程序

除非提出請求的遠程用戶是 administrators 組中經過驗證的成員,否則,使用 windows system32 目錄中控制檯應用程序(如 cmd.exe)的請求被拒絕訪問。這種拒絕訪問是由於以下原因造成的:windows system32 目錄中所有控制檯應用程序的特殊訪問控制列表 (acl) 僅限管理員、本地系統、交互用戶和服務能夠訪問。acl 限制並不影響擁有訪問權限的本地登錄用戶,也不會影響您自己的自定義 cgi 可執行程序。

[pagesplitxx]

客戶端請求出現錯誤或超時

iis 6.0 中,默認設置是特別嚴格和安全的,這樣可以最大限度地減少因以前太寬鬆的超時和限制而造成的攻擊。iis 在連接級別強制實施以下超時限制:

響應緩衝限制:aspbufferinglimit 配置數據庫屬性的默認值爲 4 mb。如果 asp 腳本緩衝大於此值,就會出現錯誤。在 iis 6.0 之前的版本中,沒有緩衝限制。
張貼限制:aspmaxrequestentityallowed 配置數據庫屬性實施的最大 asp 張貼大小爲 204,800 個字節,並將各個字段限制爲 100 kb。在 iis 6.0 之前的版本中,沒有張貼限制。
serverlistentimeout
配置數據庫屬性不再存在: serverlistentimeout 已被以下配置數據庫屬性代替:
connectiontimeout
:此屬性指定在斷開非活動連接前服務器等待的時間(以秒爲單位)。
minfilebytespersec
:當 iis 響應客戶端請求時,minfilebytespersec 屬性決定了客戶端收到整個響應的時間長短。如果客戶機接收整個響應所花費的時間太長,則內核模式驅動程序 http.sys 會根據超時值終止連接。
headerwaittimeout
:在客戶端連接到 web 服務器時,會給客戶機指定發送請求的所有標題的時間限制(用結尾的雙 "r"n 來區分)。如果在 headerwaittimeout 指示的時間內沒有收到請求的完整標題集,則 http.sys 將重置該連接。您可以對 headerwaittimeout 的值進行配置。
標題大小限制:默認情況下,http.sys 僅接受標題小於 16 kb 的請求。這意味着,如果 http.sys 收到的 16 kb 中不包含結尾的 <crlf><crlf> 序列,則 http.sys 認爲請求是惡意的並將終止連接。通過調整 maxrequestbytes 註冊表項中的值,您可以更改標題大小限制。

其他錯誤

unix linux 服務器的文件請求返回錯誤的文件或錯誤信息
如果 iis 必須訪問 unix linux 系統上的文件,除非在 iis 中啓用了網絡文件系統 (nfs) 支持,否則文件名大小寫區分可能會引起問題。

unix
linux 均支持混合大小寫的文件名,而 iis 完全支持以區分大小寫的方式請求靜態文件。然而,當 iis 隨後從其靜態文件緩存中請求文件時,會出現問題。因爲所有的文件名會在 iis 緩存中轉換爲大寫字母,從 iis 靜態文件緩存進行完第一次請求之後,所有的請求都可能失敗或返回錯誤的文件。

解決該問題的方法是禁用 iis 靜態文件緩存,以便所有文件請求都以全新形式發出,從而保持正確的文件名大小寫。可以針對網站上的單個虛擬目錄禁用靜態文件緩存,也可以針對所有站點在全局禁用。

注意更改該設置不會影響緩存 asp 文件和模板的方式。

爲特定網站虛擬目錄禁用靜態文件緩存

編輯配置數據庫,並將 md_vr_no_cache 屬性設置爲 1

針對所有站點禁用靜態文件緩存

編輯註冊表並將二進制值 disablestaticfilecache=1 添加到 hkey_local_machine"system"currentcontrolset"services"inetinfo"parameters 項中。

找不到 /scripts /msadc 目錄

默認情況下,iis 5.0 中的 /scripts /msadc 目錄允許運行腳本和可執行文件。在 iis 6.0 中刪除了這些目錄,因爲如果惡意用戶能夠訪問這些目錄之一,該用戶就可以運行腳本或可執行文件,並有可能會控制 web 服務器。如果服務器配置需要此類目錄,則需要創建一個目錄併爲其指派適當的 ntfs 權限。

isapi 篩選器在 ui 中沒有顯示爲"已加載"

iis 6.0 中,爲了優化資源,直到所請求的網站需要 isapi 篩選器時纔會加載它。直到提出此類請求時,iis 管理器纔會顯示 isapi 篩選器的狀態。另外,如果 isapi 篩選器需要 sf_notify_read_raw_data 篩選器通知,則當 iis 以工作進程隔離模式運行時,不會加載該篩選器。檢查 w3svc-wp 中事件的應用程序事件以驗證是否加載該篩選器。要解決此問題,請以 iis 5.0 隔離模式運行 iis,或者與 isapi 篩選器供應商聯繫以獲得有關兼容性的更新程序。

要點如果由於訪問控制列表 (acl) 的限制而使 iis 工作進程標識無法加載 isapi 篩選器,則請求收到 503 錯誤。要解決此問題,請在 isapi 篩選器 dll 上設置 acl 以允許訪問 iis_wpg 組。

iis 配置爲 iis 5.0 隔離模式

"iis 管理器"中,展開本地計算機,右鍵單擊"網站",然後單擊"屬性"
單擊"服務"選項卡,選中" iis 5.0 隔離模式運行 www 服務"複選框,然後單擊"確定"
要啓動 www 服務,請單擊""

下面還有一些呵呵

      1.如何讓asp腳本以system權限運行?

  修改你asp腳本所對應的虛擬目錄,把"應用程序保護"修改爲""....

  2.如何防止asp木馬?

  基於filesystemobject組件的asp木馬

  cacls %systemroot%"system32"scrrun.dll /e /d guests //禁止guests使用

  regsvr32 scrrun.dll /u /s //刪除

  基於shell.application組件的asp木馬

  cacls %systemroot%"system32"shell32.dll /e /d guests //禁止guests使用

  regsvr32 shell32.dll /u /s //刪除

  3.如何加密asp文件?

  從微軟免費下載到sce10chs.exe 直接運行即可完成安裝過程。

  安裝完畢後,將生成screnc.exe文件,這是一個運行在dos promapt的命令工具。

  運行screnc - l vbscript source.asp destination.asp

  生成包含密文asp腳本的新文件destination.asp

  用記事本打開看凡是""之內的,不管是否註解,都變成不可閱讀的密文了

  但無法加密中文。

  4.如何從iislockdown中提取urlscan?

  iislockd.exe /q /c /t:c:"urlscan

  5.如何防止content-location標頭暴露了web服務器的內部ip地址?

  執行

  cscript c:"inetpub"adminscripts"adsutil.vbs set w3svc/usehostname true

  最後需要重新啓動iis

  6.如何解決http500內部錯誤?

  iis http500內部錯誤大部分原因

  主要是由於iwam賬號的密碼不同步造成的。

  我們只要同步iwam_myserver賬號在com+應用程序中的密碼即可解決問題。

  執行

  cscript c:"inetpub"adminscripts"synciwam.vbs -v

  7.如何增強iis防禦syn flood的能力?

  windows registry editor version 5.00

  [hkey_local_machine"system"currentcontrolset"services"tcpip"parameters]

  '啓動syn攻擊保護。缺省項值爲0,表示不開啓攻擊保護,項值爲12表示啓動syn攻擊保護,設成2之後

  '安全級別更高,對何種狀況下認爲是攻擊,則需要根據下面的tcpmaxhalfopentcpmaxhalfopenretried

  '設定的條件來觸發啓動了。這裏需要注意的是,nt4.0必須設爲1,設爲2後在某種特殊數據包下會導致系統重啓。

  "synattackprotect"=dword:00000002

  '同時允許打開的半連接數量。所謂半連接,表示未完整建立的tcp會話,用netstat命令可以看到呈syn_rcvd狀態

  '的就是。這裏使用微軟建議值,服務器設爲100,高級服務器設爲500。建議可以設稍微小一點。

  "tcpmaxhalfopen"=dword:00000064

  '判斷是否存在攻擊的觸發點。這裏使用微軟建議值,服務器爲80,高級服務器爲400

  "tcpmaxhalfopenretried"=dword:00000050

  '設置等待syn-ack時間。缺省項值爲3,缺省這一過程消耗時間45秒。項值爲2,消耗時間爲21秒。

  '項值爲1,消耗時間爲9秒。最低可以設爲0,表示不等待,消耗時間爲3秒。這個值可以根據遭受攻擊規模修改。

  '微軟站點安全推薦爲2

  "tcpmaxconnectresponseretransmissions"=dword:00000001

  '設置tcp重傳單個數據段的次數。缺省項值爲5,缺省這一過程消耗時間240秒。微軟站點安全推薦爲3

  "tcpmaxdataretransmissions"=dword:00000003

  '設置syn攻擊保護的臨界點。當可用的backlog變爲0時,此參數用於控制syn攻擊保護的開啓,微軟站點安全推薦爲5

  "tcpmaxportsexhausted"=dword:00000005

  '禁止ip源路由。缺省項值爲1,表示不轉發源路由包,項值設爲0,表示全部轉發,設置爲2,表示丟棄所有接受的

  '源路由包,微軟站點安全推薦爲2

  "disableipsourcerouting"=dword:0000002

  '限制處於time_wait狀態的最長時間。缺省爲240秒,最低爲30秒,最高爲300秒。建議設爲30秒。

  "tcptimedwaitdelay"=dword:0000001e

  8.如何避免*mdb文件被下載?

  安裝ms發佈的urlscan工具,可以從根本上解決這個問題。

  同時它也是一個強大的安全工具,你可以從ms的網站上獲取更爲詳細的信息。

  9.如何讓iis的最小ntfs權限運行?

  依次做下面的工作:

  a.選取整個硬盤:

  system:完全控制

  administrator:完全控制

  (允許將來自父系的可繼承性權限傳播給對象)

  b."program files"common files

  everyone:讀取及運行

  列出文件目錄

  讀取

  (允許將來自父系的可繼承性權限傳播給對象)

  c."inetpub"wwwroot

  iusr_machine:讀取及運行

  列出文件目錄

  讀取

  (允許將來自父系的可繼承性權限傳播給對象)

  e."winnt"system32

  選擇除inetsrvcentsrv以外的所有目錄,

  去除"允許將來自父系的可繼承性權限傳播給對象"選框,複製。

  f."winnt

  選擇除了downloaded program fileshelpiis temporary compressed files

  offline web pagessystem32taskstempweb以外的所有目錄

  去除"允許將來自父系的可繼承性權限傳播給對象"選框,複製。

  g."winnt

  everyone:讀取及運行

  列出文件目錄

  讀取

  (允許將來自父系的可繼承性權限傳播給對象)

  h."winnt"temp:(允許訪問數據庫並顯示在asp頁面上)

  everyone:修改

  (允許將來自父系的可繼承性權限傳播給對象)

  10.如何隱藏iis版本?

  一個黑客可以可以輕易的telnet到你的web端口,發送get命令來獲取很多信息

  iis存放iis banner的所對應的dll文件如下:

  web:c:"winnt"system32"inetsrv"w3svc.dll

  ftp:c:"winnt"system32"inetsrv"ftpsvc2.dll

  smtp:c:"winnt"system32"inetsrv"smtpsvc.dll

  你可以用16進制編輯器去修改那些dll文件的關鍵字,比如iismicrosoft-iis/5.0

  具體過程如下:

  1.停掉iis iisreset /stop

  2.刪除%systemroot%"system32"dllcache目錄下的同名文件

  3.修改


另外,防火牆阻止,ODBC配置錯誤,Web服務器性能限制,線程限制等因素也是造成IIS服務器無法訪問的可能原因,這裏就不再一一饋述了。希望此帖能解決大家的大部分問題:)


網絡上有關iis的問題和相關解決方案,多不勝搜,但很多都比較零散,沒有系統的解決方案;另外,有些解決方法,似是而非,不能找到其中的問題關鍵點,本人平時對於服務器的應用上也有點實踐,因此,今天稍稍總結一點平時遇到地問題和解決方法,特別是對iis的特殊權限引起問題、iis應用程序池假死問題和比較罕見的iis重啓命令和自動重啓辦法。其它相關問題,繼續關注本博。

一、2003應用程序池自動死了,不能恢復了,一直出現 Service Unavailable 常見方法如下。

1:沒有打SP1補丁的時候會出現這個IIS6.0假死問題,但現在微軟都在自動更新裏面出補丁了,一般你打好最新補丁後是不會出現此問題了。(所以現在的IIS假死與這個關係不是很大)

2:從IIS6.0開始CPU資源都在應用池裏面限制了,不象以前的IIS.5。所以假死的池的緣故就是池被拉死,你在網站打不開的時候可以看到你的某個應用池是禁用的,上面出現一個紅叉。你鼠標右鍵啓動網站又會自動恢復。 這個原因:大概是以下幾個因數造成的。

(1):你限制了應用池的資源,限制得太小 比如:50這樣或更少更多一點,這個時候如果你這個池下面的網站佔用CPU太高,比如超過50% 那麼5分鐘後他就自動死了,手工默認建立的應用池默認是超過資源不操作。
出現上面這個情況解決方法:1:不限制CPU資源,(這個是不可取的,不限制資源,有的程序有BUG佔用資源厲害了的,服務器都會被拉死,你可能都無法操作服務器。)2:在超過資源那裏選擇關閉,這個關閉默認是失敗5次,90秒內恢復,一般默認就可。網站能自動恢復,這個關閉:不是永久關閉,意思是超過資源關閉,然後在某時間內自動恢復池。不操作就是不恢復,這個是很多人的誤區。

(2):內存限制 在IIS6.0應用池上面有虛擬內存和最大內存限制,如果你設置了這個。那麼網站訪問量大了 也會出現假死,所以不建議設置這裏。默認就可。

3:就是服務器自身內存太小,網站運行當然需要使用到內存了,當內存不夠的時候應用池也會死掉變成禁用。那麼只有等內存全部釋放出來才能恢復應用池了。出現這個情況:那麼你就要考慮加內存或者檢查到底是什麼程序佔用了內存了。比如MSSQL數據庫,這個可是吃內存得大戶啊,最好別和WEB服務器同時一個服務器上。很多人用1G內存做 2003系統,2003NET結構是很佔用內存的,所以做服務器選2003還得把內存加到2G或更高才好。 內存不夠上面 2點講到的,是沒辦法操作了,也無法自動恢復。

4:就是ACCESS數據庫太大或查詢太多,這個也會出現把IIS拉死,解決方法;修復ACCESS數據庫,或儘量少用ACCESS數據庫,升級至sqlserver數據庫;或者在技術方面革新,像現在有些網站系統,風訊、動易等cms;pjblog、zblog等博客程序,都支持生成靜態功能.

5:不同網站用不同應用池:根據你自己實際情況而定,站點大的最好獨立一個應用池,限制他的資源超過了自動回收,看上面(1)講到的,這樣就不影響其他站點。中型站點:多個網站共用一個應用池,比如5個站點用一個池,設置他資源時間等等。這樣他們就算超資源了也不影響其他應用池的網站。

6:設置回收時間:很多人以爲設置回收池越短越好,其實是錯誤的,每次回收當然是把內存回收回來了,但加重了一次服務器的負擔,當服務器比較繁忙的時候,有可能導致其他應用池死。所以建議設置共1000就行了。其他獨立池按照他網站流量而設置 可以設置600 也行,共用的不建議設置太短。

7:網站後臺過不了多久自動退出又要重新登陸:這個情況就是你設置回收時間太短了,按照 6點設置吧。 不要設置什麼20分、30分這樣的,這樣不好的。另外一個原因就是和站的響應設置時間有關,設置得稍長些。

8:windows 2003系統iis6訪問本機的站點時提示“Service Unavailable”;
查看iis的應用程序池,狀況提示爲:未指定錯誤,同時應用程序池自動停止運行

用事件查看器查看系統錯誤日誌,發現如下提示:
-----------------------------------
應用程序-特定 權限設置未將 COM 服務器應用程序(CLSID 爲
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 權限授予用戶 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用組件服務管理工具修改此安全權限。

解決方法,給NETWORK SERVICE 加上訪問iis服務的權限,具體方法如下:

點擊“開始”-“控制面板”-“管理工具”-“組件服務”-“計算機”-“我的電腦”-“DCOM”選項,
選擇其下的“IIS ADMIN SERVICE”,右健選擇“屬性”,找到“安全”,在“啓動和激活權限”中編輯“自定義”,添加帳號“NETWORK SERVICE ”,給該帳號賦予“本地啓動”和“本地激活”的權限,重新啓動IIS之後再訪問同一站點,則一切正常。

9:重啓IIS中的特定應用程序池命令和自動重啓的方法

在操作系統是Windows server 2003 SP1+的情況下,可以用以下命令部分重啓IIS應用程序池:

cscript.exe c:\windows\system32\iisapp.vbs /a "DefaultAppPool"

其中/a 代表alternatively,"DefaultAppPool"代表應用程序池的實例名。如果要設置自動重啓這個應用程序池,可以嘗試放在批處理中,用計劃任務調用此批處理即可。很多人覺得計劃任務不安全,都要禁掉,事實上,計劃任務的不安全是建立在其它方面不安全的前提上的,如果由於其它方面的不安全,被放入執行程序,計劃任務執行,這和計劃任務沒有直接關係。當然,關掉,是會減少一些安全隱患,這是不錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章