網際網路伺服器無法使用,因為惡意的 SYN 攻擊的

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

在此頁中

徵狀

在電腦上執行 TCP/IP 通訊協定,和的已連線至網際網路、 某些或所有網路服務來呈現無法使用,],且網路用戶端螢幕上出現如下所示的錯誤訊息]:
遠端主機重設連接。
執行 Windows NT,例如 UNIX 以外的其他作業系統的電腦上,也可能會發生這個徵狀正在呈現無法使用的所有網路服務。

發生的原因

當電腦已經成為目標惡意攻擊著名的 TCP/IP SYN 氾濫"或"SYN 攻擊] 時,就會發生這個問題。

惡意使用者可以目標的整個的機器或特定 TCP 服務,例如 Web 服務。 攻擊著重在網際網路上的所有電腦都使用的 TCP 通訊協定,且不特定的 Windows NT 作業系統。

SYN 氾濫的運作方式

SYN 氾濫運作如下:
  • TCP 連線要求 (SYN) 會傳送到目標電腦。「 詐騙 」 或取代的位址,不在使用在網際網路上或到另一台電腦的所屬來源 IP 位址,封包中。攻擊者會傳送許多這些 TCP SYNs 佔盡可能在目標電腦上的多個資源。
  • 在收到連線要求,目標電腦會配置資源來處理,並追蹤新的連線,然後會回應一個"SYN-ACK 」。在這種情況下傳送回應至詐騙"不存在 IP 位址。
  • 沒有回應接收到 SYN ACK.A 預設-設定 Windows NT 3.5 x 或 4.0 版的電腦將重新傳輸 SYN ACK 5 次,加倍後每個重新傳輸逾時值。初始的逾時值是 3 秒重試嘗試在 3、 6、 12、 24,所以和 48 的秒數。在最後的重新之後 96 秒被允許傳遞之前在電腦上接收到回應提供與解除配置所設定的資源預留較早的連線。使用中的資源已耗用時間總和為 189 秒。

如何確認您的電腦是否受到 SYN 攻擊

如果您懷疑您的電腦為目標的 SYN 攻擊,您可以在命令提示字元下,若要檢視連線 SYN_RECEIVED 」 狀態中輸入下列命令:
netstat-n-p tcp
這個命令可能會造成您螢幕上出現下列文字:
使用中連線
      Proto  Local Address         Foreign Address       State
      TCP    127.0.0.1:1030        127.0.0.1:1032        ESTABLISHED
      TCP    127.0.0.1:1032        127.0.0.1:1030        ESTABLISHED
      TCP    10.57.8.190:21        10.57.14.154:1256     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1257     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1258     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1259     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1260     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1261     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1262     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1263     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1264     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1265     SYN_RECEIVED
      TCP    10.57.8.190:21        10.57.14.154:1266     SYN_RECEIVED
      TCP    10.57.8.190:4801      10.57.14.221:139      TIME_WAIT
				
如果大量連線是處於 SYN_RECEIVED 狀態,有可能在系統受到攻擊。網路分析程式可以用來追蹤問題進一步,可能需要連絡您的網際網路服務提供者以尋求協助在嘗試追蹤來源。

而異的佔用連線資源效果,TCP/IP 堆疊和 TCP 連接埠上接聽的應用程式而定。對於大多數的牌堆沒有上可以處於半開啟狀態 (SYN_RECEIVED) 狀態的連線數目限制。一旦達到限制為給定的 TCP 連接埠,目標電腦回應重設所有進一步的連線要求直到釋放資源。

解決方案

取得下列更新的 Windows NT 3.51 或最新服務封包的 Windows NT 4.0

Microsoft 致力於提供最佳的可能保護對抗這些攻擊從 Windows NT 作業系統內並做了變更數到它的 TCP/IP 元件以回應這個威脅的客戶可以使用。

這個全域金鑰已被設計用來保護不受攻擊,並設定發行項為已知有效的值稍後所述的其他金鑰。此機碼可以避免需要了解哪種值會提供大部分保護的系統管理員猜測。強烈建議使用下列通用的機碼:

SynAttackProtect
索引鍵: Tcpip\Parameters
值類型: REG_DWORD
有效範圍: 0、 1、 2
0 (無 synattack 保護)
1 (減少重新傳輸重試和延遲 RCE (路由快取項目) 建立,如果滿足 [TcpMaxHalfOpen] 和 [TcpMaxHalfOpenRetried 設定)。
2 (除了 1 至 Winsock 延遲的指示由)。

注意: 當系統尋找本身遭受攻擊任何通訊端 (Socket) 上的下列選項可以不再啟用: sScalable 視窗 (RFC 1323),且每個介面卡設定 TCP 參數 (初始 RTT,視窗大小)。這是連線的因為傳送 SYN ACK 和 Winsock 選項並不位於這個階段之前,保護正常運作時所不查詢路由快取項目。

預設值: 0 (假)
建議: 2
描述: 減少的重新傳輸 SYN-認可,可減少資源具有保持已配置的時間為涉及 Synattack 保護。路由快取項目資源配置會延遲直到進行連線。如果 synattackprotect = 2,則指示 AFD 上的連接將會延遲直到完成三向信號交換。同時也請注意保護機制,所採取的動作會只發生是否超過 TcpMaxHalfOpen 和 TcpMaxHalfOpenRetried 設定。

注意: 如果上述的全域金鑰已證明無效,或特定的資源限制會被叫用,應只被改變下列的機碼。

所做的變更會列在這裡:
*******************************************************************
*  1. Tcpip.sys times out half-open connections faster            *
*******************************************************************
				
Tcpip.sys 的新版本已經被產生,可讓控制項的 TCP 連線的回應要求 (SYN ACK) 的次數將會重新傳輸。透過新的登錄參數處理控制項:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \Tcpip
      \Parameters
       \TcpMaxConnectResponseRetransmissions
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 2
				
這個參數的預設值現在是 3。下表顯示這個參數的各種值的 Windows NT 4.0 TCP/IP 行為:
Value  Retransmission Times  Elapsed Time  Comments
3      3, 6, and 12 seconds  45 seconds    Cleanup 24 secs after last retx
2      3, and 6 seconds      21 seconds    Cleanup 12 secs after last retx
1      3 seconds             9  seconds    Cleanup 6  secs after last retx
				
這個參數變更預設時間它引導至清除半開放 TCP 連線從 189 秒為 45 秒,並給系統管理員提供更細微的控制。遭受大量攻擊的網站可能會設定值為"1"越低。"0"的值也是有效 ; 但是如果這個參數設定為 0,SYN ACK 重新將不會傳輸在所有然後會逾時 3 (以秒為單位)。此低值來自遠方的用戶端的合法連線嘗試可能會失敗。
*******************************************************************
*  2. NetBT has a Higher, Configurable Backlog                    *
*******************************************************************
				
NetBT (透過 TCP/IP NetBIOS) 會使用 TCP 連接埠 139,Microsoft 網路服務會用它如檔案及列印共用。版本 3.51 和 4.0 NetBT 有連線的"積存"區塊可用,為兩個再加上取決於 NetBT 用戶端 (例如重新導向器、 伺服器和執行任何 NetBIOS 應用程式) 的增量數量。在典型的伺服器上這個數字會 7-11。新版本的 NetBT 已經被產生自動配置更多的連接區塊視需要以可設定的方式。

連線事件它現在檢查來查看是否可用區塊數量低於 2,且如果是這樣,會在 「 遞增 」 數字的區塊,其中 「 遞增 」 是可設定在登錄下列所示:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \NetBt
      \Parameters
       \BacklogIncrement
           Value Type: REG_DWORD
           Valid Range: 1-0x14  (1-20 decimal)
           Default: 3
				
每個連接區塊會消耗 78 個位元組的記憶體。可以由 NetBT 配置連線區塊總數也是可設定的登錄:
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \NetBt
      \Parameters
       \MaxConnBackLog
           Value Type: REG_DWORD
           Valid Range: 1-0x9c40 (1-40,000 decimal)
           Default: 1000
				
MaxConnBackLog 預設值為 1000,但可以設定高達 40,000。連接區塊是 「 清除 」 或回收時 SYN ACK 重新傳輸計時器到期,TCP 就會失敗的連線嘗試。
*******************************************************************
*  3. Afd.sys has been modified to withstand large numbers of     *
*     "half-open" connections efficiently                         *
*******************************************************************
				
Windows 通訊端應用程式例如 FTP 伺服器和 Web 伺服器有 Afd.sys 由處理其連線嘗試。Afd.sys 已經修改 「 半開放 」 狀態支援大量連線而不拒絕合法用戶端的存取。這是藉由允許系統管理員設定動態積存而達成的。

新版的 Afd.sys 支援了四種新的登錄參數,可用來控制動態積存的行為。

EnableDynamicBacklog 是啟用或停用動態積存的通用參數。其預設值為 0 (關閉),並這項設定提供從現有的版本沒有變更。將它設定為 1 啟用新的動態積存功能。
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \EnableDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0,1
           Default: 0
           Suggested value for a system under heavy attack: 1
				
MinimumDynamicBacklog 控制接聽端點上允許的可用連線數目最小值。如果可用連線數目小於此值,執行緒被佇列建立額外的可用連線。這個值應該不會進行太大時動態積存的程式碼執行時的可用連線數目低於這個值。值太大可能導致效能降低。
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \MinimumDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: 20
				
MaximumDynamicBacklog 控制接聽端點上允許的 quasi-free 」 連線的最大數目。quasi-free"連線納入一個半連接 (SYN_RECEIVED) 狀態中的可用連線再加上那些連線數目。不嘗試建立額外的可用連線,如果因此這樣做會超過這個值。
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \MaximumDynamicBacklog
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: Memory
           dependent. We recommend that this value does not exceed 20000 (decimal). This prevents exhaustion of the non-paged pool when under attack. 
				
DynamicBacklogGrowthDelta 控制來建立其他連線時所需的可用連線數目。要小心使用這個值大的值可能會導致爆炸的可用連線配置因為
  HKEY_LOCAL_MACHINE
  \SYSTEM
   \CurrentControlSet
    \Services
     \AFD
      \Parameters
       \DynamicBacklogGrowthDelta
           Value Type: REG_DWORD
           Valid Range: 0-0xFFFFFFFF
           Default: 0
           Suggested value for a system under heavy attack: 10 (0xa)
				
MaximumDynamicBacklog,
若要利用所做的變更至 Afd.sys,Windows 通訊端應用程式必須特別要求積存大於當它們發出其 listen() 呼叫針對 MinimumDynamicBacklog 設定值。Microsoft 應用程式 (例如網際網路資訊伺服器 (具有 25 的預設積存) 是可以設定的。從在 「 Microsoft 知識庫可用的特定應用程式的詳細資訊如下:
http://support.microsoft.com
Windows NT 3.51 修改過的驅動程式和安裝它們的指示是可從 Microsoft 支援頻道] 或 [從下列的網際網路位置:
ftp://ftp.microsoft.com/bussys/winnt /winnt-public/fixes/usa/nt351/hotfixes-postsp5/syn-attack

狀況說明

Windows NT 4.0

這個問題已經在最新 Microsoft Windows NT 美國服務封包的 Windows NT 4.0 中獲得修正。如需取得 Service Pack 資訊,查詢下列單字 「 Microsoft 知識庫 」 中:
SERVPACK

Windows NT 3.51

Microsoft 已確認此問題可能會導致某種程度的 Windows NT 3.51 的版本中的安全性弱點。完全支援的修正您現在可以取得,但它有未經完整的迴歸測試,應該只套用到系統判定為攻擊風險。請評估您的系統實體存取設定、 網路及網際網路連線能力以及其他因素,以判斷您的系統的風險程度。如果您的系統是夠風險,Microsoft 建議您套用此修正程式。否則,等待下一個的 Windows NT Service Pack,將包含此修正程式。如需詳細資訊,請連絡 Microsoft 技術支援部門。

其他相關資訊

新增這些登錄變更,可能會對 Microsoft Exchange 叢集具有負面的影響。

Microsoft Exchange 叢集 (Exres.dll) 經常會啟始連線到 SMTP]、 [IMAP]、 [POP3] 及 [HTTP 連接埠,以測試可用性。測試很類似到連接埠 25、 143、 110 或 80 的 Telnet 工作階段。

如果測試成功,叢集會知道服務使用者可使用,以及將它們標示為 Alive 」。如果測試不是成功的叢集系統管理員將標示為離線,在 [叢集系統管理員資源,然後應用程式記錄檔中記錄事件。事件是:

事件類型: 錯誤
事件來源: MSExchangeCluster
事件類別: 服務
事件識別碼: 2074年
日期: date
時間: time
使用者: N/A
電腦: computer name
描述: SMTP 虛擬伺服器執行個體-(125-VS2-NAME): 叢集服務無法檢查資源的 isalive。

屬性

文章編號: 142641 - 上次校閱: 2007年2月20日 - 版次: 5.3
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard 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)
關鍵字:?
kbmt kbnetwork KB142641 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:142641
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