セキュリティ : Cisco PIX 500 シリーズ セキュリティ アプライアンス

PIX と traceroute コマンド

2010 年 10 月 8 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 10 月 10 日) | フィードバック

PIX と traceroute コマンド:シスコシステムズ

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
ネットワーク ダイアグラム
PIX を介して発信される traceroute コマンド
      Microsoft
      Cisco IOS または UNIX
      実例
PIX を介して着信する traceroute コマンド
      Microsoft
      Cisco IOS または UNIX
      実例
PIX インターフェイスに到達する traceroute コマンドの使用法
PIX からの traceroute コマンドの使用
トラブルシューティング
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、PIX を介した traceroute コマンドの許可とデバッグについて説明しています。traceroute コマンド(PC では tracert、Cisco IOS ソフトウェアでは trace または traceroute、UNIX では traceroute として知られる)は、接続のトラブルシューティングに使用できます。traceroute コマンドは、送信元デバイス(トレースを実行するマシン)のオペレーティング システムの種類によって、動作が異なる場合があります。オペレーティング システムおよび traceroute コマンドの使用方法についての詳細は、「各オペレーティング システムでの traceroute コマンドの使用方法」を参照してください。

このドキュメントの例では、PIX を介してこれらのコマンドを許可する方法について示します。

  • Microsoft の traceroute コマンド(Internet Control Message Protocol(ICMP)に依存)

  • Cisco IOS または UNIX の traceroute コマンド(ユーザ データグラム プロトコル(UDP)および ICMP に依存)

注:PIX では、 ソフトウェア バージョン 7.2(1) 以降において、traceroute コマンドによる開始がサポートされています。詳細は、「PIX からの traceroute コマンドの使用」セクションを参照してください。



前提条件

要件

このドキュメントに関する特別な要件はありません。



使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



ネットワーク ダイアグラム

/image/gif/paws/25708/pixtrace_01.gif



PIX を介して発信される traceroute コマンド

アドレス変換を可能にするために、static 文または global 文を記述する必要があります。この例では、172.18.124.41 から 209.165.202.246 に変換します。そのため、static 文は次のようになります。

static (inside, outside) 209.165.202.246 172.18.124.41

static 文または global 文の他にも、コンジットまたはアクセス コントロール リスト(ACL)も記述します。



Microsoft

発信 ICMP はデフォルトで許可されます。PIX バージョン 4.2.2 以降では、着信 ICMP の「unreachable」、「time-exceeded」、および「echo-reply」メッセージの応答については、コンジットまたは ACL を介して明示的に許可する必要があります。

conduit permit icmp host 209.165.200.246 any unreachable
conduit permit icmp host 209.165.200.246 any time-exceeded
conduit permit icmp host 209.165.200.246 any echo-reply

PIX バージョン 5.0.1 以降では、同等の機能を実行するために、コンジットではなく ACL を使用できます(コンジットと同時には使用できません)。

access-group 101 in interface outside
access-list 101 permit icmp any host 209.165.200.246 unreachable
access-list 101 permit icmp any host 209.165.200.246 time-exceeded
access-list 101 permit icmp any host 209.165.200.246 echo-reply

これにより、inside のユーザが outside のホストに ping または trace route する際に、ファイアウォールでこれらのリターン メッセージだけが許可されるようになります。他のタイプの ICMP ステータス メッセージは阻止対象とされ、ファイアウォールでは、他のすべての ICMP メッセージがブロックされます。

PIX 7.x では、ICMP 検査を構成するという方法も利用できます。これにより、信頼できる IP アドレスのファイアウォール通過が許可され、信頼できるアドレスへの応答だけが許可されます。これにより、すべての inside インターフェイスは outside に対して ping を実行できるようになり、ファイアウォールは応答を返せるようになります。さらに、ファイアウォールを通過する ICMP トラフィックを監視できるという利点があります。

次にその例を示します。

policy-map global_policy
    class inspection_default
    inspect icmp

inspect icmp コマンドについての詳細は、『コマンド リファレンス』を参照してください。



Cisco IOS または UNIX

発信 ICMP および UDP は、発信 UDP に対して応答するように、デフォルトで許可されています。PIX バージョン 4.2.2 以降では、着信 ICMP の "time-exceeded" および "unreachable" メッセージの応答については、コンジットまたは ACL を介して明示的に許可する必要があります。

conduit permit icmp host 209.165.200.246 any unreachable
conduit permit icmp host 209.165.200.246 any time-exceeded

PIX バージョン 5.0.1 以降では、同等の機能を実行するために、コンジットではなく ACL を使用できます(コンジットと同時には使用できません)。

access-group 101 in interface outside
access-list 101 permit icmp any host 209.165.200.246 unreachable
access-list 101 permit icmp any host 209.165.200.246 time-exceeded


実例

次に示すのは、PIX を介した発信 traceroute コマンドの出力例です。PIX の inside インターフェイスは表示されませんが、トレース デバイスと宛先の間の各ルータの「近接インターフェイス」については確認できます。

goss-c1-2513#trace 209.165.202.130

Type escape sequence to abort.
Tracing the route to 209.165.202.130

  1 172.18.124.40 0 msec 0 msec 4 msec
  2 209.165.200.241 12 msec 8 msec 96 msec
  3 209.165.202.130 104 msec 8 msec * 

PIX 7.0 では、NAT がイネーブルな場合には、中間ホップの PIX インターフェイスおよび実際の IP アドレスを見ることはできません。ただし、PIX 7.0 では NAT は必須ではなく、no nat-control コマンドを使用してディセーブルにできます。NAT ルールが削除されると、実際の IP アドレスがルーティング可能なものであれば見ることができます。



PIX を介して着信する traceroute コマンド

PIX 内部のデバイスに到達するために、traceroute コマンドを使用するには、内部デバイスとの静的マッピングを定義する必要があります。この例では、静的マッピングは次のようになります。

static (inside, outside) 209.165.202.246 172.18.124.41

static 文または global 文の他に、コンジットまたは ACL も記述します。



Microsoft

PIX バージョン 4.2.2 以降では、着信 ICMP "echo" が明示的に許可される必要があります。

conduit permit icmp host 209.165.200.246 any echo

PIX バージョン 5.0.1 以降では、同等の機能を実行するために、コンジットではなく ACL を使用できます(コンジットと同時には使用できません)。

access-group 101 in interface outside
access-list 101 permit icmp any host 209.165.200.246 echo


Cisco IOS または UNIX

着信 UDP が許可される必要があります。送信元ポートおよび宛先ポートが不確定であるため、デバイスに到達するすべての UDP が許可されます。

conduit permit udp host 209.165.200.246 any

PIX バージョン 5.0.1 以降では、同等の機能を実行するために、コンジットではなく ACL を使用できます(コンジットと同時には使用できません)。

access-group 101 in interface outside
access-list 101 permit udp host 209.165.200.246 any


実例

次に示すのは、PIX を介した着信 traceroute コマンドの出力例です。グローバル アドレスに 2 つのエントリがあるのは、内部デバイスに到達するまでに、PIX を超えるホップが 2 つ存在するためです。ただし、PIX によって内部デバイスの実際の IP アドレスが開示されることはなく、リストの中に IP アドレスが表示されることもありません。

goss-e4-2513a#trace 209.165.200.246

Type escape sequence to abort.
Tracing the route to 209.165.200.246

  1 209.165.202.129 4 msec 4 msec 8 msec
  2 209.165.200.246 4 msec 0 msec 4 msec
  3 209.165.200.246 8 msec 4 msec *


PIX インターフェイスに到達する traceroute コマンドの使用法

発信または着信 traceroute コマンドのルート リストに PIX は表示されません。PIX インターフェイスに到達する traceroute コマンドを発行できるかどうかを考えます。

/image/gif/paws/25708/pixtrace_02.gif

次の図で示した例では、outside から PIX の inside インターフェイスのプライベート アドレスには、UDP または ICMP トラフィックを送信できないため、A から C の traceroute を機能させるのに必要な UDP および ICMP トラフィックを知ることができません。また、inside インターフェイスを静的にセットアップする方法も無効です。PIX の outside インターフェイスは、inside 側からの UDP または ICMP には応答しないため、D から B への traceroute は不可能です。そのため、A から C、または D から B に発行される traceroute コマンドは機能しません。

次に示す Microsoft の traceroute では、PIX に対する試行そのものは動作します。

  • D から C には traceroute コマンドを発行できます。

  • A から B には traceroute コマンドを発行できます。

次の Cisco IOS または UNIX の traceroute では、PIX に対する試行そのものが動作しません

  • D から C には traceroute コマンドを発行できません。

  • A から B には traceroute コマンドを発行できません。

PIX バージョン 5.2において、icmp コマンドが導入されました。このコマンドにより、PIX のローカル インターフェイス宛ての ICMP トラフィックに対する PIX の動作を修正できます。その結果、PIX によって受信される ICMP 要求をイネーブルまたはディセーブルできるようになりました。

これらのコマンドを設定して、PIX がホスト A から発信された ping に応答するのを停止します。

icmp deny host A echo outside 
icmp permit any outside 

icmp コマンドが一度使用されると、いずれの ICMP タイプも拒否する動作がデフォルトとなるため、2 番目のコマンド(icmp permit any outside)が必要になります。



PIX からの traceroute コマンドの使用

PIX では、ソフトウェア バージョン 7.1 までは、traceroute コマンドによる開始をサポートされませんが、バージョン 7.2(1) 以降ではこのコマンドがサポートされています。

traceroute コマンドは、パケットが宛先に向かうときに実際に通過するルート検出するのに使用されます。デバイス(たとえば、PIX または ルータ、または PC)は、リモート ホストの無効なポート アドレスに、ユーザ データグラム プロトコル(UDP)データグラムのシーケンスを送出します。

3 つのデータグラムが送信され、それぞれの Time-To-Live(TTL; 存続可能時間)フィールドの値は 1 に設定されています。TTL 値が 1 の場合には、データグラムがパス上の最初のルータに到達した時点で、すぐにタイムアウトになります。このルータは、データグラムが時間切れになったことを示す、ICMP Time Exceeded Message (TEM)で応答します。

次に、別の 3 つの UDP メッセージが送信され、それぞれの TTL 値は 2 に設定されているため、2 番目のルータは ICMP TEM を返します。パケットが実際にもう一方の側の宛先に到達するまで、このプロセスが継続します。これらのデータグラムは宛先ホストの無効なポートにアクセスしようとするため、ICMP Port Unreachable メッセージが返され、ポートが到達不能であることを示します。このイベントにより、traceroute プログラムは終了するよう通知されます。

次の例は、宛先 IP アドレスが指定されているときの traceroute の出力を示しています。

 

PIX#traceroute 192.168.200.225

Tracing the route to 192.168.200.225

 1  10.83.194.1 0 msec 10 msec 0 msec

 2  10.83.193.65 0 msec 0 msec 0 msec

 3  10.88.193.101 0 msec 10 msec 0 msec

 4  10.88.193.97 0 msec 0 msec 10 msec

 5  10.88.239.9 0 msec 10 msec 0 msec

 6  10.88.238.65 10 msec 10 msec 0 msec

 7 172.16.7.221 70 msec 70 msec 80 msec  

 8 192.168.200.225 70 msec 70 msec 70 msec

traceroute コマンドの詳細は、『PIX Software バージョン 7.2 コマンド リファレンス』を参照してください。



トラブルシューティング

  • traceroute コマンドは、PIX のどちら側のデバイスに対しても発行できますか。

  • PIX から外部デバイスに、および PIX から内部デバイスに ping できますか。

  • 外部デバイスから PIX へ、および内部デバイスから PIX へ ping できますか。

  • traceroute は、PC と、Cisco IOS または UNIX ボックスのどちらから発行した場合も失敗しますか。

  • どの部分で traceroute は失敗していますか。

  • 中間にある各デバイスに、トラフィックをブロックする可能性のある ACL が設定されていませんか。

  • すべてのトラフィックが失敗しますか。それとも、traceroute のトラフィックだけですか。

  • 着信 traceroute には静的なデバイス マッピングが設定されていますか。

  • 内部デバイスには PIX へのルートが存在しますか。

負荷の高い PIX に debug コマンドを追加する際には、細心の注意を払って下さい。ただし、PIX を通過するトラフィック量に基づいて、デバッグをオンにできます。

debug icmp trace

また、1 つまたは複数インターフェイスに対して、パケット デバッグもオンにできます。

debug packet inside src 172.18.124.41 dst 209.165.202.130 proto udp both
debug packet outside src 209.165.202.130 dst any proto udp both

次の例は、着信 traceroute のデバッグ出力の一部です。

172.18.124.41   ==>     209.165.202.130
       ttl = 0x1       proto=0x11      chksum = 0xf23d
      -- UDP --
Inbound  ICMP time exceeded (code 0) 209.165.200.241 > 209.165.200.243 > 
   172.18.124.41
172.18.124.41   ==>     209.165.202.130
       ttl = 0x2       proto=0x11      chksum = 0xf138
    -- UDP --
Inbound  ICMP unreachable (code 3) 209.165.202.130 > 209.165.200.243 > 
   172.18.124.41

次の例は、発信 traceroute のデバッグ出力の一部です。

209.165.202.130 ==>     209.165.200.246
        ttl = 0x2       proto=0x11      chksum = 0x7f29
        -- UDP --
153: Outbound ICMP unreachable (code 3) 172.18.124.41 > 209.165.200.246 > 
   209.165.202.130


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 25708