ICMP協議簡介

什麼是ICMP協議

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

  我們在網絡中經常會使用到ICMP協議,只不過我們覺察不到而已。比如我們經常使用的用於檢查網絡通不通的Ping命令,這個“Ping”的過程實際上就是ICMP協議工作的過程。還有其他的網絡命令如跟蹤路由的Tracert命令也是基於ICMP協議的。

ICMP的重要性

  ICMP協議對於網絡安全具有極其重要的意義。ICMP協議本身的特點決定了它非常容易被用於***網絡上的路由器和主機。

  比如,可以利用操作系統規定的ICMP數據包最大尺寸不超過64KB這一規定,向主機發起“Ping of Death”(死亡之Ping)***。“Ping of Death” ***的原理是:如果ICMP數據包的尺寸超過64KB上限時,主機就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,致使主機死機。

  此外,向目標主機長時間、連續、大量地發送ICMP數據包,也會最終使系統癱瘓。大量的ICMP數據包會形成“ICMP風暴”,使得目標主機耗費大量的CPU資源處理,疲於奔命。

應對ICMP***

  雖然ICMP協議給***以可乘之機,但是ICMP***也並非無藥可醫。只要在日常網絡管理中未雨綢繆,提前做好準備,就可以有效地避免ICMP***造成的損失。

  對於“Ping of Death”***,可以採取兩種方法進行防範:第一種方法是在路由器上對ICMP數據包進行帶寬限制,將ICMP佔用的帶寬控制在一定的範圍內,這樣即使有ICMP***,它所佔用的帶寬也是非常有限的,對整個網絡的影響非常少;第二種方法就是在主機上設置ICMP數據包的處理規則,最好是設定拒絕所有的ICMP數據包。

  設置ICMP數據包處理規則的方法也有兩種,一種是在操作系統上設置包過濾,另一種是在主機上安裝防火牆。具體設置如下:

  1.在Windows 2000 Server中設置ICMP過濾

  Windows 2000 Server提供了“路由與遠程訪問”服務,但是默認情況下是沒有啓動的,因此首先要啓動它:點擊“管理工具”中的“路由與遠程訪問”,啓動設置嚮導。在其中選擇“手動配置服務器”項,點擊[下一步]按鈕。稍等片刻後,系統會提示“路由和遠程訪問服務現在已被安裝。要開始服務嗎?”,點擊[是]按鈕啓動服務。

  服務啓動後,在計算機名稱的分支下會出現一個“IP路由選擇”,點擊它展開分支,再點擊“常規”,會在右邊出現服務器中的網絡連接(即網卡)。用鼠標右鍵點擊你要配置的網絡連接,在彈出的菜單中點擊“屬性”,會彈出一個網絡連接屬性的窗口。


  其中有兩個按鈕,一個是“輸入篩選器”(指對此服務器接受的數據包進行篩選),另一個是“輸出篩選器”(指對此服務器發送的數據包進行篩選),這裏應該點擊[輸入篩選器] 按鈕,會彈出一個“添加篩選器”窗口,再點擊[添加]按鈕,表示要增加一個篩選條件。

  在“協議”右邊的下拉列表中選擇“ICMP”,在隨後出現的“ICMP類型”和“ICMP編碼”中均輸入“255”,代表所有的ICMP類型及其編碼。ICMP有許多不同的類型(Ping就是一種類型),每種類型也有許多不同的狀態,用不同的“編碼”來表示。因爲其類型和編碼很複雜,這裏不再敘述。

  點擊[確定]按鈕返回“輸入篩選器”窗口,此時會發現“篩選器”列表中多了一項內容。點擊[確定]按鈕返回“本地連接”窗口,再點擊[確定]按鈕,此時篩選器就生效了,從其他計算機上Ping這臺主機就不會成功了。

  2. 用防火牆設置ICMP過濾

  現在許多防火牆在默認情況下都啓用了ICMP過濾的功能。如果沒有啓用,只要選中“防禦ICMP***”、“防止別人用ping命令探測”就可以了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章