ISA Server 2004 或 ISA Server 2006 的下游伺服器不會重複使用 TCP 連線,到協力廠商的上游伺服器

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:934022
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
考慮下列案例。下游伺服器正在執行 Microsoft 網際網路安全性和加速 ISA Server 2004 或 Microsoft 網際網路安全性加速 ISA Server 2006。這個下游伺服器鏈結至協力廠商上游的伺服器,透過 Web 鏈結的組態。在這種情況下 ISA Server 並不重複使用已建立到上游伺服器的 TCP 連線。而是,ISA Server 接收 HTTP 回應後會關閉每個 TCP 連線。

當網路重度負載下時這種行為可能會導致 ISA Server 耗盡所有可用的 TCP 連接埠。
發生的原因
某些協力廠商 Proxy 伺服器傳送包含兩個以下的標頭之 HTTP 回應:
  • 內容長度
  • 傳輸編碼方式: 區塊
根據到 RFC 2616 規格區段 4.4,這些兩個標頭都互相排斥和必須不使用它們在一起。這個 HTTP 回應表示潛在的 HTTP smuggling 攻擊。因此,ISA Server 會將忽略內容長度標頭處理回應。然後,ISA Server 關閉 TCP 連線,以避免潛在的攻擊。
解決方案
解決方案
如果要解決這個問題,取得最新的 ISA Server Service Pack。 如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
954258如何取得最新網際網路安全性與加速 ISA Server 2006 Service Pack
891024如何取得最新的 ISA Server 2004 Service Pack
重要這些步驟可能會增加您的安全性風險。這些步驟也可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。我們建議處理程序,本文將告訴您,若要啟用程式如同它們設計用來操作,或是實作特定的程式功能。進行這些變更之前,我們建議您先評估在特定環境中實作這個程序相關聯的風險。如果決定實作這個程序採用任何其他的適當步驟,以協助保護系統。建議您只有您真正需要此程序時,才使用此程序。
警告TCP 連線,即使,在您依照這一節中的步驟執行之後將不關閉 ISA Server 2004 這兩個內容長度標頭和 」 傳遞編碼: 區塊 」 標頭都存在 HTTP 回應中。此解決方案可降低由 ISA Server 所提供的保護。因此,我們不建議您套用此變更,除非上游伺服器提供 HTTP smuggling 攻擊的保護。

若要變更預設 ISA 行為,請依照下列步驟執行:
  1. 如果要解決這個問題,取得最新的 ISA Server Service Pack。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    954258如何取得最新網際網路安全性與加速 ISA Server 2006 Service Pack
    891024如何取得最新的 ISA Server 2004 Service Pack
  2. 啟動 [記事本]。
  3. 複製下列程式碼,然後將它貼到 「 記事本 」:
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Copyright (c) Microsoft Corporation. All rights reserved.' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS' HEREBY PERMITTED.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''	''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' This script sets whether ISA will keep connections open after it receives an HTTP ' response that contains both a Content-Length header and a Transfer-Encoding: Chunked header.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "EnableKb934022"Const SE_VPS_VALUE = trueSub SetValue()    ' Create the root object.    Dim root  ' The FPCLib.FPC root object    Set root = CreateObject("FPC.Root")    'Declare the other objects needed.    Dim array       ' An FPCArray object    Dim VendorSets  ' An FPCVendorParametersSets collection    Dim VendorSet   ' An FPCVendorParametersSet object    ' Get references to the array object    ' and to the network rules collection.    Set array = root.GetContainingArray    Set VendorSets = array.VendorParametersSets    On Error Resume Next    Set VendorSet = VendorSets.Item( SE_VPS_GUID )    If Err.Number <> 0 Then        Err.Clear        ' Add the item.        Set VendorSet = VendorSets.Add( SE_VPS_GUID )        CheckError        WScript.Echo "New VendorSet added... " & VendorSet.Name    Else        WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value(SE_VPS_NAME)    End If    if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then        Err.Clear        VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE        If Err.Number <> 0 Then            CheckError        Else            VendorSets.Save false, true            CheckError            If Err.Number = 0 Then                WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"            End If        End If    Else        WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"    End IfEnd SubSub CheckError()    If Err.Number <> 0 Then        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description        Err.Clear    End IfEnd SubSetValue
  4. 將文字檔案儲存為"Enable934022]。
  5. 開啟命令提示字元,切換至在其中儲存指令碼,位置,然後在命令提示字元執行下列命令:
    cscript Enable934022.vbs
附註若要還原為預設設定,編輯指令碼藉由變更 「 Const SE_VPS_VALUE = true"to"Const SE_VPS_VALUE = 設定為 False 時則"儲存指令碼,然後再執行一次。
狀況說明
Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。
其他相關資訊
如需有關如何安裝 ISA Server Hotfix 及更新的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
885957如何安裝 ISA Server Hotfix 及更新

內容

文章識別碼:934022 - 最後檢閱時間:01/15/2015 09:28:29 - 修訂: 2.0

Microsoft Internet Security and Acceleration Server 2004 Standard Edition, Microsoft Internet Security and Acceleration Server 2004 Enterprise Edition, Microsoft Internet Security and Acceleration Server 2006 Standard Edition, Microsoft Internet Security and Acceleration Server 2006 Enterprise Edition

  • kbnosurvey kbarchive kbmt kbtshoot kbexpertiseinter kbprb KB934022 KbMtzh
意見反應