資訊與網路安全技術 第 十章 防火牆  上一頁      下一頁

 

10-10 traceroute 封包過濾範例

另一個重要的管理命令是 traceroute,當我們希望瞭解封包到達目的地的路徑時,就必須利用 traceroute 來追蹤封包所經過的路徑。入侵者常利用 traceroute 探測內部網路的架構,防火牆也大多會阻止 traceroute 封包進入內部網路,以達到隱密性的要求。

traceroute 是使用 ICMP IP 標頭裡的 TTLTime-to-Live欄位,作為判斷已經追蹤過多少個網路端點(路由器)。一般情況下,封包每經過一個網路閘門 TTL 值就被減 1,如果路由器收到一個 TTL 值減 1 以後為 0 時,便會回送一個 ICMP Time ExceededType 11)(逾時)給原發送端,並將該封包丟棄,traceroute 就是利用這種特性來追蹤路徑。它的運作情況如下:首先 traceroute 送出一個 TTL 1 IP 封包到目的主機,第一個收到的路由器將 TTL 1,丟棄該封包,並回送 ICMP 給原發送主機,這個過程確認了這條路徑的第一個路由器;接下來traceroute 再送 TTL 2 IP 封包,又可以得到第二個路由器位址,如此重覆一直到封包到達目的主機為止。但當封包到達目的位址時,它 TTL 同樣被減成 0,也回應 ICMP Time Exceeded 封包,發送端如何判斷封包已到達目的與否?

因為 traceroute 是以 UDP 封包格式發送,我們只要將 UDP 埠口設定在不可能使用的埠口,一般都會將它設定較大的值,通常是在 33434 33523 之間任一個即可。當目的主機收到後,判斷是自己的 IP 位址,但無此埠口服務,便會回應一個 ICMP Port Unreachable(埠口無法到達)給發送端。發送端就可利用ICMP 埠口無法到達』ICMP 逾時』來判斷是否到達目的主機。一般封包的 TTL 欄位預設值為 255(如 ping),這可能造成 traceroute 的封包在網路上無窮的回繞,因此,traceroute TTL 預設值為 30,表示最高可以追蹤 30 個經過的網路閘門,但可以設定改變其大小。

10-17 traceroute 運作原理

 

10-17-1 traceroute 封包過濾範例

10-17 traceroute 封包過濾範例,它可能通過防火牆的封包如表 10-12 所示。

10-12 traceroute 命令封包訊息表

    編號

    封包方向

    來源位址

    目的位址

    協定型態

    來源埠口

    目的埠口

    訊息型態

    封包功能

    1

    進入

    外部

    內部

    UDP

    >1024

    33434 ~ 33523

     

    外部進入 traceroute UDP 封包。

    2

    出去

    內部

    外部

    ICMP

     

     

    3

    內部主機回應外部UDP 封包的 ICMP Port Unreachable 封包。

    3

    出去

    內部

    外部

    ICMP

     

     

    11

    內部主機回應外部UDP 封包的 ICMP Time Exceeded 封包。

    4

    出去

    外部

    內部

    UDP

    >1024

    33434 ~33523

     

    內部主機向外部網路 traceroute 所送出的 UDP 封包。

    5

    進入

    內部

    外部

    ICMP

     

     

    3

    外部主機回應內部 UDP 封包的 ICMP Port Unreachable 封包。

    6

    進入

    外部

    內部

    ICMP

     

     

    11

    外部主機回應內部UDP 封包的 ICMP Time Exceeded 封包。

如將圖 10-16 防火牆設定成允許內部主機以 traceroute 去追蹤外部網路,也就是說,允許內部主機的 traceroute 命令通過防火牆;但另一方面,不允許外部網路以 traceroute 命令來測試內部網路,則封包過濾規則如表 10-13 所示。

10-13 traceroute 命令封包過濾規則

    規則

    封包方向

    來源位址

    目的位址

    協定

    來源埠口

    目的埠口

    訊息型態

    措施

    A

    出去

    內部

    外部

    UDP

    >1024

    33434 ~33523

    Null

    允許

    B

    進入

    外部

    內部

    ICMP

    Null

    Null

    3

    允許

    C

    進入

    外部

    內部

    ICMP

    Null

    Null

    11

    允許

    D

    任意

    任意

    任意

    ICMP

    Null

    Null

    任意

    拒絕

由上述表格可以發現,為了開放 tranceroute 命令,我們幾乎允許所有 UDP 封包通過防火牆到達外部網路;開放了這一條規則,可能會影響到其他連線的限制,這便是設定封包過濾規則的風險所在。

主講人:粘添壽博士

 

資訊與網路安全技術