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

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

2015-08-17
本文將先講解ICMP的運作原理,然後介紹ping、trace、tracert、pathping、traceroute等相關工具,並且說明ping所帶來的網路攻擊及其因應之道。
最後,可額外指定是否要established這個關鍵字,若設定這個關鍵字,代表允許TCP協定的網路封包,但前提是這些網路封包是使用已經建立好的網路連線(Established Connection),而且此關鍵字只能套用在inbound的網路封包上。

準備好存取控制規則之後,接下來把所設定好的存取控制規則套用到介面上,其指令格式如下:


為了要設定到某個介面上,當然第一步就是要先進入特定介面的Interface Mode底下,所以可以看到上面的指令的模式是必須在(config-if)底下才能執行。「ip access-group」是關鍵字,後面只要接上存取控制規則的識別碼,然後指定要套用在inbound還是outbound。

方向的選擇也可以不指定,若不指定的話,預設會套用在outbound方向上。以這種方式設定於路由器上,就可以從路由器下手來抵擋ICMP網路封包。

Traceroute工具的用法

Traceroute是用來顯示網路封包在送到目的地網路設備端所經過的路由器過程,會顯示中間所經過的路由器的IP位址。這個工具在Windows作業系統中稱為tracert,而在Linux作業系統中則是tracepath,而Mac作業系統中則直接是traceroute。

底下是在Mac作業系統當中,執行traceroute指令的範例:


下面是在Windows作業系統下執行tracert指令的 範例:


如同剛才所提到的,這個工具利用TTL來完成檢測。每次經過一個路由器,就把TTL的值減1,直到為0,這個時候會傳送ICMP TTL給原本發送的網路設備。

Pathping指令的用法

接著來介紹一下pathping指令的用法,這個指令是Windows作業系統下原本就有的網路檢測工具。該指令會在一段時間內一直傳送echo request封包,然後根據中間所經過的路由器傳回的封包來獲知訊息。

這個工具可以得知中間每一個網路設備所丟失的網路封包比例,以便通知網路管理人員哪些網路設備出了問題。

底下即是這個指令在Windows作業系統下的執行範例:


其實,每個工具都大同小異,端看個人習慣以及所要查找的訊息。

Trace指令的用法

也可以在路由器上得知中途路由資訊的事情,這裡採用trace指令。trace指令可用來顯示兩個設備之間封包真正採用的路由路徑資訊。接著,說明取得整個路徑資訊的作法。

假設想取得由設備A到設備B之間的路由資訊,會在設備A中發送一系列的UDP(User Datagram Protocol)封包,送往設備B的無效埠。第一次會發送三個UDP封包到設備B,而且封包的TTL(Time To Live)值都是1。

因為TTL值是1,所以一旦這三個封包遇到第一個Router,就會逾時,而這個第一個Router就會回報ICMP(Internet Control Message Protocol)的TEM(Time Exceeded Message)訊息送回給設備A,讓設備A知道這三個封包在哪個設備中逾時了。


追蹤我們Featrue us

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

我知道了!