ネットワークの疎通確認で使用する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の穴あけはセキュリティリスクになり得るので、事前に十分な検討をお願いします。