セキュリティ : Cisco AnyConnect セキュア モビリティ クライアント

VPN、DNS クエリ、およびオペレーティング システム/プラットフォーム バリアントの FAQ

2014 年 2 月 6 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2013 年 6 月 28 日) | 英語版 (2014 年 1 月 28 日) | フィードバック

概要

この資料にどのように AnyConnect のドメイン名解決の異なる Operations Support Systems (OSS)ハンドル ドメイン ネーム システム(DNS)クエリおよび影響記述されています。

Cisco TAC エンジニアによって貢献される。

異なる OSS プラットフォームが DNS クエリを処理する方法はどのように違いますか。AnyConnect とフル トンネリングまたはスプリット トンネリングによるドメイン名の解決にどのように影響しますか。

分割 vs 標準 DNS

split-include トンネリングを使用するとき、DNS について次の 3 つのオプションがあります。

  1. 分割DNS - Cisco 適応性があるセキュリティ アプライアンス モデル(ASA)で設定されたドメイン名を一致する ASA で定義される DNS クエリはトンネル、たとえば、DNSサーバにをおよび他通過します。

  2. トンネルすべて DNS - ASA で定義される DNSサーバへの DNS トラフィックだけ許可されます。 この設定は、グループ ポリシーで設定されます。

  3. 標準 DNS - ASA によって通過し、否定応答の場合には定義されるすべての DNS クエリは DNSサーバをまた物理的 な アダプタで設定される DNSサーバに行くかもしれません。

分割トンネルすべて dns コマンドは ASA バージョン 8.2(5)で最初に実行されました。 このバージョンの前に、分割DNS か標準 dns しかしない可能性があります。

すべてのケースで、トンネルを通過するように定義された DNS クエリは、ASA 上で定義されたすべての DNS サーバに到達します。 特に、ASA 上で DNS サーバが定義されない場合、トンネルについての DNS 設定はブランクです。 つまり理論的に言えば、スプリット DNS を定義しない場合、すべての DNS クエリは ASA によって定義された DNS サーバに送信されることも意味します。 ただし実際には、このドキュメントに記載する動作は、オペレーティング システムによって異なる可能性があります。

クライアントの名前解決をテストする場合は、NSLookup の使用を避けてください。 代わりにブラウザを利用するか、ping を使用してください。 この理由は、NSLookup がオペレーティング システム(OS)DNS リゾルバに依存しないことによって、AnyConnect が特定のインターフェイス経由で DNS 要求を強制しないためです。 それはそれだけを可能にするか、または分割DNS 設定に従って、拒否します。 その要求について受け入れ可能な DNS サーバを試すよう DNS リゾルバに強制するためには、ドメイン名解決についてネイティブ DNS リゾルバに依存するアプリケーションを使用したスプリット DNS テストのみが実行されることが重要です。 たとえば、DNS 解決を自分自身で処理する、NSLookup、Dig、または同様のアプリケーションを除くすべてのアプリケーションです。

最もよい努力 分割DNS vs 本当

AnyConnect リリース 2.4 はレガシー IPSecクライアントで見つけられる本当分割DNS ではない分割DNS フォールバック(最もよい努力 分割DNS)をサポートします。 要求が分割DNS ドメインと一致する場合、AnyConnect は要求が ASA にトンネル伝送されるようにします。 サーバがホスト名を解決できない場合、DNS リゾルバは処理を続行し、物理インターフェイスにマッピングされた DNS サーバに同じクエリを送信します。 一方では、要求が分割DNS ドメインのうちのどれも一致する、AnyConnect は ASA にそれをトンネル伝送しません。 その代わりに、AnyConnect は DNS 応答を作成することで、DNS リゾルバがフォールバックして、物理インターフェイスにマッピングされた DNS サーバにクエリを送信します。 そういうわけでこの機能はスプリット トンネリングのための分割DNS、DNS フォールバック呼ばれません。 すなわち、だけでなく、AnyConnect はどのターゲット 分割DNS ドメインがトンネル伝送されるか要求だけまたホスト 名前解決のためのクライアント OS DNS リゾルバの動作に、それ頼ること保証します。

このことは、非公開ドメイン名の漏えいの可能性があるため、セキュリティ上の問題となります。 たとえば、ネイティブ DNS クライアントが公開 DNS サーバに対して非公開ドメイン名を求めるクエリを送信する可能性があります(特に、VPN DNS 名前サーバが DNS クエリを解決できなかった場合)。

現在 バージョン 3.0.4235 現在で Microsoft (MS) Windows だけで、解決される不具合 CSCtn14578 を、参照して下さい。 ソリューション実装本当分割DNS; これは、VPN DNS サーバに一致して、許可された設定済みドメイン名に限りクエリを出します。 その他のすべてのクエリは、物理アダプタ上で構成されたものなど、他の DNS サーバでのみ許可されます。

「tunnel all」と「tunnel all DNS」

スプリット トンネリングが無効にされた場合(tunnel-all 設定)DNS トラフィックはトンネルでのみ許可されます。 トンネルが、ある種のスプリット トンネリングと共に、グループ ポリシーですべての DNS 設定、トンネルによってすべての DNS ルックアップを送信 する、DNS トラフィック設定されるとき同様に、トンネルによって厳しく許されます。

これは MS Windows のこれらの警告にプラットフォームを渡って一貫しています、:

tunnel-all または tunnel all DNS が設定された場合、AnyConnect は、セキュア ゲートウェイ上で設定された DNS サーバへの DNS トラフィックのみ許可します(VPN アダプタに適用)。 これは以前に述べられた本当分割DNS ソリューションと共に実装されるセキュリティ拡張です。

これが問題となる(たとえば、DNS アップデート/登録要求は非 VPN DNSサーバに送信 される必要があります)ある特定の場合証明すれば、ツー ステップ回避策は次のとおりです:

  1. 現在の設定が、tunnel-all: enable split-exclude tunneling の場合、1 つの偽のホストのスプリット除外ネットワークは機能します(リンクローカル アドレスなど)。
  2. 確認して下さいグループ ポリシーですべての DNS を設定されないトンネル伝送する

AnyConnect バージョン 3.0.4325 で解決される DNS パフォーマンス上の問題

この MS Windows 仕様問題はこのような状況の下で大抵流行します:

  • ホーム ルータ設定: DNS サーバと DHCP サーバに同じ IP アドレスを割り当てた場合(AnyConnect は DHCP サーバへの必要なルートを作成します)。
  • 大量の DNS ドメインがグループ ポリシーにある。
  • Tunnel-all 設定。
  • 修飾されていないホスト名によって実行される名前解決。つまり、問い合わせされたホスト名に関係するものが試行されるまで、リゾルバは選択可能なすべての DNS サーバについて大量の DNS サフィクスを試す必要があることを暗示します。

この問題は、AnyConnect がブロックする物理アダプタ経由で DNS クエリを送信しようとするネイティブ DNS クライアントが原因です(tunnel-all 設定を指定した場合)。 これは名前解決の遅延につながります。 カスタマー エクスペリエンス向上から、この遅延は肯定応答を受け取るまで DNS クライアントがすべて必要があるのでヘッドエンドによって押される多数の DNS サフィックスのために時々重要、特にです(およびすべての利用可能 な DNSサーバを通って)歩く。

この問題はバージョン 3.0.4325 で解決されます(以前に述べられた本当分割DNS ソリューションの概要と共に Cisco バグ ID CSCtq02141 および CSCtn14578 の組み合せ、)。

ただし、アップグレードを実行できない場合は、次の回避策を実行できます。

  • 1 つの偽の IP アドレスに対して split-exclude トンネリングを有効にすることで、ローカル DNS 要求が物理アダプタを通過します。 任意のデバイスがリンクローカル サブネット 169.254.0.0/16 のいずれか 1 つに対して VPN 経由でトラフィックを送信することはほとんどないため、これらの IP アドレスからのアドレスを使用できます。 スプリット除外を可能にした後、クライアント プロファイルまたはクライアント自身のローカル LAN アドレスを有効にし、tunnel all DNS を無効にするようにしてください。 ASA での構成変更を次に示します。

    access-list acl_linklocal_169.254.1.1 standard permit host 169.254.1.1
    group-policy gp_access-14 attributes
    split-tunnel-policy excludespecified
    split-tunnel-network-list value acl_linklocal_169.254.1.1
    split-tunnel-all-dns disable
    exit


    クライアント プロファイルには、次の行のみを追加します。

    <LocalLanAccess UserControllable="true">true</LocalLanAccess>


    また、AnyConnect クライアント GUI でこれをクライアントごとに有効にすることもできます。 [AnyConnect Preference] メニューにナビゲートし、[Enable local LAN access] オプションにチェックマークを入れます。

  • 名前解決のために不適当なホスト名の代りに完全修飾ドメイン名(FQDN)を使用して下さい。

  • 物理インターフェイスの DNS サーバに別の IP アドレスを使用します。

それぞれのオペレーティング システムは DNS をどのように処理しますか。

ハンドル DNS が AnyConnect を捜す方法異なる OS で違いがありますスプリット トンネリングと使用されたとき(分割DNS なしで)。

MS Windows

MS Windows で、DNS 設定はインターフェースごとです。 つまり、スプリット トンネリングが使用された場合、VPN トンネル アダプタで DNS クエリが失敗すると、クエリは物理アダプタの DNS サーバにフォールバックできるということを意味します。 分割DNS のないスプリット トンネリングが定義される場合、内部および外部 DNS 解決は外部 DNSサーバに戻って下るのではたらきます。

マッキントッシュ

マッキントッシュ(MAC)によって、DNS 設定はグローバルです。 従ってスプリット トンネリングが使用されればが、分割DNS、それではないです可能性のある使用されません DNS クエリがトンネルの外の DNSサーバに行くことができるように。 外部ではなく、内部でのみ解決できます。 これは Cisco バグ ID CSCtf20226 および CSCtz86314 で文書化されています。 いずれの場合も、この回避策は問題を解決する必要があります:

  • 外部 DNSサーバ IP アドレスをグループ ポリシーの下で規定 し、内部 DNS クエリのために FQDN を使用して下さい。
  • 外部名がトンネルによって解決可能である場合、高度の下でグループ ポリシーで、設定される DNS名を取除くことによって分割DNS を > スプリット トンネリング ディセーブルにして下さい。 これは内部 DNS クエリのために FQDN を使用して必要となります。

分割DNS ケースはこれらの警告の AnyConnect 3.1 で、解決されました:

  • 分割DNS は両方の IP プロトコルのために有効に する必要があります(ASA v9.0 またはそれ以降を必要とします)。


  • または

  • 分割DNS は 1 IP プロトコルのために有効に する必要があります。

       および
      
    • (ASA にバージョン 9.0 または それ 以降があれば: 他の IP プロトコルのためのクライアント バイパス プロトコル、すなわち、アドレス・ プール無しおよびグループ ポリシーで有効に なる ClientBypass プロトコル

    •    または

    • ASA がバージョン 9.0 より早ければ: 他の IP プロトコルのために設定されるアドレス・ プール無し; これはこの他の IP プロトコルが IPv6 であることを意味します。)

: AnyConnect は MAC OS X で直接 resolv.conf ファイルを変更しませんがむしろ OS X 仕様 DNS 設定を変更します。 OS X は互換性の理由で resolv.confup に日付を保存します。 scutil を使用して下さい--OS X.の DNS 設定を検知 する dns コマンド

iPhone

iPhone は MAC の完全な反対であり、MS Windows と同じではないです。 スプリット トンネリングが定義されればが、分割DNS が定義されなければ、定義される DNS クエリはグローバル な DNSサーバを通って出かけます。 たとえば、分割DNS Domain エントリは内部解像度のために必須です。 この動作は Cisco バグ ID CSCtq09624 で文書化されています、iOS AnyConnect クライアントのための最新の 2.5.4038 バージョンで固定されます。

: Cisco バグ ID CSCts89292 で文書化されていますわかっている iPhone DNS クエリ無視 .local ドメインでであって下さい。 Apple エンジニアは問題が OS の機能性によって引き起こされていることを確認します。 これは設計による動作であり、変更されることがないことが Apple により確認されています。

関連情報


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

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


Document ID: 116016