designetwork

ネットワークを軸としたIT技術メモ

Cisco,LinuxのtracerouteをFWで許可(通過)する

ネットワークの疎通確認で使用するtracerouteをFWで許可し通過させるには一手間必要になる。
traceroute(トレースルート): TTL expiredを利用してネットワーク経路を確認するコマンド

tracerouteの仕様

一言でtracerouteと言っても、大きく次のパターンが存在する。

Windows tracert

Windowsではtracertによりネットワークの経路確認ができる。
このコマンドではプロトコルとしてICMPを使用する。
そのため、FWではpingと同様にICMPを許可すれば問題ない。

UNIX/Linux traceroute

Linuxに代表されるUNIX系ではtracerouteにUDPを使用する。
ただし、オプション -I を使用すればICMPになる。
CiscoやF5など、NW機器の多くはこちらに分類される。
こちらはUDPポート番号33434からインクリメントしてパケットを送信する。

FWコネクションログではこのように見える。

UDP connection 4392765 for outside:8.8.8.8/33434 (8.8.8.8/33434) to management:192.168.1.xx/47503 (x.x.x.x/47503)
UDP connection 4392766 for outside:8.8.8.8/33435 (8.8.8.8/33435) to management:192.168.1.xx/37236 (x.x.x.x/37236)
UDP connection 4392767 for outside:8.8.8.8/33436 (8.8.8.8/33436) to management:192.168.1.xx/33682 (x.x.x.x/33682)
UDP connection 4392768 for outside:8.8.8.8/33437 (8.8.8.8/33437) to management:192.168.1.xx/43481 (x.x.x.x/43481)
UDP connection 4392769 for outside:8.8.8.8/33438 (8.8.8.8/33438) to management:192.168.1.xx/44631 (x.x.x.x/44631)
UDP connection 4392770 for outside:8.8.8.8/33439 (8.8.8.8/33439) to management:192.168.1.xx/40003 (x.x.x.x/40003)
UDP connection 4392771 for outside:8.8.8.8/33440 (8.8.8.8/33440) to management:192.168.1.xx/47200 (x.x.x.x/47200)
<snip>

FWでtracerouteを許可する

上記の通り、UDPポートをインクリメントするのが厄介なため、permitルールでは分かりやすさを考慮して33434〜33499くらいで空けておくのが良いと考えられる。
66個ポート番号を使用できるため、特にオプション指定しない場合22ホップ辿ることができる。
また、Well-Knownでないハイポートなので、独自システムで明示的に使用していなければ被ることはない。

※FWの穴あけはセキュリティリスクになり得るので、事前に十分な検討をお願いします。