アプリケーション ネットワーキング サービス : Cisco PIX 500 シリーズ セキュリティ アプライアンス

ASA/PIX:ICMP PING と traceroute の処理

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
ネットワーク ダイアグラム
PIX を介した ping の送信
      PIX/ASA ソフトウェア バージョン 7.x
      PIX ソフトウェア バージョン 5.0.1 〜 6.3.3
      PIX ソフトウェア バージョン 4.2(2) 〜 5.0.1
      PIX ソフトウェア バージョン 4.1(6) 〜 4.2(2)
PIX 自身のインターフェイスへの ping の送信
PIX を介して着信する traceroute コマンド
ASA/PIX での traceroute でファイアウォールが表示されるようにする方法
     
エラー メッセージ:313005
ICMP メッセージ タイプ(RFC 792)
サービス リクエストをオープンする場合に収集しておく情報
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

PIX Firewall に対して行われる Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)による ping と traceroute は、PIX および ASA のコードのバージョンによって異なる方法で処理されます。

デフォルトでは、PIX/ASA を経由する着信 ICMP は拒否されます。発信 ICMP は許可されますが、着信応答はデフォルトでは拒否されます。

注:このドキュメントの「ASA/PIX での traceroute でファイアウォールが表示されるようにする方法」セクションの情報は ASA バージョン 8.0(3) 以降に適用されます。8.0(3) よりも前のバージョンは、不具合 CSCsk76401登録ユーザ専用)があるため、このセクションで説明している設定はサポートしません。



前提条件

要件

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



使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • PIX ソフトウェア バージョン 4.1(6) 以降

  • ICMP ping 用に 7.x 以降のバージョンを稼動する Cisco ASA 5500 シリーズ セキュリティ アプライアンス

  • ASA で traceroute 用に 8.0(3) 以降のバージョンを稼動する Cisco ASA 5500 シリーズ セキュリティ アプライアンス

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼動中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。



表記法


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



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

/image/gif/paws/15246/31a.gif

注:この設定で使用している IP アドレス スキームは、インターネット上で正式にルーティング可能なものではありません。これらはラボ環境で使用された RFC 1918 でのアドレスです。



PIX を介した ping の送信

PIX/ASA ソフトウェア バージョン 7.x

着信 ping

Outside または PIX の別の低セキュリティ インターフェイスから発信された ping は、デフォルトでは拒否されます。ping は、スタティック リストとアクセス リストまたはアクセス リストのみを使用して許可できます。次の例では、PIX の Inside にあるサーバを、外部の ping に対してアクセス可能にします。Inside のアドレス(10.1.1.5)と Outside のアドレス(192.168.1.5)の間に、スタティック変換を作成します。

pix(config)#static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255
pix(config)#access-list 101 permit icmp any host 192.168.1.5 echo
pix(config)#access-group 101 in interface outside

発信 ping

PIX 7.x には、Inside のユーザから Outside のホストへの ping を可能にするオプションが 2 つあります。第 1 のオプションは、エコー メッセージのタイプごとに特定のルールを設定することです。

たとえば、次のように入力します。

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

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

もう 1 つのオプションは、ICMP インスペクションを設定することです。これにより、信頼できる IP アドレスのファイアウォール通過が許可され、信頼できるアドレスへの応答だけが許可されます。これにより、すべての Inside インターフェイスのホストは Outside のホストに対して ping を実行できるようになり、ファイアウォールは応答を返せるようになります。さらに、ファイアウォールを通過する ICMP トラフィックを監視できるという利点があります。次の例では、icmp inspection をデフォルトのグローバル検査ポリシーに追加しています。

たとえば、次のように入力します。

policy-map global_policy
    class inspection_default
     inspect icmp

他のインターフェイスへの ping

management-access コマンドは、ユーザがフル トンネル IPSec VPN や SSL VPN クライアント(AnyConnect 2.x クライアント、SVC 1.x)を使用して、またはサイト間 IPSec トンネル経由で PIX/ASA に接続されたときにだけ、Outside から management-access インターフェイスへのユーザの接続を許可します。

グローバル コンフィギュレーション モードで management-access が設定されていない限り、PIX の Inside インターフェイスには Outside からアクセスできず、Outside インターフェイスには Inside からアクセスできません。management-access をイネーブルにしたとしても、目的のホストに対して Telnet、SSH、または HTTP アクセスを設定する必要があります。

pix(config)#management-access inside
pix(config)#show running-config management-access
management-access inside


PIX ソフトウェア バージョン 5.0.1 〜 6.3.3

デフォルトでは、PIX を経由する着信 ICMP は拒否されます。発信 ICMP は許可されますが、着信応答はデフォルトでは拒否されます。

注:バージョン 6.3.3 は、このドキュメントの改訂時点で使用可能な最新バージョンのコードです。以降のバージョンでの変更については、リリース ノートを参照してください。

着信 ping

着信 ICMP は、PIX でどちらを使用しているかによって、conduit 文または access-list 文で許可できます。conduit と access-list を併用しないでください

次の例では、すべての Outside のデバイスによって Inside のデバイス 10.1.1.5(スタティックで 192.168.1.5 が割り当てられている)の ICMP が許可されるようにする方法を示しています。

static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0

!--- および次のいずれか


conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo

!--- または


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

発信 ping

発信 ICMP に対する応答は、PIX でどちらを使用しているかによって、conduit 文または access-list 文で許可できます。conduit と access-list を併用しないでください

次の例では、Inside のデバイス 10.1.1.5(スタティックで 192.168.1.5 が割り当てられている)が開始した ICMP 要求に対する応答を、すべての Outside のデバイスから許可する方法を示しています。

static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0

!--- および次のいずれか


conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo-reply
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 source-quench
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 unreachable
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 time-exceeded

!--- または 


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


PIX ソフトウェア バージョン 4.2(2) 〜 5.0.1

デフォルトでは、PIX を経由する着信 ICMP は拒否されます。発信 ICMP は許可されますが、着信応答はデフォルトでは拒否されます。

着信 ping

着信 ICMP は conduit 文で許可できます。

次の例では、すべての Outside のデバイスによって Inside のデバイス 10.1.1.5(スタティックで 192.168.1.5 が割り当てられている)の ICMP が許可されるようにする方法を示しています。

static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo

発信 ping

発信 ICMP への応答は conduit 文で許可できます。

次の例では、Inside のデバイス 10.1.1.5(スタティックで 192.168.1.5 が割り当てられている)が開始した ICMP 要求に対する応答を、すべての Outside のデバイスから許可する方法を示しています。

static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo-reply
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 source-quench
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 unreachable
conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 time-exceeded


PIX ソフトウェア バージョン 4.1(6) 〜 4.2(2)

デフォルトでは、PIX を経由する着信 ICMP は拒否されます。発信 ICMP はデフォルトで許可されます。

着信 ping

着信 ICMP は conduit 文で許可できます。

次の例では、すべての Outside のデバイスによって Inside のデバイス 10.1.1.5(スタティックで 192.168.1.5 が割り当てられている)の ICMP が許可されるようにする方法を示しています。

static (inside), outside) 192.168.1.5 10.1.1.5
conduit 192.168.1.5 8 icmp 0.0.0.0 0.0.0.0


!--- 8 はエコー要求用です。これらは RFC 792 に基づいています。

詳細は、このドキュメントの「ICMP メッセージ タイプ(RFC 792)」を参照してください。

発信 ping

デフォルトで、発信 ICMP および応答は許可されます。



PIX 自身のインターフェイスへの ping の送信

PIX ソフトウェア バージョン 4.1(6) 〜 5.2.1 では、PIX 自身のインターフェイスに対する ICMP トラフィックは許可されます。応答しないように PIX を設定することはできません。どのバージョンでも、PIX の向こう側のインターフェイスに ping することはできません。このドキュメントのネットワーク ダイアグラムを基にすると、次のようになります。

  • 10.1.1.5 から 10.1.1.1 に対しては ping できません。

  • Outside から 192.168.1.1 に対しては ping できません。

  • 10.1.1.5 から 192.168.1.1 に対しては ping できません。

  • Outside から 10.1.1.1 に対しては ping できません。

PIX ソフトウェア バージョン 5.2.1 では、ICMP はデフォルトで許可されますが、自身のインターフェイスからの PIX ping 応答は、icmp コマンドでディセーブルにできます(つまり「ステルス PIX」になります)。

icmp permit|deny [host] src_addr [src_mask] [type] int_name

次の例では、PIX はエコー要求に対してエコー応答を送信できません。

icmp deny any echo outside

access-list と同様に、permit 文が存在しない場合、その他のすべての ICMP トラフィックも暗黙的に拒否されます。

このコマンドは、PIX の Outside の隣接ネットワークからの ping を許可します。

icmp permit 192.168.1.0 255.255.255.0 echo outside

access-list と同様に、permit 文が存在しない場合、その他のすべての ICMP トラフィックも暗黙的に拒否されます。



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

問題:PIX Firewall により、着信 traceroute の出力ですべての内部ネットワークが隠蔽される。

解決策:

PIX は traceroute コマンドをサポートしていません。traceroute が Outside から発行された場合、PIX は、自分のインターフェイスの IP アドレスだけでなく、Inside ネットワークの IP アドレスも表示しません。宛先アドレスが、内部ホップごとに繰り返し表示されます。

traceroute は、スタティック Network Address Translation(NAT; ネットワーク アドレス変換)でのみ動作し、Port Address Translation(PAT; ポート アドレス変換)の IP アドレスでは動作しません。たとえば、インターネット上のクライアント(アドレス 209.165.202.130)が、PIX の Inside にある Web サーバ(パブリック アドレス 209.165.201.25、プライベート アドレス 10.1.3.25)に対して traceroute を実行するものとします。PIX と内部 Web サーバの間には 2 つのルートがあります。クライアント マシンでの traceroute の出力は次のようになります。

Target IP address: 209.165.201.25 Source address: 209.165.202.130

 Tracing the route to 209.165.201.25 
  1 209.165.202.128 4 msec 3 msec 4 msec 
  2 209.165.201.25 3 msec 5 msec 0 msec 
  3 209.165.201.25 4 msec 6 msec 3 msec 
  4 209.165.201.25 3 msec 2 msec 2 msec 

PIX バージョン 6.3 以降では、fixup protocol icmp エラー コマンドを発行することで、この動作を元に戻すことができます。この機能をイネーブルにすると、PIX は、スタティック NAT の設定に基づいて、Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)のエラー メッセージを送信する中間ホップに対する xlate を作成します。PIX は、変換された IP アドレスでパケットを上書きします。

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

PIX/ASA を設定して、Outside ネットワークから内部のネットワークを表示するには、次のようにします。

ciscoasa#config t 
ciscoasa(config)#access-list internal-out permit icmp any any echo-reply 
ciscoasa(config)#access-list internal-out permit icmp any any time-exceeded 
ciscoasa(config)#access-list internal-out permit icmp any any unreachable 
ciscoasa(config)#policy-map global_policy 
ciscoasa(config-pmap)#class inspection_default 
ciscoasa(config-pmap-c)#
inspect icmp
 
ciscoasa(config-pmap-c)#
inspect icmp error
 
ciscoasa(config-pmap-c)#end 
ciscoasa(config)#service-policy global_policy global
ciscoasa(config)#access-group internal-out in interface outside

詳細は、『PIX および traceroute コマンド』の「PIX によるインバウンド トレースルート コマンド」セクションを参照してください。



ASA/PIX での traceroute でファイアウォールが表示されるようにする方法

ciscoasa(config)#class-map class-default
ciscoasa(config)#match any


!--- この class-map はデフォルトで存在します。


ciscoasa(config)#policy-map global_policy


!--- この policy-map はデフォルトで存在します。


ciscoasa(config-pmap)#class class-default


!--- このポリシーに別の class-map を追加します。


ciscoasa(config-pmap-c)#set connection decrement-ttl


!--- ファイアウォールを通過するパケットの IP TTL フィールドの値を減分します。
!--- デフォルトでは、この TTL はファイアウォールを(多少なりとも)隠蔽する減分にはなっていません。


ciscoasa(config-pmap-c)#exit
ciscoasa(config-pmap)#exit
ciscoasa(config)#service-policy global_policy global


!--- この service-policy はデフォルトで存在します。

WARNING: Policy map global_policy is already configured as a service policy

ciscoasa(config)#icmp unreachable rate-limit 10 burst-size 5


!--- ICMP unreachable 応答を調整します。
!--- デフォルトは、rate-limit が 1、burst-size が 1 です。
!--- デフォルトのままでは、ASA ホップがタイムアウトします。


ciscoasa(config)#access-list outside-in-acl remark Allow ICMP Type 11 for Windows tracert
ciscoasa(config)#access-list outside-in-acl extended permit icmp any any time-exceeded


!--- access-list は、ICMP トラフィックの反対側に対するものです(この場合は
!---Outside インターフェイスで、ICMP タイプ 11 応答の time-exceeded を許可するには、
!--- 変更する必要があります)。

ciscoasa(config)#access-group outside-in-acl in interface outside


!--- access-list を Outside インターフェイスに適用します。

ciscoasa(config)#


トポロジ

/image/gif/paws/15246/31b.gif

注:この設定で使用している IP アドレス スキームは、インターネット上で正式にルーティング可能なものではありません。これらは RFC 1918 でのアドレスであり、ラボ環境で使用されたものです。

ポリシーの変更を適用する前:

C:\>tracert -d www.yahoo.com.

Tracing route to www.yahoo-ht3.akadns.net [192.168.93.52]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  172.16.2.1

!--- 最初に表示されるホップは Router 1
     
  2     6 ms     6 ms     5 ms  192.168.100.101
(etc...)

ポリシーの変更を適用した後:

C:\>tracert -d www.yahoo.com.

Tracing route to www.yahoo-ht3.akadns.net [192.168.93.52]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  172.16.2.254

!--- 最初に表示されるホップは ASA

  2    <1 ms    <1 ms    <1 ms  172.16.2.1

!--- Router 1 は 2 番目のホップ

  3     6 ms     6 ms     6 ms  192.168.100.101
 (etc...)


エラー メッセージ:313005

エラー メッセージ

%PIX|ASA-4-313005: No matching connection for ICMP error message: 
icmp_msg_info on interface_name interface. Original IP payload: 
embedded_frame_info icmp_msg_info = icmp src src_interface_name:src_address dst 
dest_interface_name:dest_address (type icmp_type, code icmp_code) 
embedded_frame_info = prot src source_address/source_port dst 
dest_address/dest_port

説明

ICMP エラー メッセージはセキュリティ アプライアンスですでに確立されているどのセッションとも関係がないので、ICMP エラー パケットはセキュリティ アプライアンスによって廃棄されます。

推奨処置

原因が攻撃である場合は、ACL を使用してそのホストを拒否できます。



ICMP メッセージ タイプ(RFC 792)

メッセージ番号

メッセージ

0

Echo Reply

3

Destination Unreachable

4

Source Quench

5

Redirect

8

Echo

11

Time Exceeded

12

Parameter Problem

13

Timestamp

14

Timestamp Reply

15

Information Request

16

Information Reply




サービス リクエストをオープンする場合に収集しておく情報

ここまで説明したトラブルシューティングの手順を実行しても、なおサポートが必要で、Cisco TAC でサービス リクエストをオープンする場合には、ご使用の PIX Firewall のトラブルシューティングに必要な次の情報をご提供ください。

  • 問題の説明と関連するトポロジの詳細

  • サービス リクエストをオープンする前に実行したトラブルシューティング

  • show tech-support コマンドの出力

  • logging buffered debugging コマンド実行後の show log コマンドの出力、あるいは、問題を示す画面キャプチャ(採取されている場合)

収集したデータは、圧縮しないプレーン テキスト形式(.txt)でサービス リクエストに添付してください。情報をサービス リクエストに添付するには、Service Request Tool登録ユーザ専用)を使用してアップロードします。Service Request Tool にアクセスできない場合は、電子メールへの添付で、attach@cisco.com に情報を送信できます。この場合は、メッセージの件名(Subject)行にサービス リクエスト番号を記入してください。





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

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


関連情報




Document ID: 15246