traceroute ICMP ping 路由器 網路 網管 協定

搞懂ICMP協定及工具 抵擋「死亡之Ping」攻擊

2015-08-17
本文將先講解ICMP的運作原理,然後介紹ping、trace、tracert、pathping、traceroute等相關工具,並且說明ping所帶來的網路攻擊及其因應之道。
在上面的範例中,這裡是發送ICMP的ping到140.115.1.254這台伺服器,若看到有時間time=xx ms,就是代表成已功發送過去,這裡看得出來是用64個bytes做傳送測試,對方反應時間為11至13毫秒之間。

如果失敗的話,則會看到類似下面timeout的訊息:


如果想知道更多在Mac作業系統內ping指令的用法,可以在命令列中輸入「man ping」指令。

而在Windows作業系統下執行ping指令時,則範例 如下:


詳細資訊可參考RFC 792,即ICMP協定。

ping工具所產生的網路攻擊

一般來說,很多企業網路環境會將ping這個工具所發送的ICMP封包擋住,通常會使用防火牆來抵擋。這是因為ping這個動作有可能會被拿來當作攻擊的用途,也就是稱為「死亡之ping」。

死亡之ping英文為ping of death,簡稱POD,這種攻擊方式是對目的地網路設備不斷地發送錯誤封包或是不斷發送ping指令,而讓對方網路設備達到崩潰的效果。

一般來說,一個ping的網路封包為32位元組或甚至是64個位元組(由剛才上面的範例就可以看得出來),大部分的電腦可能無法處理與承受大於IPv4協定的最大封包大小,也就是65,535個位元組,此時,就會導致設備崩潰。不過,後來1997年左右,這些問題都已經被修正。

但是,即便如此,仍然可以透過所謂的DoS,瘋狂發送ping封包達到無法讓對方網路設備提供服務的攻擊。DoS又稱為Denial of Service,是一種網路攻擊方式,這種方式的目的在於讓對方網路設備疲於奔命地做某些沒有意義的事情,而無法提供原本應該提供的服務,中文又稱為「阻斷式攻擊」。

阻絕Ping攻擊的方式

因為上面各種因素,導致許多網路管理人員會直接設定成無法使用ping這種ICMP封包,而一般都是在防火牆上做設定,而在路由器上,也可以藉由設定「存取控制清單」的方式來達到,底下針對這個方式做介紹。

Cisco路由器設備的標準型存取控制清單及延伸型存取控制清單提供了許多功能,其中包含一般的存取控制,同時也提供資料加密以及根據策略自動決定路由的功能(Policy-based Routing)。

而存取控制清單(Access Control List,ACL),顧名思義就是一個清單,其內容包含一些「規則」,也可以視為條件,用來指導Cisco路由器設備如何辨識哪些網路封包,以及要對這些網路封包做哪些動作。

例如,網路管理人員可能想要阻絕某些網路封包(以這裡為例,就是ICMP協定封包),而希望只允許某些特定的網路封包,一旦網路管理人員在Cisco路由器設備上設定好存取控制清單後,當網路封包通過Cisco路由器設備時,就會依據存取控制清單的內容來決定是否要讓這個網路封包經過。藉由適當地控制好存取控制清單,網路管理人員就可以過濾網路封包,達到一定的網路安全。

基本上,存取控制清單分為以下兩種類型:

· 標準型存取控制清單
· 延伸型存取控制清單

延伸型的存取控制清單可以做比較細部的設定,所支援的協定也比較多,這裡以延伸型存取控制清單的方式來介紹。如果要設定延伸型存取控制清單來對ICMP協定做控制,其指令如下:


這個指令的關鍵字一樣是access-list,後面接上存取控制規則的識別碼,可選擇的動作也是有permit和deny兩種。

接下來比較不同的是,延伸型存取控制規則可以選擇網路協定,可以選擇的網路協定有TCP、IP、ICMP、UDP、GRE(General Routing Encapsulation)以及IGRP(Interior Gateway Routing Protocol)等協定。

接著是指定來源端IP位址和位址字元遮罩,然後可以指定埠,這邊可指定從來源端哪個埠出去的網路封包才需要套用這個存取控制規則。其設定的方式是,一個比較關鍵字加上埠號碼,例如若要指定來源端的21號埠,可以寫成「eq 21」。

這裡的比較關鍵字就是eq,其他比較關鍵字還有lt、gt以及neq。lt就是less than,代表小於,gt則是greater than,代表大於,而neq就是not equal,代表不等於。原本範例中的eq則代表equal,是等於的意思。而埠的相關設定可以不輸入,是可有可無的設定項目。

來源埠設定完成之後,後面繼續加上目的端的IP位址以及相對應的位址字元遮罩,同樣也可以指定埠號碼。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!