說明新的 TCP 堆疊記憶體壓力保護功能

文章翻譯 文章翻譯
文章編號: 974288 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

簡介

本文說明新的 TCP 堆疊記憶體壓力保護功能。這個新功能是由安全性更新 967723 所提供。

其他相關資訊

「記憶體壓力保護」功能由三個安全性設定組成。這些設定包括「記憶體壓力保護」(MPP)、「設定檔」和「連接埠豁免」。

MPP 設定

MPP 設定會定義功能,且會在偵測到攻擊時,包含下列兩個活動:
  • 刪除現有的 TCP 連線。
  • 捨棄傳入的 SYN 要求。
系統管理員可以使用 netsh 命令來啟用或停用 MPP 設定。當系統管理員啟用或停用 MPP 設定時,此功能也會隨之啟用或停用。

「設定檔」設定

「設定檔」功能可協助系統管理員區分公用和非公用介面。如果介面可存取網域控制站,則表示該介面已加入網域,或是系統管理員可將介面設定為私人使用。只有 Windows Vista 及 Windows Server 2008 有提供「設定檔」功能。

當電腦遭受攻擊且記憶體不足時,「設定檔」設定會判定電腦在已加入網域之介面和在私人介面上刪除 TCP 連線,以及捨棄傳入 SYN 要求的功能。在 Windows Server 2003 上,系統管理員必須使用登錄項目,才能在特定介面上停用 MPP 功能。如需詳細資訊,請參閱<在 Windows Server 2003 中設定這些設定值>一節。依據預設,「設定檔」設定為啟用。若啟用此設定,系統管理員會決定在任何情況下,都不會在已加入網域之介面和在私人介面上,刪除 TCP 連線以及捨棄 SYN。如果系統管理員在遭受攻擊時,要在已加入網域之介面和在私人介面上刪除 TCP 連線和捨棄 SYN,則必須停用「設定檔」設定。

注意如果已啟用 MPP 設定且偵測到攻擊,則系統管理員便無法停止在公用介面上刪除連線,即使已啟用「設定檔」設定。「設定檔」設定功能的適用對象是已加入網域的介面和私人介面。但是,在這些情況下,系統管理員可以使用「連接埠豁免」設定,將公用介面上的特定連接埠排除在 MPP 動作的執行範圍之外。

「連接埠豁免」設定

「連接埠豁免」設定可讓系統管理員制定連接埠特定的例外狀況。依預設,啟用 MPP 設定時,就會針對所有連接埠上的連線啟用「記憶體壓力保護」功能。如果偵測到攻擊,會根據 MPP 或「設定檔」設定來刪除現有連線或捨棄傳入的 SYN。不過,系統管理員可在連接埠例外狀況清單中加以指定,便能在特定連接埠上設定連線的例外狀況。

注意
  • 「連接埠豁免」清單是一個全域清單,適用於所有介面和 IP 位址。
  • 「連接埠豁免」設定會先生效,而後才能在連接埠上建立任何 TCP 連線。建議您先設定與 MPP 相關的所有設定,再啟動伺服器應用程式。

這些設定在伺服器及用戶端上的預設值

摺疊此表格展開此表格
伺服器上的預設值用戶端上的預設值
MPP啟用停用
設定檔啟用啟用
連接埠豁免沒有豁免狀況沒有豁免狀況
注意如果這些設定有所變更,且系統管理員希望回復至預設值,則系統管理員可使用下列 netsh 命令:
netsh int tcp reset
注意 請先參閱<已知問題>一節,然後再使用 netsh int tcp reset 命令。

在 Windows Vista 中設定這些設定

系統管理員可以使用 netsh 命令,在執行期間更新 MPP、「設定檔」及「連接埠豁免」設定。這些設定會判定 TCP 連線是否為剪除的候選連線。建立該 TCP 連線的「傳輸控制區塊」時,會根據當時的設定執行此評估。
  • netsh int tcp reset

    將安全性設定連同其他 TCP 設定一併重設。這些安全性設定包括 MPP、「設定檔」、「連接埠豁免」和連線速率限制設定。
  • netsh int tcp show security

    顯示 MPP、設定檔、連接埠豁免目前適用的安全性設定 (若有的話)。
  • netsh int tcp set security mpp=[enabled|disabled|default]

    切換 MPP 設定。
  • netsh int tcp set security Profiles=[enabled|disabled|default]

    切換「設定檔」設定。
  • netsh int tcp set security startport=<x> numberofports=<y+1> mpp=[enabled|disabled|default]

    針對範圍從 xx+y 的連接埠指定連接埠豁免。您應該確定 xx+y 是否在有效連接埠範圍 (0 - 65535) 內。

    範例

    新增連接埠範圍豁免:
    在命令提示字元中輸入下列命令,然後按下 ENTER:
    netsh int tcp set security startport=5000 numberofports=10 mpp=disabled
    此命令可針對 5000 (含) 到 5009 (含) 的連接埠停用 MPP 功能。

    刪除連接埠範圍豁免:
    在命令提示字元中輸入下列命令,然後按下 ENTER:
    netsh int tcp set security startport=5000 numberofports=10 mpp=enable
    此命令可刪除在第一個範例中新增的豁免項目。

    注意netsh int tcp set security 命令不處理重疊的連接埠範圍和子範圍。

在 Windows Server 2003 中設定這些設定值

在 Windows Server 2003 中,您必須使用登錄來設定這些設定值。

在 Windows Server 2003 中設定 MPP 設定值

重要 這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 如何在 Windows 中備份及還原登錄


若要啟用或停用 MPP 設定,請使用下列登錄項目。
注意依據預設,下列登錄項目預設無法使用。您必須建立才能修改這些項目。雖然目前沒有登錄項目,但預設會啟用 MPP 設定,而且不會有任何連接埠遭到豁免。
  • 網際網路通訊協定第 4 版 (IPv4):
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableMPP
  • 網際網路通訊協定第 6 版 (IPv6):
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\EnableMPP
例如,您可以依照下列步驟在 IPv4 上停用 MPP 設定:
  1. 按一下 [開始],再按一下 [執行],在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. [編輯] 功能表上,指向 [新增],然後按一下 [DWORD 值]
  4. 輸入 EnableMPP,然後按下 ENTER。
  5. 用滑鼠右鍵按一下 [EnableMPP],然後按一下 [修改]
  6. [數值資料] 方塊中,輸入 0,然後按一下 [確定]
  7. 結束「登錄編輯程式」。
  8. 重新啟動電腦。
注意
  • 如果您要重新啟用 MPP 設定,請將 EnableMPP 登錄項目的 DWORD 值設定為 1,然後再重新啟動電腦。
  • 您可以依照這些相同的步驟,在 IPv6 上設定 MPP 設定的下列登錄項目:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\EnableMPP

在 Windows Server 2003 中,針對特定介面設定 MPP 設定值

重要 這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 如何在 Windows 中備份及還原登錄


注意 依預設,在 Windows Server 2003 上,所有介面都會啟用 MPP 功能。

若要針對特定介面啟用或停用 MPP 設定,請使用下列登錄子機碼:
  • IPv4:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\<GUID>\DisableMPPOnIF
  • IPv6:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip6\Parameters\Interfaces\<GUID>\DisableMPPOnIF
例如,您可以依照下列步驟,在 IPv4 上針對特定介面停用 MPP 設定:
  1. 按一下 [開始],再按一下 [執行],在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\<GUID>
  3. [編輯] 功能表上,指向 [新增],然後按一下 [DWORD 值]
  4. 輸入 DisableMPPOnIF,然後按下 ENTER。
  5. 用滑鼠右鍵按一下 [DisableMPPOnIF],然後按一下 [修改]
  6. [數值資料] 方塊中,輸入 1,然後按一下 [確定]
  7. 結束「登錄編輯程式」。
  8. 重新啟動電腦。
注意您可以依照這些相同的步驟,在 IPv6 上針對特定介面設定 MPP 設定的下列登錄子機碼:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip6\Parameters\Interfaces\<GUID>\DisableMPPOnIF

在 Windows Server 2003 中設定連接埠豁免設定

重要 這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 如何在 Windows 中備份及還原登錄


若要針對範圍從 xy 的連接埠指定連接埠豁免,請使用下列登錄項目:
  • IPv4:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MPPExcludedPorts
  • IPv6:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\MPPExcludedPorts
例如,您可以依照下列步驟,在IPv4 上針對範圍從 xxxxyyyy 的連接埠,指定連接埠豁免:
  1. 按一下 [開始],再按一下 [執行],在 [開啟] 方塊中輸入 regedit,然後按一下 [確定]
  2. 找出並按一下下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. [編輯] 功能表上,指向 [新增],再按一下 [多字串值]
  4. 輸入 MPPExcludedPorts,然後按下 ENTER。
  5. 用滑鼠右鍵按一下 [MPPExcludedPorts],然後按一下 [修改]
  6. [數值資料] 方塊中,輸入 xxxx- yyyy 格式的連接埠範圍 (例如 5000-5010),然後按一下 [確定]
  7. 結束「登錄編輯程式」。
  8. 重新啟動電腦。
注意
  • 您必須指定 xxxx-yyyy 格式的連接埠範圍,其中 xxxxyyyy 為有效的連接埠範圍。此範圍包含開始值和結束值。
  • 您可以依照這些步驟,在 IPv6 上設定「連接埠豁免」設定的下列登錄子機碼:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\MPPExcludedPorts
  • 有可以在此清單中指定的 12 個連接埠範圍限制。其他範圍會被忽略,且不會套用豁免。

已知問題

  • 在 Windows Vista SP2 及 Windows Server 2008 SP2 上,連線速率限制會受到 netsh int tcp reset 命令的影響。

    安裝此安全性更新之前,netsh int tcp reset 命令會重設 TCP 設定。這包括 Chimney 參數、明確擁塞通知 (ECN)、接收視窗自動調整、複合 TCP (CTCP) 及時間戳記。安裝此安全性更新之後,netsh int tcp reset 命令也會重設安全性設定,包括 MPP、設定檔和連線速率限制設定。即使預期會設定 MPP 及設定檔設定,但在執行期間仍會重設連線速率限制設定。若要再次設定連線速率限制,您必須修改登錄子機碼。 如需有關連線速率限制設定的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    969710 如何在 Windows Vista (含 Service Pack 2) 與 Windows Server 2008 (含 Service Pack 2) 中啟用半開放的 TCP 連線限制
  • 在 Windows Server 2003 中,如果您先後安裝安全性更新 967723 然後才安裝 IPv6,則事件記錄檔會包含與 IPv6 事件識別碼 4229 相似之下列資訊的資訊:
    找不到來自來源 Tcpip6 之事件識別碼 4229 的描述。本機電腦可能並未安裝引發此事件的元件,或安裝已損毀。您可以在本機電腦上安裝或修復該元件。

    如果事件源自其他電腦,則儲存它們時必須一併儲存顯示資訊。

    下列資訊已隨附於該事件:

    訊息來源已存在,但在字串/訊息資料表中找不到該訊息
    如果要解決這個問題,您必須重新安裝更新或是手動新增下列登錄子機碼:
    • 在 Windows Server 2003 SP2 中,在
      HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile
      下方新增字串 %systemroot%system32\w03a3409.dll
    • 在 Windows Server 2003 SP1 中,在
      HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile
      下方新增字串 %systemroot%system32\w03a2409.dll
    • 在 Windows Server 2003 中,在
      HKLM\System\CCS\Services\eventlog\System\tcpipv6\EventMessageFile
      下方新增字串 %systemroot%system32\ws03res.dll

屬性

文章編號: 974288 - 上次校閱: 2009年9月10日 - 版次: 1.3
這篇文章中的資訊適用於:
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Vista 商用入門版
  • Windows Vista 商用進階版
  • Windows Vista 家用入門版
  • Windows Vista 家用進階版
  • Windows Vista Starter
  • Windows Vista 旗艦版
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard x64 Edition
關鍵字:?
kbsecvulnerability kbsecbulletin kbsecadvisory kbaccctrl kbsurveynew kbexpertisebeginner atdownload KB974288
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com