A. 怎麼用防火牆設置ICMP過濾
設置步驟如下:
1、點擊開始,點擊控制面板,點擊windows防火牆內;容
2、點擊高級設置;
B. ICMP協議詳解
ICMP(Internet Control Message Protocol,網際報文控制協議)是Internet協議族的核心協議之一,它主要用來在網路計算機的操作系統中發送出錯信息,比如,提示請求的服務不可用,或者主機或者路由不可達.
ICMP依靠IP協議來完成其任務,通常也是IP協議的一個集成部分.和傳輸層協議如TCP和UDP的目的不同,它一般並不用來在端系統之間來傳送數據.它通常不被用戶網路程序直接使用,例外的情況是像Ping和tracert這樣的診斷程序.
IPv4版本的ICMP也被稱作ICMPv4,IPv6中也有對應的版本IPv6.
ICMP協議 - 什麼是ICMP協議
ICMP是「Internet Control Message Protocol」(Internet控制消息協議)的縮寫。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網路通不通、主機是否可達、路由是否可用等網路本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起著重要的作用。
我們在網路中經常會使用到ICMP協議,只不過我們覺察不到而已。比如我們經常使用的用於檢查網路通不通的Ping命令,這個「Ping」的過程實際上就是ICMP協議工作的過程。還有其他的網路命令如跟蹤路由的Tracert命令也是基於ICMP協議的。
ICMP協議 - ICMP協議格式
ICMP報文類型
ICMP報文大體可以分為兩種類型,即ICMP差錯報文和ICMP詢問報文。但細分又可分為很多類型,如表1所示。
表一 ICMP報文類型
ICMP回射請求和應答報文頭部格式
ICMP報文被封裝在IP數據報內部傳輸。如圖1所示,是ICMP回射請求和應答報文頭部格式。
圖1 ICMP回射請求和應答報文頭部格式
各種ICMP報文的前32bits都一樣,它們是:
8bits類型和8bits代碼欄位:一起決定了ICMP報文的類型。常見的有:
類型8、代碼0:回射請求。
類型0、代碼0:回射應答。
類型11、代碼0:超時。
16bits校驗和欄位:包括數據在內的整個ICMP數據包的校驗和,其計算方法和IP頭部校驗和的計算方法是一樣的。
對於ICMP回射請求和應答報文來說,接下來是16bits標識符欄位:用於標識本ICMP進程。
最後是16bits序列號欄位:用於判斷回射應答數據報。
2.3 ICMP目標不可達報文
如圖2所示,是ICMP目標不可達報文頭部格式。
圖2 ICMP目標不可達報文頭部格式
其中代碼欄位的不同值又代表不同的含義,如,0代表網路不可達、1代表主機不可達等,見表1。
2.4 ICMP超時報文頭部格式
如圖3所示,是ICMP超時報文頭部格式。
圖3 ICMP超時報文頭部格式
其中:
類型11+代碼0:表示傳輸期間生存時間為0。
類型11+代碼1:表示數據報組裝期間生存時間為0。
由於篇幅有限,這里不再分析其他類型ICMP協議數據包的格式。
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資源處理,疲於奔命。
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
圖1中有兩個按鈕,一個是「輸入篩選器」(指對此伺服器接受的數據包進行篩選),另一個是「輸出篩選器」(指對此伺服器發送的數據包進行篩選),這里應該點擊【輸入篩選器】 按鈕,會彈出一個「添加篩選器」窗口,再點擊【添加】按鈕,表示要增加一個篩選條件。
在「協議」右邊的下拉列表中選擇「ICMP」,在隨後出現的「ICMP類型」和「ICMP編碼」中均輸入「255」,代表所有的ICMP類型及其編碼。ICMP有許多不同的類型(Ping就是一種類型),每種類型也有許多不同的狀態,用不同的「編碼」來表示。因為其類型和編碼很復雜,這里不再敘述。
點擊【確定】按鈕返回「輸入篩選器」窗口,此時會發現「篩選器」列表中多了一項內容(如圖2所示)。點擊【確定】按鈕返回「本地連接」窗口,再點擊【確定】按鈕,此時篩選器就生效了,從其他計算機上Ping這台主機就不會成功了。
圖2
2. 用防火牆設置ICMP過濾
現在許多防火牆在默認情況下都啟用了ICMP過濾的功能。如果沒有啟用,只要選中「防禦ICMP攻擊」、「防止別人用ping命令探測」就可以了,如圖3所示。