這邊以 XP SP3 來做說明,
ICMP_百度百科:
ICMP 是(Internet Control Message Protocol) Internet 控制報文協議。
它是 TCP/IP 協議族的一個子協議,
用於在 IP 主機、路由器之間傳遞控制消息。
控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。
這些控制消息雖然並不傳輸使用者資料,
但是對於使用者資料的傳遞起著重要的作用。
它是一個非常重要的協議,它對於網路安全具有極其重要的意義。
我們在網路中經常會使用到 ICMP 協議,
比如我們經常使用的用於檢查網路通不通的 Ping 命令,
這個「Ping」的過程實際上就是 ICMP 協議工作的過程。
Windos XP 內建防火牆預設是過濾 Ping 的 ICMP echo request,
不過通常我們都會使用「檔案及印表機共用」,
裡面開啟的 TCP 445 port 同時會讓 ICMP 設定值裡的「允許傳入的回應要求」勾選,
而且選項呈現灰色無法取消,所以從別台電腦 Ping 將會收到回應。
如果要開啟「檔案及印表機共用」
但要關閉 ICMP 的「允許傳入的回應要求」就很棘手,
經過實測,只要開啟 TCP 139 或 TCP 445 port 就可以分享檔案了,
單獨切換時要先全選、確定,再進去取消不要的,
這樣說來我就不知道 Microsoft 為什麼「檔案及印表機共用」要加入
UDP 137, UDP 138, TCP 445 這 3 個 port 了?
避免開啟檔案共用時鎖住允許傳入的回應要求,
這裡有一個 Registry 表:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
"137:UDP"="137:UDP:LocalSubNet:Disabled:@xpsp2res.dll,-22001"
"138:UDP"="138:UDP:LocalSubNet:Disabled:@xpsp2res.dll,-22002"
"139:TCP"="139:TCP:LocalSubNet:Enabled:@xpsp2res.dll,-22004"
"445:TCP"="445:TCP:LocalSubNet:Disabled:@xpsp2res.dll,-22005"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\IcmpSettings]
"AllowInboundEchoRequest"=-
137, 138, 139 屬 IBM NetBIOS,445 屬 Microsoft SMB(=CIFS)
NetBIOS 算是比較古早及底層的東西,
也許是這兩類呈現正相關,都是 File Share 的東西,
所以就都開啟了,以相容所有機器吧-..-!
Wikipedia TCP/UDP 埠列表:
137/TCP,UDP | NetBIOS Name Service | 官方 |
138/TCP,UDP | NetBIOS Datagram Service | 官方 |
139/TCP,UDP | NetBIOS Session Service | 官方 |
445/TCP | Microsoft-DS (Active Directory,Windows shares, Sasser worm,Agobot, Zobotworm) | 官方 |
445/UDP | Microsoft-DS SMB file sharing | 官方 |
Windows Server 系統的服務概觀和網路連接埠需求
Wikipedia SMB:
伺服器消息區塊(Server Message Block,又稱 Common Internet File System(CIFS)),
是由微軟開發的一種軟體程序級的網路傳輸協議,
主要用來使得一個網路上的機器共享計算機文件、印表機、串列埠和通訊等資源。
它也提供認證的行程間通訊機能。
它主要用在裝有 Microsoft Windows 的機器上,
在這樣的機器上被稱為 Microsoft Windows Network。
經過 Unix 伺服器廠商重新開發後,
它可以用於連接 Unix 伺服器和 Windows 客戶機,執行列印和檔案分享等任務。
CIFS 消息一般在 NetBIOS 或 TCP 協議層上,
分別使用不同的埠 139 或 445,目前傾向於使用 445 埠。
Comodo Firewall 預設也是屏蔽 Ping 的 ICMP echo request,
要開啟的話在 Firewall > Network Security Policy > Global Rules
Block ICMP In From MAC Any To MAC Any Where ICMP Message Is ECHO REQUEST
改為 Allow 就可以了 :)
插曲:
之前找到篇 关闭445端口,正常使用防火墙管理ICMP传入回显请求 | Lin's Space|Only,
該篇有瑕疵(不知所云)的文章竟然還被 CNET Networks 的 ZDNet China 轉載...
留言原文:
禁用 TCP 445 連接埠,ICMP 設定中的「允許傳入回應請求」可勾選啊?!
防火牆 ICMP 設定中給的提示讓人誤解,並不是啟用了 TCP 連接埠 445「允許傳入回應請求」被自動允許。...是這樣沒錯啊?!
XP SP3.
沒有留言:
張貼留言