2013-12-09 06:28 PM 2017-08-30 05:01 AM 更新
このドキュメントは基本的な暗号マップベース IPsec VPN のネゴシエーションと設定を説明しています。
このドキュメントは、IKE と IPsec のいくつかの側面を紹介することを意図しています。
IPsec は IP のための、セキュリティアーキテクチャに基づいた標準的なプロトコルです。そのため IP-sec と呼ばれます。
IKE (Internet Key Exchange) は IPsec Security Associations を確立する方法の一つであり、特定のケースでは Cisco は ISAKMP (IKE の実装) を使用します。
現在、IKE には2つのバージョンが存在しています:
このドキュメントは IKEv1 と暗号マップの設定に大きく焦点を当てています。しかしながら、説明の大部分は他のタイプのフレームワークにも当てはまります。
ピア同士で安全に IKE Security Association (IKE SA または フェーズ 1 ) を確立するためには、以下に示すいくつかの情報を交換する必要があります:
事前共有キーは、ピアを特定されるために使用され、実際には事前共有キーが交換されていないことに注意してください。このように片方のピアが正しい事前共有キーを持っていない場合、認証そしてフェーズ 1 を終了することが出来ません。
IKE SA はアグレッシブモードとメインモードのどちらかを使用してネゴシエーションを確立することが出来ます。このドキュメントでは、一般的に使用されているメインモードを説明します。
アグレッシブモードは安全性が低いため、一般的に事前共有キーとユーザ認証を行うセキュリティレイヤーとともに EZVPN で使用されます。
一度 IKE SA が確立されると、ピア同士は保護するトラフィックや保護する方法に関する情報を交換する準備をします。これは IPsec SA またはフェーズ2を形成します。そして、この情報の交換はクイックモードと呼ばれます。
一度クイックモードが動作し、IPsec SA が形成されると、トラフィックは安全な通信路を通ることが可能になります。
図で表すと以下のようになります:
この段階では、通常時、ピア間に 1 つの IKE SA が存在していることを覚えておくことが重要です。
rekey や 再ネゴシエーション時には複数の IKE SA が存在することが出来ます。
そして、ピア間では複数の IPsec SA が存在することが出来ます。
図で説明すると以下のようになります。
上の図のように、それぞれの方向ごとに、外向きトラフィック用と内向きトラフィック用の Security Parameter Index (SPI) によって特定される 2 つの IPsec SAがあります。右側に外向き IPsec SA が存在する場合、左側に内向き IPsec SA が存在し、逆の場合も同じであることを覚えておくことが重要です。
この段階では、"ローカル"と"リモート"のネットワークはそれぞれのデバイスで逆になることが重要です。この概念は、"インタレスティングトラフィック"の設定を行う際に登場します。
IPsec でトラフィックを保護する時、以下の2つのサービスとモードを選択します。
暗号化サービスは広く利用されています。
この 2 つのサービスを混在させることは可能ですが、それはサポートが制限されている、あるいは無い環境でのとても特殊なケースです。
このほかに IPsec とともによく登場する 2 つのモードがあります。
もっとも広く使用され、一般的なモードは、暗号化サービスとトンネルモードです。
これらのサービスがどのように働くか概要を説明します。
最初に、AH と ESP 、そしてこれらがどのように元の IP データグラムをカプセル化しているかを示します。このケースでは、TCP データを送信しています。
次に、IP プロトコルがどのように2つのモードに対応するか見てみましょう。
上で指摘したように、図の最後のモードは、一般的に、暗号マップベースの IPsec VPNで使用されています。
このモードでは、RFC1918 で規定されたプライベートアドレス(または任意の IP アドレス)をインターネット上でルーティング可能な新しい IP ヘッダでカプセル化して、インターネット上での通信を可能にします。
基本的な概念を説明したところで、実際にどのように暗号マップベースの設定を行うのか説明します。
crypto isakmp policy 10
encr aes 256
authentication pre-share
group 2
lifetime 28800
ISAKMP ポリシーは、認証方法やネゴシエーションを保護する方法そして、IKE SA の生存時間(デフォルトでは一日)を定義します。
上記のパラメータはトンネルの両端で一致している必要があります。
前の設定で、認証方法を指定しましたが、この設定では実際に認証に使用する事前共有キーを作成します。以下の場合、事前共有キーは "test" となります。
crypto keyring MY_KEYRING
local-address Loopback2
pre-shared-key address 0.0.0.0 0.0.0.0 key test
このプロファイルは 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 が一致している必要があります。
説明した点:
Diffie-Hellman 鍵 (及びその他のパラメータ、または VID ) は自動的に交換されていて、多くの設定は必要ありません。
IKE の場合、 IPsec SA を確立するためにいくつかのパラメータを交換する必要があります。そして、 ISAKMP の設定時に見られた、暗号マップのいくつかの要素を紹介します。
前述のように、デバイスはトラフィックを保護する方法を知る必要があり、そのためにトランスフォームセットが必要になります。トランスフォームセットはトラフィックを保護するために使われるハッシュ、暗号化アルゴリズムを定義します。
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 サブネットへ"を指定したアクセスリスト(または動的暗号マップ)を使用します。
暗号マップはこのドキュメントが、この章そして以前の章で説明してきた全ての情報を結びつける働きをします。
以下は暗号マップの要点です。
2種類の暗号マップの説明と使い方:
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 コマンドを使用します。
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つのセッションしか存在していません。
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 つのパケットが処理されています。
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 コマンド
https://supportforums.cisco.com/docs/DOC-13524
http://www.cisco.com/en/US/products/ps6120/products_tech_note09186a0080bce100.shtml
https://supportforums.cisco.com/docs/DOC-18522
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます