シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

暗号マップベース IPsec VPN の基礎 - ネゴシエーションと設定

 

このドキュメントは基本的な暗号マップベース IPsec VPN のネゴシエーションと設定を説明しています。

 

このドキュメントは、IKE と IPsec のいくつかの側面を紹介することを意図しています。

 

IPsec とは

 

IPsec は IP のための、セキュリティアーキテクチャに基づいた標準的なプロトコルです。そのため IP-sec と呼ばれます。

IKE (Internet Key Exchange) は IPsec Security Associations を確立する方法の一つであり、特定のケースでは Cisco は ISAKMP (IKE の実装) を使用します。

現在、IKE には2つのバージョンが存在しています:

  1. IKE version 1 (IKEv1) - より一般的で古く、広く使用されています。 IKEv1 は世界中で IPsec を実装する際に使用されています。
  2. IKE version 2 (IKEv2) - 名前から推測される通り、新しく、より強固なプロトコルです。 IKEv2 は広く使用はされていませんが、急速に使用され始めています。

 

このドキュメントは IKEv1 と暗号マップの設定に大きく焦点を当てています。しかしながら、説明の大部分は他のタイプのフレームワークにも当てはまります。

 

IKE ネゴシエーションの簡単な説明

 

ピア同士で安全に IKE Security Association (IKE SA または フェーズ 1 ) を確立するためには、以下に示すいくつかの情報を交換する必要があります:

  • ネゴシエーションを保護する方法 - 使用するハッシュアルゴリズム、暗号化アルゴリズム、 Diffie-Hellman グループ (キーの長さ) 、IKE SA のライフタイム。
  • Diffie-Hellman 鍵共有が動作していること - 安全ではない通信路を使って共有鍵を共有します。
  • 認証 - ピア同士で、ピアを特定する物と認証する物(一般的な環境では、事前共有キーまたは証明書)を交換します。

 

事前共有キーは、ピアを特定されるために使用され、実際には事前共有キーが交換されていないことに注意してください。このように片方のピアが正しい事前共有キーを持っていない場合、認証そしてフェーズ 1 を終了することが出来ません。

 

IKE SA はアグレッシブモードとメインモードのどちらかを使用してネゴシエーションを確立することが出来ます。このドキュメントでは、一般的に使用されているメインモードを説明します。

アグレッシブモードは安全性が低いため、一般的に事前共有キーとユーザ認証を行うセキュリティレイヤーとともに EZVPN で使用されます。

 

一度 IKE SA が確立されると、ピア同士は保護するトラフィックや保護する方法に関する情報を交換する準備をします。これは IPsec SA またはフェーズ2を形成します。そして、この情報の交換はクイックモードと呼ばれます。

 

一度クイックモードが動作し、IPsec SA が形成されると、トラフィックは安全な通信路を通ることが可能になります。

 

図で表すと以下のようになります:

 

Screen Shot 2013-11-12 at 10.52.38 AM.png

 

この段階では、通常時、ピア間に 1 つの IKE SA が存在していることを覚えておくことが重要です。

rekey や 再ネゴシエーション時には複数の IKE SA が存在することが出来ます。

そして、ピア間では複数の IPsec SA が存在することが出来ます。

図で説明すると以下のようになります。

 

Screen Shot 2013-11-12 at 10.55.28 AM.png

 

上の図のように、それぞれの方向ごとに、外向きトラフィック用と内向きトラフィック用の Security Parameter Index (SPI) によって特定される 2 つの IPsec SAがあります。右側に外向き IPsec SA が存在する場合、左側に内向き IPsec SA が存在し、逆の場合も同じであることを覚えておくことが重要です。

 

この段階では、"ローカル"と"リモート"のネットワークはそれぞれのデバイスで逆になることが重要です。この概念は、"インタレスティングトラフィック"の設定を行う際に登場します。

 

トンネルモードとトランスポートモード

 

IPsec でトラフィックを保護する時、以下の2つのサービスとモードを選択します。

 

  • 認証サービス - データの保護と完全性を確認 - IP のプロトコル番号 50 である、AH(Authentication Header) を使用し、転送中のデータの改ざんを防ぎます。
  • 暗号化サービス - データの暗号化 - IP のプロトコル番号 51 である、ESP(Encapsulating Security Payload) を使用し、転送中のデータの盗聴を防ぎます。

 

暗号化サービスは広く利用されています。

この 2 つのサービスを混在させることは可能ですが、それはサポートが制限されている、あるいは無い環境でのとても特殊なケースです。

 

このほかに IPsec とともによく登場する 2 つのモードがあります。

 

  • トランスポートモード - 元の IP ヘッダーを保ちます。通常、GREまたは他のカプセル化プロトコルと組み合わせて使用されます。
  • トンネルモード - IP データグラム全体を新しい IP ヘッダでカプセル化し、パケットをトンネリングします。

 

もっとも広く使用され、一般的なモードは、暗号化サービスとトンネルモードです。

これらのサービスがどのように働くか概要を説明します。

 

最初に、AH と ESP 、そしてこれらがどのように元の IP データグラムをカプセル化しているかを示します。このケースでは、TCP データを送信しています。

 

Screen Shot 2013-11-12 at 11.52.30 AM.png

 

次に、IP プロトコルがどのように2つのモードに対応するか見てみましょう。

 

Screen Shot 2013-11-12 at 11.52.17 AM.png

上で指摘したように、図の最後のモードは、一般的に、暗号マップベースの IPsec VPNで使用されています。

このモードでは、RFC1918 で規定されたプライベートアドレス(または任意の IP アドレス)をインターネット上でルーティング可能な新しい IP ヘッダでカプセル化して、インターネット上での通信を可能にします。

 

設定

 

基本的な概念を説明したところで、実際にどのように暗号マップベースの設定を行うのか説明します。

 

IKE

  • IKE ネゴシエーションの保護

 

crypto isakmp policy 10

encr aes 256

authentication pre-share

group 2

lifetime 28800

ISAKMP ポリシーは、認証方法やネゴシエーションを保護する方法そして、IKE SA の生存時間(デフォルトでは一日)を定義します。

上記のパラメータはトンネルの両端で一致している必要があります。

 

  • IKE の認証

前の設定で、認証方法を指定しましたが、この設定では実際に認証に使用する事前共有キーを作成します。以下の場合、事前共有キーは "test" となります。

crypto keyring MY_KEYRING

  local-address Loopback2

  pre-shared-key address 0.0.0.0 0.0.0.0 key test

  • ISAKMP プロファイル

このプロファイルは IKE と IPSec を使用した2つの機能を結び付けています。このプロファイルは後程、 IPsec のセクション内の、 暗号マップの設定のところで参照されます。

crypto isakmp profile MY_PROFILE

   [vrf MY_IVRF]

   keyring MY_KEYRING

   match identity address 0.0.0.0

   self-identity address

   local-address Loopback2

上の例では、任意のアドレス (ワイルドカード 0.0.0.0) がこのプロファイルに適用されます。

ここではピアの ID について説明していることが重要であり、この場合、任意のアドレスを持つピアと一致します。

Self-identity の欄は認証を行うときに、 ID としてアドレスを使用することを示しています。

VRF-Aware IPsec の場合、IVRF (この場合 MY_IVRF) が参照されます。

 

自分のIDが、リモートピアの ISAKMP のプロファイルの中の ID と一致している必要があることに注意してください。

典型的な例では、ID としてアドレスを送り、リモートピアでは ISAKMP プロファイルの中で指定した ID と送られてきた ID が一致している必要があります。

 

説明した点:

  1. IKE ネゴシエーションを保護する方法
  2. ピア同士を認証する方法

 

Diffie-Hellman 鍵 (及びその他のパラメータ、または VID ) は自動的に交換されていて、多くの設定は必要ありません。

 

IPsec

 

IKE の場合、 IPsec SA を確立するためにいくつかのパラメータを交換する必要があります。そして、 ISAKMP の設定時に見られた、暗号マップのいくつかの要素を紹介します。

 

  • IPsec トランスフォームセット

前述のように、デバイスはトラフィックを保護する方法を知る必要があり、そのためにトランスフォームセットが必要になります。トランスフォームセットはトラフィックを保護するために使われるハッシュ、暗号化アルゴリズムを定義します。

 

crypto ipsec transform-set MY_SET esp-3des esp-sha-hmac

 

上の例では、 3DES と SHA が選択されています。

現時点で最適なアルゴリズムを選択するためのガイダンスと推奨事項については、以下を参照してください。

http://www.cisco.com/web/about/security/intelligence/nextgen_crypto.html

 

  • トラフィックの選択

暗号マップはアクセスリストを使用して、トラフィックを選択します。

アクセスリストは常にローカルの視点から定義されます。言い換えれば、シスコのデバイスは X から Y へのトラフィックを( permit を指定して)選択します。そして対向のピアでは、アクセスリストは逆に、 Y から X へのトラフィックを選択します。

これはネゴシエーション中にチェック/適用されることの 1 つであることに注意してください。

access-list 100 permit ip 172.16.1.0 0.0.0.255 any

上の例では、ルータは 172.116.1.0/24 サブネットからの全てのトラフィックを暗号化します。リモート側では逆に"任意のアドレスから 172.16.1.0/24 サブネットへ"を指定したアクセスリスト(または動的暗号マップ)を使用します。

 

  • 暗号マップ

暗号マップはこのドキュメントが、この章そして以前の章で説明してきた全ての情報を結びつける働きをします。

以下は暗号マップの要点です。

  1. 1 つの暗号マップは 1 つのインターフェースに適用されます。
  2. 同一の暗号マップは複数のインターフェースに適用することが可能です。
  3. 複数のトンネルを収容するために暗号マップは使用されます。 1 つの暗号マップは番号によって特定される複数のエントリーを持つことが可能です。
  4. 静的暗号マップは動的暗号マップを参照することが可能です。

 

2種類の暗号マップの説明と使い方:

  • 静的暗号マップ - ピアと暗号化されたトラフィックを識別します。通常、異なるプロファイルと特性をもつ、いくつかのトンネル(異なる相手、サイト、場所)を収容するために使用されます。
  • 動的暗号マップ - 同一の特性(例えば、同じ設定を共有する複数の拠点)をもつピアや動的 IP アドレスを持つピアを収容するための1つの方法です。

crypto map MY_CRYPTO_MAP 100 ipsec-isakmp

set peer 10.0.0.1

set transform-set MY_SET

set isakmp-profile MY_PROFILE

match address 100

上の例では、エントリー番号 100 の IPsec をネゴシエートするために ISAKMP を使用する MY_CRYPTO_MAP という暗号マップが定義されています。

この暗号マップのエントリーはアクセスリスト 100 で選択されたトラフィックに適用され、 MY_PROFILE という ISAKAMP プロファイルで定義付けられたパラメータを元に動作します。

トラフィックを保護する方法は、 MY_SET というトランスフォームセットで定義付けられています。

IKE ネゴシエーションが動作するとき、パケットは 10.0.0.1 のピアに送出されます。

 

暗号マップはその後、インターフェースに(定義した名前を使用して)適用されます。

r2#sh run int e1/0

Building configuration...

 

 

Current configuration : 80 bytes

!

interface Ethernet1/0

ip address 10.0.0.1 255.255.255.0

crypto map MY_CRYPTO_MAP

end

トラブルシューティング

 

トラブルシューティングを行うときには、 show コマンドと debug コマンドを使用します。

 

Show コマンド

  • show crypto isakmp sa - デバイス上の IKE セッションの状態を表示します。

 

r2#sh crypto isa sa

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id status

172.16.1.1      10.0.0.1        QM_IDLE           1004 ACTIVE

上の例では、 "ACTIVE" 状態の1つのセッションしか存在していません。

 

  • show crypto ipsec sa - IPsec SA の状態を表示します。保護されているトラフィックや IVRF (保護された VRF) そして IPsec SA (または SPI ) のアクティブ状態などの重要な情報を確認します。

 

 

r2#sh crypto ipsec sa

 

 

interface: Ethernet1/0

    Crypto map tag: MAP, local addr 10.0.0.1

 

 

   protected vrf: (none)

   local  ident (addr/mask/prot/port): (192.168.0.0/255.255.255.0/256/0)

   remote ident (addr/mask/prot/port): (192.168.1.0/255.255.255.0/256/0)

   current_peer 172.16.1.1 port 500

     PERMIT, flags={origin_is_acl,}

    #pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5

    #pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5

    #pkts compressed: 0, #pkts decompressed: 0

    #pkts not compressed: 0, #pkts compr. failed: 0

    #pkts not decompressed: 0, #pkts decompress failed: 0

    #send errors 0, #recv errors 0

 

 

     local crypto endpt.: 10.0.0.2, remote crypto endpt.: 172.16.1.1

     path mtu 1500, ip mtu 1500, ip mtu idb Ethernet1/0

     current outbound spi: 0xDFDE17CA(3755874250)

     PFS (Y/N): N, DH group: none

 

 

     inbound esp sas:

      spi: 0x205F6BE9(543124457)

        transform: esp-aes esp-sha-hmac ,

        in use settings ={Tunnel, }

        conn id: 13, flow_id: SW:13, sibling_flags 80000040, crypto map: MY_CRYPTO_MAP

        sa timing: remaining key lifetime (k/sec): (4335214/3551)

        IV size: 16 bytes

        replay detection support: Y

        Status: ACTIVE(ACTIVE)

 

 

     inbound ah sas:

 

 

     inbound pcp sas:

 

 

     outbound esp sas:

      spi: 0xDFDE17CA(3755874250)

        transform: esp-aes esp-sha-hmac ,

        in use settings ={Tunnel, }

        conn id: 14, flow_id: SW:14, sibling_flags 80000040, crypto map: MY_CRYPTO_MAP

        sa timing: remaining key lifetime (k/sec): (4335214/3551)

        IV size: 16 bytes

        replay detection support: Y

        Status: ACTIVE(ACTIVE)

 

 

     outbound ah sas:

 

 

     outbound pcp sas:

上の例では、ローカル側 192.168.0.0/24(グローバル VRF ) と リモート側  192.168.1.0/24 の間のトラフィックが保護されています。

そして、リモートのピアは 172.16.1.1 です。

2 つの IPsec SA (方向ごとに 1 つ) がアクティブであり、方向ごとに合計 5 つのパケットが処理されています。

 

  • show crypto session - デバイス上の異なるトンネルの情報をわかりやすく表示します。

r2#sh crypto session

Crypto session current status

 

 

Interface: Ethernet1/0

Session status: UP-ACTIVE

Peer: 172.16.1.1 port 500

  IKEv1 SA: local 10.0.0.1/500 remote 172.16.1.1/500 Active

  IPSEC FLOW: permit ip 192.168.0.0/255.255.255.0 192.168.1.0/255.255.255.0

        Active SAs: 2, origin: crypto map

 

Show crypto session コマンドは上で紹介した show コマンドで収集出来る情報をわかりやすく表示します。

ピアの IP アドレス、保護されているトラフィックそして存在するアクティブ SA の数を表示します。

上の例から、トンネルが動作中であることがわかります。

 

デバッグ

 

1 つのピアにデバッグの範囲を絞るため、条件付きデバッグを使用します。

IOS 上では以下の様に実行します。

debug crypto condition peer ipv4 ....

2 つの一般的な debug コマンド

  • debug crypto isakmp - ISAKMP の交換を表示します。これには、メインモードとクイックモードのネゴシエーションの情報が含まれます。
  • debug crypto ipsec - フェーズ 2 の情報を表示します。

 

参照ページ

 

  • VRF-aware ipsec cheat sheet:

https://supportforums.cisco.com/docs/DOC-13524

  • Understanding main mode debugs:

http://www.cisco.com/en/US/products/ps6120/products_tech_note09186a0080bce100.shtml

https://supportforums.cisco.com/docs/DOC-18522

 

英語版:https://supportforums.cisco.com/docs/DOC-37824

8269
閲覧回数
0
いいね!
0
コメント