ICMP協定簡介

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

訊息類型

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

請求和答覆

兩個最重要的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. `平`是一個非常有用的工具,網路故障排除。

重要性

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資源處理,疲於奔命。

應對攻擊

雖然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所示。

相關詞條

相關搜尋

熱門詞條

聯絡我們