VPNとIPsec

VPN(Virtual Private Network)は、インターネットのような公衆ネットワークなどを介して、仮想的な専用ネットワーク接続を実現する技術です。IPsec(IP Security)は、そのVPNを実現するために広く使われる、業界標準のプロトコル群です。ESPを用いるIPsec VPNでは、通信を暗号化して保護します。

IPsecを構成する要素

AHとESP

IPsecには、実際にパケットを保護する方式として、2種類のプロトコルがあります。

  • AH(Authentication Header):パケットの完全性(改ざんされていないこと)と送信元の認証を提供しますが、暗号化は行いません。また、AHはIPヘッダーのうち途中経路で変更されないフィールドを含めて完全性を検証するため、途中経路でNATによってIPアドレスが書き換えられると、検証に失敗してしまうという実務上の大きな制約があります。TTLなどの途中経路で変更されうるフィールドは、認証計算時に除外または正規化されます。
  • ESP(Encapsulating Security Payload):暗号化(機密性)を提供します。完全性・送信元認証・再生攻撃への対策も、認証方式またはAEAD方式を使用する構成で提供できます。ESPはIPプロトコル番号50を使用してポート番号を持たないため、NAT/NAPT環境ではそのまま通過できない場合があり、一般にNAT Traversal(NAT-T)を使用してUDPでカプセル化することでNAT越えを可能にします。現在のIPsec VPNではESPが標準的に使われます。

IKE(Internet Key Exchange)

IPsecで実際に暗号化通信を始める前に、VPNの両端の機器は、暗号化アルゴリズムや鍵情報について合意する必要があります。この合意形成を行うプロトコルがIKEです。以下のフェーズ1・フェーズ2は、IKEv1における段階を示します。IKEv2では、IKE SAとCHILD SAを確立します。

  • フェーズ1:IKE自体の通信を保護するための、安全な管理用チャネルを確立する段階です。ここで、両端の機器がお互いを認証し、共通の鍵を安全に導出します。
  • フェーズ2:フェーズ1で確立された安全なチャネルを使って、実際にユーザーデータを保護するためのIPsecの設定(暗号化アルゴリズム、保護対象のトラフィック範囲等)を合意する段階です。

フェーズ1は比較的長い時間(例:24時間)維持され、その間に複数のフェーズ2の合意を、認証をやり直すことなく効率的に行えるようになっています。

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

  • トンネルモード:ESPをトンネルモードで使用する場合、元のIPパケット全体(ヘッダーとペイロードの両方)を暗号化し、新しい外側のIPヘッダーを付加します。元の送信元・宛先アドレスが外部から見えなくなるため、サイト間VPN(後述)で標準的に使われます。
  • トランスポートモード:ESPをトランスポートモードで使用する場合、元のIPヘッダーはそのままに、上位層のペイロード(TCP/UDPヘッダーとデータ)部分だけを暗号化します。IPsecに対応した機器どうしが直接通信する場合(ホスト間通信等)に使われます。

サイト間VPNとリモートアクセスVPN

IPsecを使ったVPNの構成には、大きく分けて2つのパターンがあります。

サイト間VPN(Site-to-Site VPN)

拠点と拠点を結ぶ、ネットワークどうしを接続するVPNです。両拠点の境界に置かれたルータ・ファイアウォールどうしにVPNの設定を行い、保護対象として設定された拠点間通信を暗号化します。従来型のcrypto map方式では、通常、対象となる通信を契機にIPsec SAが確立されます。利用者個人がVPNクライアントソフトを操作する必要が無く、透過的に利用できる点が特徴です。複数拠点を持つ企業の、拠点間通信の保護に使われます。

リモートアクセスVPN(Remote Access VPN)

個々の利用者(端末)を、企業ネットワークへ接続するVPNです。利用者は、VPNクライアントソフト(Cisco AnyConnect等)を使って、企業側のVPNゲートウェイとの間にトンネルを確立します。テレワークをする社員や、外出先の社員が、社内ネットワークのリソースへ安全にアクセスする用途で使われます。

2つの方式の比較

観点サイト間VPNリモートアクセスVPN
接続対象ネットワークどうし(拠点間)個々の端末と企業ネットワーク
利用者の操作不要(透過的)VPNクライアントソフトの利用が必要
典型的な用途複数拠点間の恒常的な接続テレワーク・外出先からの一時的な接続

参考:サイト間VPN(IKEv1)の設定コマンドの骨格

CCNA 200-301の出題範囲5.5は「説明」であり、実際の設定コマンドは対象外です。また実務では、より新しいIKEv2やVTI(Virtual Tunnel Interface)が使われることも多く、以下はあくまで従来型のIKEv1・クリプトマップ方式の骨格ですが、ここまで説明したAH/ESP・IKEフェーズ1/2・トンネルモードといった用語が実際のコマンドのどこに対応するのか、イメージをつかむための参考として紹介します。使用可能なコマンドや暗号方式は、Cisco IOS/IOS XEのプラットフォームおよびソフトウェアリリースにより異なります。

! IKEフェーズ1(ISAKMP)のポリシーを定義する
Router(config)# crypto isakmp policy 10
Router(config-isakmp)# encryption aes 256
Router(config-isakmp)# hash sha256
Router(config-isakmp)# authentication pre-share
Router(config-isakmp)# group 14
Router(config)# crypto isakmp key CiscoVpnKey123 address 203.0.113.2

! IKEフェーズ2(IPsec)で使う変換セット(ESPの暗号化・認証方式)を定義する
Router(config)# crypto ipsec transform-set TS esp-aes esp-sha256-hmac

! 保護対象のトラフィック(インタレスティングトラフィック)をACLで定義する
Router(config)# ip access-list extended VPN-TRAFFIC
Router(config-ext-nacl)# permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255

! crypto mapで対向ルータ・変換セット・保護対象トラフィックをひとまとめにする
Router(config)# crypto map CMAP 10 ipsec-isakmp
Router(config-crypto-map)# set peer 203.0.113.2
Router(config-crypto-map)# set transform-set TS
Router(config-crypto-map)# match address VPN-TRAFFIC

! 外部(インターネット)向けのインターフェイスにcrypto mapを適用する
Router(config)# interface GigabitEthernet0/0
Router(config-if)# crypto map CMAP

crypto isakmp policyがIKEフェーズ1(管理用チャネル、認証方式・暗号化アルゴリズムの合意)、crypto ipsec transform-setとcrypto mapがIKEフェーズ2(実際のデータ保護、AH/ESPどちらを使うか・保護範囲)にそれぞれ対応します。match addressで指定するACLが、「どの通信をVPNで保護するか」を決める部分で、このACLに一致した通信だけが、この例ではトンネルモードで暗号化されます。対向のルータ側でも、送信元・宛先を入れ替えた対称的な設定が必要です。

Router# show crypto isakmp sa
dst             src             state          conn-id status
203.0.113.1     203.0.113.2     QM_IDLE           1001    ACTIVE

Router# show crypto ipsec sa
   #pkts encaps: 1024, #pkts decaps: 1018
   local crypto endpt.: 203.0.113.1, remote crypto endpt.: 203.0.113.2

show crypto isakmp saのQM_IDLEは、IKEv1のフェーズ1およびQuick Mode(フェーズ2)の処理が完了し、IPsec SAを利用できる安定した状態であることを示します。show crypto ipsec saの#pkts encaps/#pkts decapsが増加していれば、実際にトンネルを通じてデータが暗号化・復号されていることを確認できます。