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

ASA/PIX/FWSM: ICMP PING と traceroute の処理

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2010 年 8 月 3 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

PIX ファイアウォールに対する 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 シリーズ セキュリティ アプライアンス

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

表記法

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

ネットワーク構成図

http://www.cisco.com/c/dam/en/us/support/docs/security/pix-500-series-security-appliances/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 つあります。 最初のオプションは、エコー メッセージの各タイプに特定のルールを設定することです。

次に、例を示します。

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

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

もう 1 つのオプションは、ICMP 検査を設定することです。 これにより、信頼できる IP アドレスのファイアウォール通過が許可され、信頼できるアドレスへの応答だけが許可されます。 これにより、すべての内部のインターフェイスのホストは 外部のホストに対して 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 の内部インターフェイスには 外部からアクセスできず外部インターフェイスには内部からアクセスできません。 management-access をイネーブルにしたとしても、目的のホストに対して Telnet、SSH、または HTTP アクセスを設定する必要があります。

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

注:  ASA に関しては、127 の ICMP 型は以下に消すことができないインスペクションをハードコードしました。 オン/オフのとき Inspect icmp コマンドにこのインスペクションの影響がありません。

注: パケットを参照するまだ ASA を横断してしまわなかった ASA を渡る 1 つの方法送信 される 宛先に到達不可能なメッセージはフラグを付けられ、停止します。 この保護能力は消すことができません。

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

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

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

着信 ping

着信 ICMP は、PIX でどちらを使用しているかによって、conduit 文または access-list 文で許可できます。 コンジットとアクセス リストを併用しないでください

次の例では、すべての外部のデバイスによって内部のデバイス 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

!--- and either


conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo

!--- or


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

ping 発信

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

次の例では、内部デバイス 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

!--- and either


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

!--- or 


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 はコンジット ステートメントで許可できます。

次の例では、すべての外部のデバイスによって内部のデバイス 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 文で許可できます。

次の例では、内部デバイス 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-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 はコンジット ステートメントで許可できます。

次の例では、すべての外部のデバイスによって内部のデバイス 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


!--- The 8 is for echo request; these are from 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 できません。

  • 外部から 192.168.1.1 に対しては PING できません。

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

  • 外部から 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

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

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

icmp permit 192.168.1.0 255.255.255.0 echo outside

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

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

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

解決策:

PIX は traceroute コマンドをサポートしていません。 traceroute が 外部から発行された場合、PIX は、自分のインターフェイスの IP アドレスだけでなく、内部ネットワークの 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


!--- This class-map exists by default.


ciscoasa(config)#policy-map global_policy


!--- This Policy-map exists by default.


ciscoasa(config-pmap)#class class-default


!--- Add another class-map to this policy.


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


!--- Decrement the IP TTL field for packets traversing the firewall.
!--- By default, the TTL is not decrement hiding (somewhat) the firewall.


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


!--- This service-policy exists by default.

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

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


!--- Adjust ICMP unreachable replies:
!--- The default is rate-limit 1 burst-size 1.
!--- The default will result in timeouts for the ASA hop:


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


!--- The access-list is for the far end of the ICMP traffic (in this case
!---the outside interface) needs to be modified in order to allow ICMP type 11 replies
!--- time-exceeded):

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


!--- Apply access-list to the outside interface.

ciscoasa(config)#

トポロジ

http://www.cisco.com/c/dam/en/us/support/docs/security/pix-500-series-security-appliances/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

!--- First shown hop is 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
  
!--- First shown hop is ASA

  2    <1 ms    <1 ms    <1 ms  172.16.2.1

!---  Router 1 is now second hop

  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 宛先到達不能
4 Source Quench
5 リダイレクト
8 エコー
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 Query Tool登録ユーザ専用)を使用してアップロードすることで、サービス リクエストに情報を添付できます。 Service Request Tool にアクセスできない場合は、電子メールへの添付で、attach@cisco.com に情報を送信できます。この場合は、メッセージの件名(Subject)行にサービス リクエスト番号を記入してください。

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

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


関連情報


Document ID: 15246