セキュリティ : Cisco ASA 5500-X シリーズ次世代型ファイアウォール

PIX/ASA:static コマンドおよび 3 つの NAT インターフェイスによる DNS Doctoring の設定例

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

目次

概要
前提条件
      要件
      使用するコンポーネント
      関連製品
      表記法
背景説明
シナリオ:3 つの NAT インターフェイス(inside、outside、dmz)
      トポロジ
      問題:クライアントが WWW サーバにアクセスできない
      ソリューション:「dns」キーワード
      別のソリューション:宛先 NAT
DNS インスペクションの設定
確認
      DNS トラフィックのキャプチャ
トラブルシューティング
      DNS 書き換えが実行されない
      変換の作成に失敗する
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、スタティック Network Address Translation(NAT; ネットワーク アドレス変換)設定を使用する ASA 5500 シリーズ適応型セキュリティ アプライアンスまたは PIX 500 シリーズ セキュリティ アプライアンスで Domain Name System(DNS; ドメイン ネーム システム)Doctoring を実行するための設定例を紹介しています。DNS Doctoring により、セキュリティ アプライアンスが DNS A レコードを書き換えられるようになります。

DNS 書き換えでは、次の 2 つの機能が実行されます。

  • DNS クライアントがプライベート インターフェイス上に存在する場合、DNS 応答に含まれるパブリック アドレス(ルーティング可能なアドレスまたはマップ アドレス)をプライベート アドレス(リアル アドレス)に変換する。

  • DNS クライアントがパブリック インターフェイス上に存在する場合、プライベート アドレスをパブリック アドレスに変換する。

注:このドキュメントの設定には 3 つの NAT インターフェイス(inside、outside、および dmz)が含まれます。static コマンドと 2 つの NAT インターフェイスを使用した DNS Doctoring の例については、『PIX/ASA:static コマンドおよび 2 つの NAT インターフェイスによる DNS Doctoring の設定例』を参照してください。

PIX/ASA セキュリティ アプライアンスで NAT を使用する方法についての詳細は、『PIX/ASA 7.x の NAT と PAT の設定例』および『PIX での nat、global、static、conduit、および access-list の各コマンドとポート リダイレクション(フォワーディング)の使用方法』を参照してください。

PIX での natglobalstaticconduitaccess-list の各コマンドおよびポート リダイレクション(フォワーディング)についての詳細は、『PIX での nat、global、static、conduit、および access-list の各コマンドとポート リダイレクション(フォワーディング)の使用方法』を参照してください。

前提条件

要件

  • セキュリティ アプライアンスで DNS Doctoring を実行するには、DNS インスペクションをイネーブルにする必要があります。デフォルトでは、DNS インスペクションはオンになっています。ただし、DNS インスペクションがオフになっている場合は、このドキュメントの「DNS インスペクションの設定」セクションを参照してください。DNS インスペクションがイネーブルになっている場合、セキュリティ アプライアンスでは次のタスクが実行されます。

    • static および nat コマンドを使用して作成された設定に基づいて DNS レコードを変換します(DNS 書き換え)。変換は DNS 応答の A レコードだけに適用されます。そのため、PTR レコードを要求する逆参照は DNS 書き換えの影響を受けません。

      注:各 A レコードには複数の PAT ルールが適用可能であり、使用する PAT ルールがあいまいになるため、DNS 書き換えはスタティック Port Address Translation(PAT; ポート アドレス変換)と互換性がありません。

    • DNS メッセージの最大長を適用します(デフォルトは 512 バイト、最大長は 65535 バイトです)。設定された最大長よりもパケットの長さが短いことを確認するために、必要に応じて再構成が実行されます。最大長を超えるパケットは廃棄されます。

      注:最大長オプションを指定せずに inspect dns コマンドを発行した場合、DNS パケットのサイズはチェックされません。

    • ドメイン名の長さを 255 バイトに、ラベルの長さを 63 バイトに制限します。

    • DNS メッセージで圧縮ポインタが見つかった場合、ポインタによって参照されているドメイン名の整合性を確認します。

    • 圧縮ポインタのループが存在するかどうかを確認します。

  • オプション:Cisco Adaptive Security Device Manager(ASDM)リリース 5.2.1 以降

    注:ASA を ASDM で設定できるようにする方法については、『ASDM 用の HTTPS アクセスの許可』を参照してください。

使用するコンポーネント

このドキュメントの情報は ASA 5500 シリーズ セキュリティ アプライアンス バージョン 7.2(1) に基づくものです。

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

関連製品

この設定は、Cisco PIX 500 シリーズ セキュリティ アプライアンス バージョン 6.2 以降にも適用できます。

注:ASDM の設定はバージョン 7.x だけに適用できます。

表記法

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

背景説明

一般的な DNS 交換においては、クライアントが DNS サーバーに URL またはホスト名を送信し、そのホストの IP アドレスを調べます。DNS サーバは要求を受信し、そのホストの名前と IP アドレスのマッピングを参照して、IP アドレスを含む A レコードをクライアントに提供します。この手順はほとんどの状況において問題なく実行されますが、場合によっては問題が発生することもあります。クライアントと、そのクライアントがアクセスしようとしているホストの両方が NAT の背後にある同一のプライベート ネットワーク上に存在し、クライアントによって使用される DNS サーバが他のパブリック ネットワーク上に存在する場合は、そのような問題が発生します。

シナリオ:3 つの NAT インターフェイス(inside、outside、dmz)

トポロジ

このシナリオでは、クライアントが ASA の inside インターフェイスに存在しています。クライアントがアクセスしようとしている WWW サーバは ASA の dmz インターフェイスに存在しています。クライアントがインターネットにアクセスできるようにダイナミック PAT が設定されています。サーバがインターネットにアクセスできるように(さらに、インターネット ホストが WWW サーバにアクセスできるように)、アクセスリストを含むスタティック NAT が設定されています。

dns-doctoring-3zones1.gif

この図は、この状況の例です。この場合、192.168.100.2 のクライアントは server.example.com という URL を使用して 10.10.10.10 の WWW サーバにアクセスしようとしています。クライアントの DNS サービスは、172.22.1.161 の外部 DNS サーバによって提供されます。この DNS サーバは他のパブリック ネットワーク上に存在するため、WWW サーバのプライベート IP アドレスを認識していません。ただし、WWW サーバのマップ アドレス(172.20.1.10)は認識しています。そのため、この DNS サーバには server.example.com172.20.1.10 に変換する IP アドレスと名前のマッピングが含まれています。

問題:クライアントが WWW サーバにアクセスできない

この状況で DNS Doctoring やその他のソリューションがイネーブルになっていない場合、クライアントから server.example.com の IP アドレスに関する DNS 要求が送信されても、クライアントは WWW サーバにアクセスできません。これは、WWW サーバのパブリック アドレス(172.20.1.10)を含む A レコードをクライアントが受信するためです。クライアントがこの IP アドレスにアクセスしようとすると、同じインターフェイスでのパケット リダイレクションが許可されないため、セキュリティ アプライアンスによってパケットが廃棄されます。DNS Doctoring がイネーブルになっていない場合、設定の NAT 部分は次のようになります。

ciscoasa(config)#show running-config
: Saved
:
ASA Version 7.2(1)
!
hostname ciscoasa

!--- 出力を省略。

access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www

!--- 出力を省略。

global (outside) 1 interface
nat (inside) 1 192.168.100.0 255.255.255.0
static (inside,dmz) 192.168.100.0 192.168.100.0 netmask 255.255.255.0

!--- inside のホストが dmz のホストにアクセスできるようにするための
!--- スタティック変換。

static (dmz,outside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255

!--- outside のホストが WWW サーバにアクセスできるようにするための
!--- スタティック変換。

access-group OUTSIDE in interface outside

!--- 出力を省略。

DNS Doctoring がイネーブルになっていない場合、ASDM の設定は次のようになります。

dns-doctoring-3zones2.gif

DNS Doctoring がイネーブルになっていない場合、イベントのパケット キャプチャは次のようになります。

  1. クライアントが DNS クエリーを送信します。

    No.     Time       Source             Destination       Protocol Info
    1       0.000000   192.168.100.2   172.22.1.161    DNS Standard query 
                                                     A server.example.com
    
    Frame 1 (78 bytes on wire, 78 bytes captured)
    Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f 
    (00:0a:b8:9c:c6:1f)
    Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 
    (172.22.1.161)
    User Datagram Protocol, Src Port: 50879 (50879), Dst Port: domain (53)
    Domain Name System (query)
        [Response In: 2]
        Transaction ID: 0x0004
        Flags: 0x0100 (Standard query)
        Questions: 1
        Answer RRs: 0
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
    
  2. DNS クエリーに対する PAT が ASA によって実行され、クエリーが転送されます。パケットの送信元アドレスが ASA の outside インターフェイスに変更されていることに注意してください。

    No.     Time       Source          Destination     Protocol Info
    1       0.000000   172.20.1.2     172.22.1.161   DNS Standard query 
                                                       A server.example.com
    
    Frame 1 (78 bytes on wire, 78 bytes captured)
    Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 
    (00:30:94:01:f1:22)
    Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 
    (172.22.1.161)
    User Datagram Protocol, Src Port: 1044 (1044), Dst Port: domain (53)
    Domain Name System (query)
        [Response In: 2]
        Transaction ID: 0x0004
        Flags: 0x0100 (Standard query)
        Questions: 1
        Answer RRs: 0
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
    
  3. DNS サーバが WWW サーバのマップ アドレスを使用して応答します。

    No.     Time       Source          Destination          Protocol Info
    2       0.005005   172.22.1.161  172.20.1.2        DNS Standard query response 
                                                     A 172.20.1.10
    
    Frame 2 (94 bytes on wire, 94 bytes captured)
    Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e 
    (00:0a:b8:9c:c6:1e)
    Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 
    (172.20.1.2)
    User Datagram Protocol, Src Port: domain (53), Dst Port: 1044 (1044)
    Domain Name System (response)
        [Request In: 1]
        [Time: 0.005005000 seconds]
        Transaction ID: 0x0004
        Flags: 0x8580 (Standard query response, No error)
        Questions: 1
        Answer RRs: 1
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
        Answers
            server.example.com: type A, class IN, addr 172.20.1.10
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
                Time to live: 1 hour
                Data length: 4
                Addr: 172.20.1.10
    
  4. ASA が DNS 応答の宛先アドレスの変換を元に戻し、パケットをクライアントに転送します。DNS Doctoring がイネーブルになっていない場合、応答に含まれる Addr は WWW サーバのマップ アドレスのままです。

    No.     Time      Source         Destination       Protocol Info
    2       0.005264  172.22.1.161   192.168.100.2   DNS Standard query response 
                                                       A 172.20.1.10
    
    Frame 2 (94 bytes on wire, 94 bytes captured)
    Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 
    (00:04:c0:c8:e4:00)
    Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 
    (192.168.100.2)
    User Datagram Protocol, Src Port: domain (53), Dst Port: 50879 (50879)
    Domain Name System (response)
        [Request In: 1]
        [Time: 0.005264000 seconds]
        Transaction ID: 0x0004
        Flags: 0x8580 (Standard query response, No error)
        Questions: 1
        Answer RRs: 1
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
        Answers
            server.example.com: type A, class IN, addr 172.20.1.10
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
                Time to live: 1 hour
                Data length: 4
                Addr: 172.20.1.10
    
  5. この時点で、クライアントは 172.20.1.10 の WWW サーバにアクセスしようとします。ASA がこの通信の接続エントリを作成します。ただし、inside から outside を経由して dmz にトラフィックを流すことは許可されないため、接続はタイムアウトします。ASA ログには次のように表示されます。

    %ASA-6-302013: Built outbound TCP connection 54175 for 
    outside:172.20.1.10/80 (172.20.1.10/80) to inside:192.168.100.2/11001 
    (172.20.1.2/1024)
    
    %ASA-6-302014: Teardown TCP connection 54175 for outside:172.20.1.10/80 
    to inside:192.168.100.2/11001 duration 0:00:30 bytes 0 SYN Timeout
    

ソリューション:「dns」キーワード

「dns」キーワードを使用した DNS Doctoring

dns キーワードを伴う DNS Doctoring では、セキュリティ アプライアンスが DNS サーバからクライアントへの応答を代行受信して、内容を書き換えられるようになります。適切に設定されている場合、セキュリティ アプライアンスは「問題:クライアントが WWW サーバにアクセスできない」セクションで説明されているような状況にあるクライアントが接続できるように A レコードを変更できます。この状況で DNS Doctoring がイネーブルになっている場合、セキュリティ アプライアンスは、172.20.1.10 ではなく 10.10.10.10 にクライアントを誘導するように A レコードを書き換えます。DNS Doctoring は、スタティック NAT 設定に dns キーワードを追加するとイネーブルになります。DNS Doctoring がイネーブルになっている場合、設定の NAT 部分は次のようになります。

ciscoasa(config)#show running-config
: Saved
:
ASA Version 7.2(1)
!
hostname ciscoasa

!--- 出力を省略。

access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www

!--- 出力を省略。

global (outside) 1 interface
nat (inside) 1 192.168.100.0 255.255.255.0
static (inside,dmz) 192.168.100.0 192.168.100.0 netmask 255.255.255.0

!--- inside のホストが dmz のホストにアクセスできるようにするための
!--- スタティック変換。

static (dmz,outside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255 dns

!--- セキュリティ アプライアンスに対して、このエントリに関連する DNS レコードを修正するように指示するために、 
!--- 「dns」キーワードが追加されています。

access-group OUTSIDE in interface outside

!--- 出力を省略。

ASDM で DNS Doctoring を設定するには、次の手順を実行します。

  1. Configuration > NAT に移動し、修正するスタティック NAT ルールを選択します。Edit をクリックします。

    dns-doctoring-3zones3.gif

  2. NAT Options... をクリックします。

    dns-doctoring-3zones4.gif

  3. Translate DNS replies that match the rule チェックボックスにチェックマークを付けます。

    dns-doctoring-3zones5.gif

  4. OK をクリックして、NAT Options ウィンドウを閉じます。OK をクリックして、Edit Static NAT Rule ウィンドウを閉じます。Apply をクリックして、セキュリティ アプライアンスに設定を送信します。

DNS Doctoring がイネーブルになっている場合、イベントのパケット キャプチャは次のようになります。

  1. クライアントが DNS クエリーを送信します。

    No.     Time       Source              Destination       Protocol Info
    1       0.000000   192.168.100.2    172.22.1.161    DNS Standard query 
                                                      A server.example.com
    
    Frame 1 (78 bytes on wire, 78 bytes captured)
    Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f 
    (00:0a:b8:9c:c6:1f)
    Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 
    (172.22.1.161)
    User Datagram Protocol, Src Port: 52985 (52985), Dst Port: domain (53)
    Domain Name System (query)
        [Response In: 2]
        Transaction ID: 0x000c
        Flags: 0x0100 (Standard query)
        Questions: 1
        Answer RRs: 0
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
    
  2. DNS クエリーに対する PAT が ASA によって実行され、クエリーが転送されます。パケットの送信元アドレスが ASA の outside インターフェイスに変更されていることに注意してください。

    No.     Time       Source          Destination       Protocol Info
    1       0.000000   172.20.1.2     172.22.1.161      DNS  Standard query 
                                                         A server.example.com
    
    Frame 1 (78 bytes on wire, 78 bytes captured)
    Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 
    (00:30:94:01:f1:22)
    Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 
    (172.22.1.161)
    User Datagram Protocol, Src Port: 1035 (1035), Dst Port: domain (53)
    Domain Name System (query)
        [Response In: 2]
        Transaction ID: 0x000c
        Flags: 0x0100 (Standard query)
        Questions: 1
        Answer RRs: 0
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
    
  3. DNS サーバが WWW サーバのマップ アドレスを使用して応答します。

    No.     Time       Source           Destination       Protocol Info
    2       0.000992   172.22.1.161   172.20.1.2      DNS Standard query response 
                                                    A 172.20.1.10
    
    Frame 2 (94 bytes on wire, 94 bytes captured)
    Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e 
    (00:0a:b8:9c:c6:1e)
    Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 
    (172.20.1.2)
    User Datagram Protocol, Src Port: domain (53), Dst Port: 1035 (1035)
    Domain Name System (response)
        [Request In: 1]
        [Time: 0.000992000 seconds]
        Transaction ID: 0x000c
        Flags: 0x8580 (Standard query response, No error)
        Questions: 1
        Answer RRs: 1
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
        Answers
            server.example.com: type A, class IN, addr 172.20.1.10
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
                Time to live: 1 hour
                Data length: 4
                Addr: 172.20.1.10
    
  4. ASA が DNS 応答の宛先アドレスの変換を元に戻し、パケットをクライアントに転送します。DNS Doctoring がイネーブルになっている場合、応答に含まれる Addr は WWW サーバのリアル アドレスに書き換えられます。

    No.     Time       Source            Destination       Protocol Info
    6       2.507191   172.22.1.161   192.168.100.2   DNS Standard query response 
                                                    A 10.10.10.10
    
    Frame 6 (94 bytes on wire, 94 bytes captured)
    Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 
    (00:04:c0:c8:e4:00)
    Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 
    (192.168.100.2)
    User Datagram Protocol, Src Port: domain (53), Dst Port: 50752 (50752)
    Domain Name System (response)
        [Request In: 5]
        [Time: 0.002182000 seconds]
        Transaction ID: 0x0004
        Flags: 0x8580 (Standard query response, No error)
        Questions: 1
        Answer RRs: 1
        Authority RRs: 0
        Additional RRs: 0
        Queries
            server.example.com: type A, class IN
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
        Answers
            server.example.com: type A, class IN, addr 10.10.10.10
                Name: server.example.com
                Type: A (Host address)
                Class: IN (0x0001)
                Time to live: 1 hour
                Data length: 4
                Addr: 10.10.10.10
    
  5. この時点で、クライアントは 10.10.10.10 の WWW サーバにアクセスしようとします。接続は成功します。

「dns」キーワードを使用した最終的な設定

これは、dns キーワードと 3 つの NAT インターフェイスを使用した DNS Doctoring を実行するための ASA の最終的な設定です。

最終的な ASA 7.2(1) の設定

ciscoasa(config)#show running-config
: Saved
:
ASA Version 7.2(1)
!
hostname ciscoasa
enable password 9jNfZuG3TC5tCVH0 encrypted
names
dns-guard
!
interface Ethernet0/0
 nameif outside
 security-level 0
 ip address 172.20.1.2 255.255.255.0
!
interface Ethernet0/1
 nameif inside
 security-level 100
 ip address 192.168.100.1 255.255.255.0
!
interface Ethernet0/2
 nameif dmz
 security-level 50
 ip address 10.10.10.1 255.255.255.0
!
interface Management0/0
 shutdown
 no nameif
 no security-level
 no ip address
 management-only
!
passwd 2KFQnbNIdI.2KYOU encrypted
ftp mode passive
access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www

!--- WWW サーバのマップ アドレスへの HTTP アクセスを許可する
!--- 基本的なアクセスリスト。

pager lines 24
logging enable
logging buffered debugging
mtu outside 1500
mtu inside 1500
mtu dmz 1500
asdm image disk0:/asdm512-k8.bin
no asdm history enable
arp timeout 14400
global (outside) 1 interface
nat (inside) 1 192.168.100.0 255.255.255.0
static (inside,dmz) 192.168.100.0 192.168.100.0 netmask 255.255.255.0
static (dmz,outside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255 dns

!--- PAT およびスタティック NAT の設定。DNS キーワードを指定することにより、
!--- このエントリに関連する DNS レコードがセキュリティ アプライアンスによって書き換えられるようになります。

access-group OUTSIDE in interface outside

!--- WWW サーバへの HTTP アクセスを許可する Access Control List(ACL; アクセス コントロール リスト) 
!--- が outside インターフェイスに適用されています。

route outside 0.0.0.0 0.0.0.0 172.20.1.1 1
timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout uauth 0:05:00 absolute
username cisco password ffIRPGpDSOJh9YLq encrypted
http server enable
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
telnet timeout 5
ssh timeout 5
console timeout 0
!
class-map inspection_default
 match default-inspection-traffic
!
!
policy-map type inspect dns MY_DNS_INSPECT_MAP
 parameters
  message-length maximum 512
policy-map global_policy
 class inspection_default
  inspect ftp
  inspect h323 h225
  inspect h323 ras
  inspect rsh
  inspect rtsp
  inspect esmtp
  inspect sqlnet
  inspect skinny
  inspect sunrpc
  inspect xdmcp
  inspect sip
  inspect netbios
  inspect tftp
  inspect dns MY_DNS_INSPECT_MAP

!--- 設定されたマップを使用して DNS インスペクションがイネーブルになっています。

  inspect icmp
policy-map type inspect dns migrated_dns_map_1
 parameters
  message-length maximum 512
!
service-policy global_policy global
prompt hostname context
Cryptochecksum:d6637819c6ea981daf20d8c7aa8ca256
: end

別のソリューション:宛先 NAT

宛先 NAT は DNS Doctoring の代替策として使用できます。この状況で宛先 NAT を使用するには、inside における WWW サーバのパブリック アドレスと dmz におけるリアル アドレスの間のスタティック NAT 変換を作成する必要があります。宛先 NAT の場合、DNS サーバからクライアントに返される DNS A レコードの内容は変更されません。このドキュメントで説明されているようなシナリオで宛先 NAT を使用すると、クライアントは DNS サーバから返されるパブリック IP アドレス 172.20.1.10 を使用して WWW サーバに接続できます。スタティック変換により、セキュリティ アプライアンスは宛先アドレスを 172.20.1.10 から 10.10.10.10 に変換できるようになります。宛先 NAT を使用する場合の設定の関連部分を次に示します。

ciscoasa(config)#show running-config
: Saved
:
ASA Version 7.2(1)
!
hostname ciscoasa

!--- 出力を省略。

access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www

!--- 出力を省略。

global (outside) 1 interface
nat (inside) 1 192.168.100.0 255.255.255.0

!--- nat および global コマンドによって、  
!--- クライアントがインターネットにアクセスできるようになります。

static (inside,dmz) 192.168.100.0 192.168.100.0 netmask 255.255.255.0

!--- inside のホストが dmz のホストにアクセスできるようにするための
!--- スタティック変換。

static (dmz,outside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255

!--- outside のホストが WWW サーバにアクセスできるようにするための
!--- スタティック変換。

static (dmz,inside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255

!--- inside のホストが outside アドレスを介して WWW サーバに
!--- アクセスできるようにするためのスタティック変換。

access-group OUTSIDE in interface outside

!--- 出力を省略。

ASDM で宛先 NAT を設定するには、次の手順を実行します。

  1. Configuration > NAT に移動し、Add > Add Static NAT Rule... の順に選択します。

    dns-doctoring-3zones6.gif

  2. 新しいスタティック変換の設定を入力します。

    1. Real Address 領域に、WWW サーバの情報を入力します。

    2. Static Translation 領域に、WWW サーバにマッピングするアドレスとインターフェイスを入力します。

    この例では、inside インターフェイス上のホストが、マップ アドレス 172.20.1.10 を介して WWW サーバにアクセスできるように inside インターフェイスが選択されています。

    dns-doctoring-3zones7.gif

  3. OK をクリックして、Add Static NAT Rule ウィンドウを閉じます。

  4. Apply をクリックして、セキュリティ アプライアンスに設定を送信します。

宛先 NAT が設定されている場合に発生する一連のイベントを次に示します。クライアントはすでに DNS サーバへ問い合せを行い、WWW サーバのアドレスは 172.20.1.10 であるという応答を受信したと仮定します。

  1. クライアントが 172.20.1.10 の WWW サーバに接続しようと試みます。

    %ASA-7-609001: Built local-host inside:192.168.100.2
    
  2. セキュリティ アプライアンスが要求を確認し、WWW サーバが 10.10.10.10 であることを認識します。

    %ASA-7-609001: Built local-host dmz:10.10.10.10
    
  3. セキュリティ アプライアンスがクライアントと WWW サーバの間の TCP 接続を確立します。カッコで囲まれた各ホストのマップ アドレスに注意してください。

    %ASA-6-302013: Built outbound TCP connection 67956 for dmz:10.10.10.10/80 
    (172.20.1.10/80) to inside:192.168.100.2/11001 (192.168.100.2/11001)
    
  4. セキュリティ アプライアンスで show xlate コマンドを実行すると、クライアントのトラフィックがセキュリティ アプライアンスを介して変換されていることが確認されます。この例では、最初のスタティック変換が使用されています。

    ciscoasa#show xlate
    3 in use, 9 most used
    Global 192.168.100.0 Local 192.168.100.0
    Global 172.20.1.10 Local 10.10.10.10
    Global 172.20.1.10 Local 10.10.10.10
    
  5. セキュリティ アプライアンスで show conn コマンドを実行すると、クライアントと WWW サーバの間の接続がセキュリティ アプライアンスを介して成功したことが確認されます。カッコで囲まれた WWW サーバのリアル アドレスに注意してください。

    ciscoasa#show conn
    TCP out 172.20.1.10(10.10.10.10):80 in 192.168.100.2:11001 
    idle 0:01:38 bytes 1486 flags UIO
    

宛先 NAT を使用した最終的な設定

これは、宛先 NAT と 3 つの NAT インターフェイスを使用した DNS Doctoring を実行するための ASA の最終的な設定です。

最終的な ASA 7.2(1) の設定

ciscoasa#show running-config
: Saved
:
ASA Version 7.2(1)
!
hostname ciscoasa
enable password 9jNfZuG3TC5tCVH0 encrypted
names
dns-guard
!
interface Ethernet0/0
 nameif outside
 security-level 0
 ip address 172.20.1.2 255.255.255.0
!
interface Ethernet0/1
 nameif inside
 security-level 100
 ip address 192.168.100.1 255.255.255.0
!
interface Ethernet0/2
 nameif dmz
 security-level 50
 ip address 10.10.10.1 255.255.255.0
!
interface Management0/0
 shutdown
 no nameif
 no security-level
 no ip address
 management-only
!
passwd 2KFQnbNIdI.2KYOU encrypted
ftp mode passive
access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www

!--- WWW サーバのマップ アドレスへの HTTP アクセスを許可する
!--- 基本的なアクセスリスト。

pager lines 24
logging enable
logging buffered debugging
mtu outside 1500
mtu inside 1500
mtu dmz 1500
asdm image disk0:/asdm512-k8.bin
no asdm history enable
arp timeout 14400
global (outside) 1 interface
nat (inside) 1 192.168.100.0 255.255.255.0

!--- nat および global コマンドによって、 
!--- クライアントがインターネットにアクセスできるようになります。

static (inside,dmz) 192.168.100.0 192.168.100.0 netmask 255.255.255.0

!--- inside のホストが dmz のホストにアクセスできるようにするための
!--- スタティック変換。

static (dmz,outside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255

!--- outside のホストが WWW サーバにアクセスできるようにするための
!--- スタティック変換。

static (dmz,inside) 172.20.1.10 10.10.10.10 netmask 255.255.255.255

!--- inside のホストが outside アドレスを介して WWW サーバに
!--- アクセスできるようにするためのスタティック変換。

access-group OUTSIDE in interface outside

!--- WWW サーバへの HTTP アクセスを許可する ACL が
!--- outside インターフェイスに適用されます。

route outside 0.0.0.0 0.0.0.0 172.20.1.1 1
timeout xlate 3:00:00
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout uauth 0:05:00 absolute
username cisco password ffIRPGpDSOJh9YLq encrypted
http server enable
no snmp-server location
no snmp-server contact
snmp-server enable traps snmp authentication linkup linkdown coldstart
telnet timeout 5
ssh timeout 5
console timeout 0
!
class-map inspection_default
 match default-inspection-traffic
!
!
policy-map type inspect dns MY_DNS_INSPECT_MAP
 parameters
  message-length maximum 512
policy-map global_policy
 class inspection_default
  inspect ftp
  inspect h323 h225
  inspect h323 ras
  inspect rsh
  inspect rtsp
  inspect esmtp
  inspect sqlnet
  inspect skinny
  inspect sunrpc
  inspect xdmcp
  inspect sip
  inspect netbios
  inspect tftp
  inspect dns MY_DNS_INSPECT_MAP
  inspect icmp
policy-map type inspect dns migrated_dns_map_1
 parameters
  message-length maximum 512
!
service-policy global_policy global
prompt hostname context
Cryptochecksum:d6637819c6ea981daf20d8c7aa8ca256
: end

DNS インスペクションの設定

以前、DNS インスペクションをディセーブルにしている場合、DNS インスペクションをイネーブルにするには、次の手順を実行します。この例では、DNS インスペクションをデフォルトのグローバル インスペクション ポリシーに追加しています。このポリシーは、ASA のデフォルト設定から作業を開始した場合と同様に、service-policy コマンドによってグローバルに適用されます。サービス ポリシーおよびインスペクションについての詳細は、『モジュラ ポリシー フレームワークの使用』を参照してください。

  1. DNS 用のインスペクション ポリシー マップを作成します。

    ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP
    
  2. policy-map 設定モードから、インスペクション エンジンのパラメータを指定するためにパラメータ設定モードに入ります。

    ciscoasa(config-pmap)#parameters
    
  3. policy-map パラメータ設定モードで、DNS メッセージの最大長を 512 に設定します。

    ciscoasa(config-pmap-p)#message-length maximum 512
    
  4. policy-map パラメータ設定モードと policy-map 設定モードを終了します。

    ciscoasa(config-pmap-p)#exit
    ciscoasa(config-pmap)#exit
    
  5. インスペクション ポリシーマップが正しく作成されたことを確認します。

    ciscoasa(config)#show run policy-map type inspect dns
    !
    policy-map type inspect dns MY_DNS_INSPECT_MAP
     parameters
      message-length maximum 512
    !
    
  6. global_policy の policy-map 設定モードに入ります。

    ciscoasa(config)#policy-map global_policy
    ciscoasa(config-pmap)#
    
  7. policy-map 設定モードで、デフォルトのレイヤ 3/4 クラス マップ inspection_default を指定します。

    ciscoasa(config-pmap)#class inspection_default
    ciscoasa(config-pmap-c)#
    
  8. policy-map クラス設定モードで、手順 1 〜 3 で作成したインスペクション ポリシー マップを使用して DNS を検査するように指定します。

    ciscoasa(config-pmap-c)#inspect dns MY_DNS_INSPECT_MAP
    
  9. policy-map クラス設定モードと policy-map 設定モードを終了します。

    ciscoasa(config-pmap-c)#exit
    ciscoasa(config-pmap)#exit
    
  10. global_policy ポリシーマップが正しく設定されたことを確認します。

    ciscoasa(config)#show run policy-map
    !
    
    !--- 設定した DNS インスペクション ポリシー マップ。
    
    policy-map type inspect dns MY_DNS_INSPECT_MAP
     parameters
      message-length maximum 512
    policy-map global_policy
     class inspection_default
      inspect ftp
      inspect h323 h225
      inspect h323 ras
      inspect rsh
      inspect rtsp
      inspect esmtp
      inspect sqlnet
      inspect skinny
      inspect sunrpc
      inspect xdmcp
      inspect sip
      inspect netbios
      inspect tftp
      inspect dns MY_DNS_INSPECT_MAP
    
    !--- DNS アプリケーション インスペクションがイネーブルになります。
    
    !
    
  11. global_policy が service-policy によってグローバルに適用されることを確認します。

    ciscoasa(config)#show run service-policy
    service-policy global_policy global
    

確認

ここでは、設定が正常に動作していることを確認します。

特定の show コマンドは、アウトプットインタープリタ登録ユーザ専用)(OIT)でサポートされています。OIT を使用すると、show コマンドの出力を分析できます。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

DNS トラフィックのキャプチャ

セキュリティ アプライアンスが DNS レコードを正しく書き換えているかどうかを確認する方法の 1 つは、上の例で説明したように、該当するパケットをキャプチャすることです。ASA でトラフィックをキャプチャするには、次の手順を実行します。

  1. 作成するキャプチャ インスタンスごとにアクセス リストを作成します。

    キャプチャするトラフィックが ACL で指定されている必要があります。この例では、2 つ ACL を作成します。

    • outside インターフェイスのトラフィックに対する ACL:

      access-list DNSOUTCAP extended permit ip host 172.22.1.161 host 172.20.1.2
      
      !--- DNS サーバと ASA の間のすべてのトラフィック。
      
      access-list DNSOUTCAP extended permit ip host 172.20.1.2 host 172.22.1.161
      
      !--- ASA と DNS サーバの間のすべてのトラフィック。
      
      
    • inside インターフェイスのトラフィックに対する ACL:

      access-list DNSINCAP extended permit ip host 192.168.100.2 host 172.22.1.161
      
      !--- クライアントと DNS サーバの間のすべてのトラフィック。
      
      access-list DNSINCAP extended permit ip host 172.22.1.161 host 192.168.100.2
      
      !--- DNS サーバとクライアントの間のすべてのトラフィック。
      
      
  2. キャプチャ インスタンスを作成します。

    ciscoasa#capture DNSOUTSIDE access-list DNSOUTCAP interface outside
    
    !--- このキャプチャは、ACL DNSOUTCAP と一致する outside インターフェイスのトラフィックを
    !--- 収集します。
    
    ciscoasa# capture DNSINSIDE access-list DNSINCAP interface inside
    
    !--- このキャプチャは、ACL DNSINCAP と一致する inside インターフェイスのトラフィックを
    !--- 収集します。
    
    
  3. キャプチャを表示します。

    DNS トラフィックが通過した後、この例のキャプチャは次のようになります。

    ciscoasa#show capture DNSOUTSIDE
    2 packets captured
       1: 14:07:21.347195 172.20.1.2.1025 > 172.22.1.161.53:  udp 36
       2: 14:07:21.352093 172.22.1.161.53 > 172.20.1.2.1025:  udp 93
    2 packets shown
    ciscoasa#show capture DNSINSIDE
    2 packets captured
       1: 14:07:21.346951 192.168.100.2.57225 > 172.22.1.161.53:  udp 36
       2: 14:07:21.352124 172.22.1.161.53 > 192.168.100.2.57225:  udp 93
    2 packets shown
    
  4. (オプション)他のアプリケーションで分析できるように pcap 形式でキャプチャを TFTP サーバにコピーします。

    pcap 形式を解析できるアプリケーションでは、DNS A レコードに含まれる名前や IP アドレスなどの詳細情報も表示できます。

    ciscoasa#copy /pcap capture:DNSINSIDE tftp
    ...
    ciscoasa#copy /pcap capture:DNSOUTSIDE tftp
    

トラブルシューティング

このセクションでは、設定のトラブルシューティングに役立つ情報を提供しています。

DNS 書き換えが実行されない

セキュリティ アプライアンスで DNS インスペクションが設定されていることを確認してください。「DNS インスペクションの設定」セクションを参照してください。

変換の作成に失敗する

クライアントと WWW サーバの間で接続を確立できない場合は、NAT の設定ミスが原因である可能性があります。セキュリティ アプライアンスのログを開いて、プロトコルがセキュリティ アプライアンスを介して変換を作成することに失敗したことを示すメッセージがないかどうかを確認してください。そのようなメッセージがある場合は、適切なトラフィックに対して NAT が設定されていて、アドレスに誤りがないことを確認してください。

%ASA-3-305006: portmap translation creation failed for tcp src 
inside:192.168.100.2/11000 dst inside:192.168.100.10/80

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

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


関連情報


Document ID: 72273