鞏固 TCP/IP stack 防止 DoS 侵襲

Home Home
引用 | 編輯 Kilian
2006-06-23 11:14
樓主
推文 x0
資訊來源自: Microsoft Windows Security Resource Kit, Microsoft Press
註冊檔是根據以上設定自行匯出,
它建議內聯網也應該要做這些設定;

DoS = Denial of Service

本人把裡面
EnablePMTUDiscovery = 0
改為
EnablePMTUDiscovery = 1
因為 0 可能對網路速度有影響,但這要視乎個別情況,你可以把它改回;

本人在 2 部電腦用了沒有不良效果,

把 zip 解壓, 點 2 次 reg 直接匯入;

有問題歡迎提出!

還有另一個相關 reg 可以加上, 看你們的反應和支持...
表情

本帖包含附件
檔名: zip Harden TCPIP.zip   (2022-06-09 14:01 / 1 KB)  
下載次數:129


獻花 x1
引用 | 編輯 adelin
2006-06-23 14:48
1樓
  
EnablePMTUDiscovery = 0
改為
EnablePMTUDiscovery = 1
因為 0 可能對網路速度有影響,但這要視乎個別情況
+此會對網路速度有何影響?不切割會較快?

微軟網站有提到
如果值非 0,攻擊者可使 MTU 值很小,強制服務器分割大量的數據包,然後使它超負荷工作
+讓我迷惑到底要設多少才是安全的...0跟1哪個是切割哪個是不切割?看到很多地方說法都不一樣,並且跟Windows2000好像也又不一樣...

獻花 x0
引用 | 編輯 Kilian
2006-06-24 03:46
2樓
  
EnablePMTUDiscovery = 0
意思是
不允許 (enable = 0, 即是 disable) TCP 找出 (discover) path MTU 的實際大小,只用 path MTU 預設值 576 bytes,

packet 太大和太小影響網路速度,

這個設定在一些網路優化加快寬頻內有,

安全無絕對,但採用了以上其他設定,應該 OK,

如果系統不能做 DoS attacks,MTU 大小對 DoS 也沒關係

Win 2000 和 XP 的 TCP/IP 好像有少許分別, 但始終是 TCP/IP protocol, 以上應該適用

獻花 x0
引用 | 編輯 aa
2006-06-27 08:49
3樓
  
不好意思,問一下 Kilian

你提到的這個 reg 跟下面這篇的設定是不是不一樣,因為最近我的 XP 自動更新後,開論壇常常會發生無法開始網頁(原來我的 tcp 又被改為10了),這個在今年1月初時更新 XP 後,也發生過,後來我找到下面這篇,把 tcp 設到最大後,就很正常的開論壇網頁了,最近我發現很多會員有跟我一樣的問題,我想這個是不是要寫一篇教學文章,我加到公告中,讓大家知道,不然會員會以後論壇主機不穩,其實不是論壇的問題,而是 XP 的問題.. 表情

http://bbs.mychat.to/read.php?tid=498771&keyword=tcp

獻花 x0
引用 | 編輯 upside
2006-06-27 09:42
4樓
  
小弟路過 回答一下
TCP 問題 該文中有提到
主要是由於防止被蠕蟲攻擊,SP2自動將TCP/IP連線數修改為10,連線數10對於BT多點下載或是P2P軟體的確稍嫌不夠,速度明顯變慢。
也就是說 TCP 只是將下載連結數 設定為10 造成 P2P 等下載軟體無法利用多連接數來下載 而速度變慢
修改數字後 就可完全發揮該頻寬
而 Kilian 版大的 登錄檔 說明中
EnablePMTUDiscovery = 0
意思是
不允許 (enable = 0, 即是 disable) TCP 找出 (discover) path MTU 的實際大小,只用 path MTU 預設值 576 bytes
就是說 把 MTU 關閉 造成 駭客 無法利用大量封包來攻擊你的電腦
因為 該設定值只有 576 BYTES 這樣該攻擊就造成無效率

獻花 x0
引用 | 編輯 adelin
2006-06-27 10:33
5樓
  
小弟找到一篇文章,搞不好有些網頁瀏覽有問題就是這個 MTU 大小設定的關係...
http://linux.vbird.org/problem/adsl_windows/problem_2.php
他的意思是要把MTU 改成此設定值 PPPoE(ADSL用的) 1492 ?

不允許 (enable = 0, 即是 disable) TCP 找出 (discover) path MTU 的實際大小,只用 path MTU 預設值 576 bytes
+網路的攻擊,應該跟這兩個MTU大小有關吧...

慘了...上課上一上通通忘光光... 表情

獻花 x0
引用 | 編輯 upside
2006-06-27 10:51
6樓
  
http://forums.speedguide.net:8117/
該文中 有一測試連結 可以測試出你的系統與網路最佳 設定值
但是我測試出來就是 1492 所以應該沒問題

獻花 x0
引用 | 編輯 Kilian
2006-06-27 11:46
7樓
  
下面是引用aa於2006-06-27 08:49發表的 :
不好意思,問一下 Kilian

你提到的這個 reg 跟下面這篇的設定是不是不一樣,因為最近我的 XP 自動更新後,開論壇常常會發生無法開始網頁(原來我的 tcp 又被改為10了),這個在今年1月初時更新 XP 後,也發生過,後來我找到下面這篇,把 tcp 設到最大後,就很正常的開論壇網頁了,最近我發現很多會員有跟我一樣的問題,我想這個是不是要寫一篇教學文章,我加到公告中,讓大家知道,不然會員會以後論壇主機不穩,其實不是論壇的問題,而是 XP 的問題.. 表情

http://bbs.mychat.to/read.php?tid=498771&keyword=tcp

站長不用客氣!

我那個 reg 不是像另外那一篇改 tcpip.sys 的數目,

個人覺得 tcpip.sys 的數目越大, 有潛在的風險, 否則 MS 也不會限制它, 至於是否要改大, 這沒有肯定答案, 見仁見智, 如果對網路安全認真的, 本人不建議改大, 至少不是改最大;

我自己電腦沒有改 tcpip.sys 的數目, WinXP SP2 用 Firefox 來這裡從來沒有問題! IE 就不知道了; 所以不一定關 tcpip.sys 數目的事! 可能這個 eventID tcpip.sys patch 與 IE 有衝撞?

對於那個 reg 內容 tcpip parameters 的詳細說明, MS 有個文章講, 我找到就把連結貼上,

無論如何, 那個 reg 內容可以直接開啟(編輯)看看, 用了有何問題隨時可以自行改回, 當然我也希望大家在這裡回報...

MS 的更新已不只一次改回 tcpip.sys 的數目, 未來的也會, 我想站長在公告提出 tcpip.sys patch 和 Windows更新之可能涉及 IE 問題或許已經足夠

獻花 x0
引用 | 編輯 upside
2006-06-27 12:30
8樓
  
版大說的沒錯 tcpip.sys 的數字 的確有此迷思
我也實際測試過 有開與沒開 感覺沒多大差別
P2P 軟體只要越多人下載 剛好又有大管開放
不管是開10 或 開100 都是一樣的快

獻花 x0
引用 | 編輯 Kilian
2006-06-28 05:36
9樓
  
謝謝 upside 分享你的經驗,

網路涉及許多因素, 由硬體到軟體, 和你家外你不能控制的,

TCP/IP 亦有些複雜, 許多個設定,

本人非網路高手, 亦絕不是黑客, pMTU 對 DoS 的影響恕不能深入分析... 表情

獻花 x0
引用 | 編輯 omniplay
2007-01-16 19:31
10樓
  
引用:路徑最大傳輸單元 (PMTU) 黑洞路由器(簡體版)

檢測 PMTU 黑洞路由器
PMTU 黑洞路由器會給 TCP 連接帶來問題。例如,Microsoft® Windows® XP 和 Windows Server™2003 中的 TCP/IP 協議默認情況下會使用 PMTU 發現。TCP 會發送 DF 標記設置為 1 的數據段,並且在需要時,會根據符合 RFC 1191 定義的“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息的回執(其中包含 IP MTU),更改 TCP MSS 值。

在 TCP 三次握手期間交換的 TCP 數據段不會太大,因而不會被 PMTU 黑洞路由器丟棄。但是,一旦開始在連接上傳輸數據—假定基於協商的 MSS 確定的 PMTU 比實際 PMTU 大—TCP 數據段的大於實際 PMTU 的 IP 包就會被直接丟棄。

例如,您可以用 FTP 命令行工具成功地與 FTP 服務器建立連接並登錄。但是,當您試圖下載或者上載文件時,中間的 PMTU 黑洞路由器就會丟棄達到最大大小的 TCP 數據段,從而導致錯誤和文件傳輸失敗。

您可以按照下面的語法使用 Ping 工具來檢測 PMTU 黑洞路由器:

Pingdestination –f –lICMPEchoPayloadSize

• 此處的 destination 可以是一個 IP 地址,也可以是一個可解析為 IP 地址的名稱。

• -f 選項可將 DF 標記設置為 1。

• -l 選項指定 ICMP Echo 消息的有效負載的大小。

• ICMPEchoPayloadSize 是 ICMP Echo 消息的有效負載的字節數。


要計算 ICMPEchoPayloadSize,可用您想發送的 IP 包的大小減去 28。這是因為,IP 報頭的大小為 20 字節,而 ICMP Echo 消息的 ICMP 報頭的大小為 8 字節。下圖顯示了二者的關係。

例如,要發送長度為 1500 字節的 ICMP Echo 消息,您應使用以下命令:

ping destination –f –l 1472

如果有 IP MTU 更小的中間鏈路,且路由器發送了“ICMP Destination Unreachable-Fragmentation Needed and DF Set”消息,則 Ping 工具會顯示“Packet needs to be fragmented but DF set”消息。如果有 IP MTU 更小的中間鏈路,且 PMTU 黑洞路由器直接丟棄了包,則 Ping 工具會顯示“Request timed out”消息。

要找出包含 PMTU 黑洞路由器的路徑的有效 IP MTU,請使用 Ping 工具,同時不斷增大 Echo 消息的有效負載的大小。因為典型子網的最小 IP MTU 是 576 字節,因此開始時可將 ICMP Echo 消息的有效負載設置為 548 字節,然後每次遞增 100 字節,直到找到有效 PMTU。

例如,如果 ping 10.0.0.10 -f -l 972 命令顯示“Reply from 10.0.0.10”,而命令 ping 10.0.0.10 -f -l 973 顯示“Request timed out”,則 IP 地址為 10.0.0.10 的節點的有效 PMTU 為 1000 字節 (972+28)。

PMTU 黑洞路由器的解決方案和工作方法
以下的 PMTU 黑洞路由器的解決方案和工作方法按照從最簡單的解決方案到最困難的工作方法的順序排列。

1. 配置中間路由器以支持路由器端 PMTU 發現

解決專用 Intranet 中的 PMTU 黑洞路由器問題的最簡單的方法,是將您的所有路由器配置為支持路由器端 RFC 1191,並支持發送 ICMP Destination Unreachable-Fragmentation Needed and DF Set 消息(其中帶有轉發失敗的鏈路的 IP MTU)。這與將路由器配置為支持主機端 RFC 1191 是有區別的,後者的路由器會對自己的 TCP 連接使用 PMTU 發現。

在 Internet 上進行通信時,通常不太可能將 Internet 路由器配置為支持路由器端 PMTU 發現。在這種情況下,您可以使用以下各節介紹的工作方法。

2. 啟用 PMTU 黑洞路由器檢測

基於性能方面的考慮,Windows 2000、Windows XP 和 Windows Server 2003 中默認關閉了 TCP/IP 的 PMTU 黑洞路由器檢測。如無法將路由器配置為支持路由器端 RFC 1191,則可配置以下註冊表設置:
複製程式
Setting: EnablePMTUBHDetect
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value Type: REG_DWORD
Value: 1

因為此註冊表條目在默認情況下不存在,所以您必須使用註冊表編輯器工具添加此條目,然後重啟 Windows 使設置生效。

PMTU 黑洞路由器檢測得到啟用後,如果 TCP 數次重新傳輸某分段但仍未得到確認,則它會試圖發送 DF 標記設置為 0 的分段。如果接收到對 DF 標記設置為 0 的分段的確認,則連接中後續分段的 MSS 將減小,且其 DF 標記會設置為 1。啟用 PMTU 黑洞路由器檢測會增加重新傳輸給定分段的最大次數,從而會影響整體性能。

3. 確定最佳 IP MTU 並通過 MTU 註冊表設置來設置該值

啟用 PMTU 黑洞路由器檢測的替代方法,是根據本文前面部分的介紹使用 Ping 工具確定所有相關路徑的 PMTU 值,然後使用註冊表設置手動配置發送接口的 IP MTU。

該方法通過不停發送 DF 標記設置為 1,大小又不會導致 PMTU 黑洞路由器將其直接丟棄的 IP 包來避開 PMTU 黑洞路由器。手動指定 IP MTU 意味著所有通信量(包括本地子網通信量和不包含 PMTU 黑洞路由器的路徑上的通信量)都將使用較小的 IP MTU。

確定有效的 PMTU 後,您可以通過以下步驟手動指定 TCP/IP 接口的 IP MTU:

1. 打開 Network Connections 文件夾,記下 LAN 連接的名稱,如“Local Area Connection”。

2. 單擊開始,單擊“運行”,鍵入“regedit.exe”,然後單擊“確定”。

3. 使用註冊表編輯器工具的樹圖(左邊窗格)打開如下鍵:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Network\{4D36E972-E325-11CE-BFC1-08002BE10318}

4. 此鍵下面是與已安裝的 LAN 連接相關聯的全局唯一標識符 (GUID) 的一個或多個鍵。這些 GUID 鍵中的每一個都有一個 Connection 子鍵。打開每個 GUID\Connection 鍵,尋找值與第一步中記下的 LAN 連接的名稱匹配的 Name 設置。

5. 如果找到包含與 LAN 連接匹配的 Name 設置的 GUID\Connection 鍵,請寫下或記下該 GUID 值。

6. 使用註冊表編輯器的樹視圖打開如下鍵:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters\Interfaces\GUID

7. 右鍵單擊樹視圖中的“GUID”鍵,指向“新建”,然後單擊“DWORD值”。

8. 在註冊表編輯器工具的內容窗格(右窗格)中,為新註冊表設置的值鍵入 MTU,然後按 ENTER。

9. 在內容窗格中,雙擊新的 MTU 設置,並在“編輯雙字節值”對話框中選擇“十進制”,然後在“數值數據”中鍵入有效 MTU 值。

10. 單擊“確定”。關閉註冊表編輯器工具。

11. 重新啟動計算機使 MTU 設置生效。

4. 禁用 PMTU 發現

如果確定網絡上基於 Windows 計算機的所有 LAN 接口的合適的 PMTU 值並進行配置不太可行,則可以使用最後一招:禁用 PMTU 發現。我們不推薦使用此方法,因為如果禁用 PMTU 發現,所有遠程目的地的 IP MTU 都將設置為 576 字節,而這會影響性能。

要關閉 PMTU 發現,請配置如下註冊表設置:
複製程式
Setting: EnablePMTUDiscovery
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value Type: REG_DWORD
Value: 0

因為此註冊表條目在默認情況下不存在,所以您必須使用註冊表編輯器工具添加此條目,然後重啟 Windows 使設置生效。

這個功能~小弟是把它列入網路優化的部份~ 表情

獻花 x0