標籤: 暫無標籤

ICMP是「Internet Control Message Protocol」(Internet控制消息協議)的縮寫。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。

對TCP/IP協議你一定非常熟悉,但是對ICMP協議你可能就一無所知了。ICMP協議是一個非常重要的協議,它對於網路安全具有極其重要的意義。下面我們就來談談ICMP協議。

 

我們在網路中經常會使用到ICMP協議,只不過我們覺察不到而已。比如我們經常使用的用於檢查網路通不通的Ping命令,這個「Ping」的過程實際上就是ICMP協議工作的過程。還有其他的網路命令如跟蹤路由的Tracert命令也是基於ICMP協議的。
不同於運輸層協議 的tcp(傳輸控制協議) 和 udp(用戶數據報協議) ,其中經營再加上知識產權的行為, icmp的存在並肩葉。

1 ICMP協議簡介 -icmp的消息類型

icmp的運作,由發送和接收數量有限的信息類型。 The ICMP message types are defined in IANA ICMP Type Numbers .國際失蹤人員信息類型的定義是在iana icmp的類型號碼。
The most common ICMP message types are:最常見的icmp的消息類型是:
Type類型     Name名稱  
0                Echo Reply回聲答覆 
三              Destination Unreachable目的地遙不可及 
四              Source Quench來源解渴 
五              Redirect重定向 
六              Alternate Host Address候補主機地址 
八              Echo回聲 
九日           Router Advertisement路由器廣告 
10個           Router Solicitation路由器邀約 
11日           Time Exceeded時間超過 
12日           Parameter Problem參數問題 
13              Timestamp時間戳 
14              Timestamp Reply時間戳答覆 
15              Information Request資料請求 
16              Information Reply資訊答覆 
17              Address mask Request地址掩模要求 
18              Address Mask Reply地址面具答覆 
30              Traceroute traceroute 

2 ICMP協議簡介 -icmp的回聲請求和回聲答覆

兩個最重要的icmp的報文回送請求( 8 )和回送回答( 0 ) 。
Echo Request and Echo Reply are utilized by the `ping` command to test network connectivity.回送請求和回送回答是利用Ping命令,測試網路連通性。
Here we use the `ping` command to send three 64-byte ICMP Echo Request messages to www.freebsd.org and receive three Echo Reply messages in response:在這裡,我們用`ping`命令發送3個64位元組的icmp的回送請求報文給www.freebsd.org這個網站,然後和接收三個回聲應答報文回應:
bash-2.05a$ ping -c 3 www.freebsd.org打壞- 2.05a元平- c 3的www.freebsd.org
PING www.freebsd.org (216.136.204.117): 56 data bytes平www.freebsd.org ( 216.136.204.117 ) : 56數據位元組
64 bytes from 216.136.204.117: icmp_seq=0 ttl=55 time=63.708 ms 64個位元組從216.136.204.117 : icmp_seq = 0的ttl = 55時= 63.708女士
64 bytes from 216.136.204.117: icmp_seq=1 ttl=55 time=62.725 ms 64個位元組從216.136.204.117 : icmp_seq = 1的ttl = 55時= 62.725女士
64 bytes from 216.136.204.117: icmp_seq=2 ttl=55 time=62.618 ms 64個位元組從216.136.204.117 : icmp_seq = 2的ttl = 55時= 62.618女士
--- www.freebsd.org ping statistics --- --- www.freebsd.org平統計---
3 packets transmitted, 3 packets received, 0% packet loss三封包轉發, 3包收到0 % ,丟包
round-trip min/avg/max/stddev = 62.618/63.017/63.708/0.491 ms來回閔/平均額/最大/ stddev = 62.618/63.017/63.708/0.491女士
This output tells us that network connectivity to www.freebsd.org is working.這個輸出告訴我們,網路連接,以www.freebsd.org是工作。 It also tells us the time each packet took to return.它也告訴我們,當時每包了回來。
`ping` is an extremely useful tool for network troubleshooting. `平`是一個非常有用的工具,網路故障排除。

3 ICMP協議簡介 -ICMP的重要性

ICMP協議對於網路安全具有極其重要的意義。ICMP協議本身的特點決定了它非常容易被用於攻擊網路上的路由器和主機。例如,在1999年8月海信集團「懸賞」50萬元人民幣測試防火牆的過程中,其防火牆遭受到的ICMP攻擊達334050次之多,占整個攻擊總數的90%以上!可見,ICMP的重要性絕不可以忽視!
比如,可以利用操作系統規定的ICMP數據包最大尺寸不超過64KB這一規定,向主機發起「Ping of Death」(死亡之Ping)攻擊。「Ping of Death」 攻擊的原理是:如果ICMP數據包的尺寸超過64KB上限時,主機就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,致使主機死機。
此外,向目標主機長時間、連續、大量地發送ICMP數據包,也會最終使系統癱瘓。大量的ICMP數據包會形成「ICMP風暴」,使得目標主機耗費大量的CPU資源處理,疲於奔命。

4 ICMP協議簡介 -應對ICMP攻擊

雖然ICMP協議給黑客以可乘之機,但是ICMP攻擊也並非無葯可醫。只要在日常網路管理中未雨綢繆,提前做好準備,就可以有效地避免ICMP攻擊造成的損失。
對於「Ping of Death」攻擊,可以採取兩種方法進行防範:第一種方法是在路由器上對ICMP數據包進行帶寬限制,將ICMP佔用的帶寬控制在一定的範圍內,這樣即使有ICMP攻擊,它所佔用的帶寬也是非常有限的,對整個網路的影響非常少;第二種方法就是在主機上設置ICMP數據包的處理規則,最好是設定拒絕所有的ICMP數據包。
設置ICMP數據包處理規則的方法也有兩種,一種是在操作系統上設置包過濾,另一種是在主機上安裝防火牆。具體設置如下:
1.在Windows 2000 Server中設置ICMP過濾
Windows 2000 Server提供了「路由與遠程訪問」服務,但是默認情況下是沒有啟動的,因此首先要啟動它:點擊「管理工具」中的「路由與遠程訪問」,啟動設置嚮導。在其中選擇「手動配置伺服器」項,點擊[下一步]按鈕。稍等片刻后,系統會提示「路由和遠程訪問服務現在已被安裝。要開始服務嗎?」,點擊[是]按鈕啟動服務。
服務啟動后,在計算機名稱的分支下會出現一個「IP路由選擇」,點擊它展開分支,再點擊「常規」,會在右邊出現伺服器中的網路連接(即網卡)。用滑鼠右鍵點擊你要配置的網路連接,在彈出的菜單中點擊「屬性」,會彈出一個網路連接屬性的窗口,如圖1所示。

 

圖1中有兩個按鈕,一個是「輸入篩選器」(指對此伺服器接受的數據包進行篩選),另一個是「輸出篩選器」(指對此伺服器發送的數據包進行篩選),這裡應該點擊[輸入篩選器] 按鈕,會彈出一個「添加篩選器」窗口,再點擊[添加]按鈕,表示要增加一個篩選條件。
在「協議」右邊的下拉列表中選擇「ICMP」,在隨後出現的「ICMP類型」和「ICMP編碼」中均輸入「255」,代表所有的ICMP類型及其編碼。ICMP有許多不同的類型(Ping就是一種類型),每種類型也有許多不同的狀態,用不同的「編碼」來表示。因為其類型和編碼很複雜,這裡不再敘述。
點擊[確定]按鈕返回「輸入篩選器」窗口,此時會發現「篩選器」列表中多了一項內容(如圖2所示)。點擊[確定]按鈕返回「本地連接」窗口,再點擊[確定]按鈕,此時篩選器就生效了,從其他計算機上Ping這台主機就不會成功了。

 

2. 用防火牆設置ICMP過濾
現在許多防火牆在默認情況下都啟用了ICMP過濾的功能。如果沒有啟用,只要選中「防禦ICMP攻擊」、「防止別人用ping命令探測」就可以了,如圖3所示。

5 ICMP協議簡介 -參考資料

http://www.it-waibao.com/it-waibao/termCommentate/network/100_451_9423.html

http://www.tech-faq.com/lang/zh-CN/icmp.shtml

 

相關評論

同義詞:暫無同義詞