【Cisco】IPsec VPN 設定まとめ [ポリシーベース/ルートベース]

ルータ
スポンサーリンク

2 パターンの IPsec 設定

Cisco ルータで IPsec 設定を行う方法としては「ポリシーベース VPN」と「ルートベース VPN」の 2 パターンがあります。

ポリシーベース VPN

ポリシーベース VPN では、暗号化する対象通信をポリシー(ACL)によって決定します。設定としては crypto map を作成し、それを発信インターフェースに適用します。この場合、Tunnel インターフェースは使用されません。

IPsec VPN の設定方法を検索すると大体はポリシーベース VPN の設定方法が紹介されているため、IPsec VPN の設定といったらポリシーベース VPN の設定、と理解している人も少なくないかもしれません。

ルートベース VPN

ルートベース VPN では、Tunnel インターフェースが使用され、Tunnel を通る通信はすべて暗号化されます。どの通信が Tunnel を通るか(=どの通信が暗号化されるか)はルーティングテーブルに基づいて決定されます。設定としては、crypto ipsec profile を作成し、それを Tunnel インターフェースに適用します。

ルートベース VPN は、Tunnel インターフェースを使用するため GRE over IPsec の一種であるといえます。

この場合、IPsec 通信モード (tunnel/transport) としては、IPv4 ヘッダが IPsec と GRE で二重に付与されることを回避するために transport とすることが多いようです。

ポリシーベース IPsec VPN の設定方法

◆IKE ポリシーの設定(IKE フェーズ 1)

crypto isakmp policy <1-10000(優先度)>
 authentication pre-share
 encryption <暗号化アルゴリズム>
 hash <ハッシュアルゴリズム>
 group <DHグループ番号>
 lifetime <60-86400(秒)> "※オプション"

◆共通鍵の指定と対向ルータの IP アドレスの設定(IKE フェーズ 1)

crypto isakmp key <パスワード> address <ピアアドレス>

◆キープアライブの設定(IKE フェーズ 1)(オプション)

crypto isakmp keepalive <10-3600(秒)(間隔)> <2-60(秒)(リトライ)> <periodic|on-demand>

◆IPsec トランスフォームセットの設定(IKE フェーズ 2)

crypto ipsec transform-set <トランスフォームセット名> <暗号化アルゴリズム> <認証アルゴリズム>
 mode <tunnel|transport>

◆暗号化する通信の送信元と宛先の定義

ip access-list extended <ACL名>
 permit ip <送信元address> <送信元wildcard> <宛先address> <宛先wildcard>

暗号化する通信の送信元と宛先を定義する ACL 設定をする際に、すべての通信を暗号化したいからといって「permit ip any any」と設定することは推奨されません。そのように設定した場合、VPN 接続できない事象が発生することが報告されています。送信元/宛先は必要な通信を含む形で any 以外で設定してください。

◆暗号マップの設定(IKE フェーズ 2)

crypto map <暗号マップ名> <1-65535(シーケンス番号)> ipsec-isakmp
 match address <上で定義したACL名>
 set peer <ピアアドレス>
 set transform-set <トランスフォームセット名>
 set security-association lifetime seconds <120-2592000(秒)> "※オプション"
 set pfs <グループ名> "※オプション"

◆インタフェースへ暗号マップを適用

interface <インタフェース名>
 crypto map <暗号マップ名>

ポリシーベース VPN 設定例

◆検証構成

以下の構成で IPsec VPN を構築します。

  • ルータ C891FJ-K9 (1) の LAN 側セグメントは 10.10.0.0/24 です
  • ルータ C891FJ-K9 (2) の LAN 側セグメントは 10.20.0.0/24 と 10.30.0.0/24 です
  • ルータ間でポリシーベースの IPsec VPN を構築します
    • 暗号化対象通信は 10.10.0.0/24 と 10.20.0.0/24 間の通信のみとします

◆設定値の決定

項目IKE フェーズ1IKE フェーズ2
発信インターフェースVlan99Vlan99
セキュリティプロトコルesp
暗号化アルゴリズムaes 256esp-aes 256
ハッシュアルゴリズムsha256
認証アルゴリズムesp-sha256-hmac
認証方式pre-share
Pre-shared Keyipsec-password
DH/PFS グループ15無効
ISAKMP/IPsec  SA ライフタイム86400秒 (デフォ)3600秒 (デフォ)
IPsec 通信モードtunnel
IKE キープアライブ(DPD)無効
IPsec の対象トラフィック10.10.0.0/24 ⇔
10.20.0.0/24
IKE モードMainQuick

◆C891FJ-K9 (1) の設定

crypto isakmp policy 1
 authentication pre-share
 encryption aes 256
 hash sha256
 group 15
 lifetime 86400

crypto isakmp key ipsec-password address 10.99.0.2

crypto ipsec transform-set TF-SET esp-aes 256 esp-sha256-hmac
 mode tunnel

ip access-list extended ACL-IPsec
 permit ip 10.10.0.0 0.0.0.255 10.20.0.0 0.0.0.255

crypto map CR-MAP 1 ipsec-isakmp
 match address ACL-IPsec
 set peer 10.99.0.2
 set transform-set TF-SET
 set security-association lifetime seconds 3600

interface GigabitEthernet0
 switchport access vlan 99
 no ip address

interface GigabitEthernet7
 switchport access vlan 10
 no ip address

interface Vlan10
 ip address 10.10.0.254 255.255.255.0

interface Vlan99
 ip address 10.99.0.1 255.255.255.0
 crypto map CR-MAP

ip route 10.20.0.0 255.255.255.0 10.99.0.2
ip route 10.30.0.0 255.255.255.0 10.99.0.2

◆C891FJ-K9 (2) の設定

crypto isakmp policy 1
 authentication pre-share
 encryption aes 256
 hash sha256
 group 15
 lifetime 86400

crypto isakmp key ipsec-password address 10.99.0.1

crypto ipsec transform-set TF-SET esp-aes 256 esp-sha256-hmac
 mode tunnel

ip access-list extended ACL-IPsec
 permit ip 10.20.0.0 0.0.0.255 10.10.0.0 0.0.0.255

crypto map CR-MAP 1 ipsec-isakmp
 match address ACL-IPsec
 set peer 10.99.0.1
 set transform-set TF-SET
 set security-association lifetime seconds 3600

interface GigabitEthernet0
 switchport access vlan 99
 no ip address

interface GigabitEthernet2
 switchport access vlan 20
 no ip address

interface GigabitEthernet3
 switchport access vlan 30
 no ip address

interface Vlan20
 ip address 10.20.0.254 255.255.255.0

interface Vlan30
 ip address 10.30.0.254 255.255.255.0

interface Vlan99
 ip address 10.99.0.2 255.255.255.252
 crypto map CR-MAP

ip route 10.10.0.0 255.255.255.0 10.99.0.1

◆パケットキャプチャしてみる

C891FJ-K9 (1) の LAN 側にいる 10.10.0.254 から C891FJ-K9 (2) LAN 側のアドレスに Ping をしつつ、C891FJ-K9 (1) の Gi0 をパケットキャプチャしてみます。

まず、10.20.0.254 宛に Ping をした場合、これは暗号化対象通信に該当するため、以下のようにプロトコル ESP で表示され、暗号化されていることが分かります。

次に、10.30.0.254 宛に Ping をした場合、これは暗号化対象通信に該当しないため、以下のように暗号化されずに Ping がそのまま送信されていることが分かります。

暗号マップで定義した対象の通信のみが暗号化され、それ以外の通信は暗号化されない、という動きが分かったかと思います。これがポリシーベース VPN です。

ルートベース IPsec VPN の設定方法

◆IKE ポリシーの設定(IKE フェーズ 1)

crypto isakmp policy <優先度>
 authentication pre-share
 encryption <暗号化アルゴリズム>
 hash <ハッシュアルゴリズム>
 group <DHグループ番号>
 lifetime <60-86400(秒)> "※オプション"

◆共通鍵の指定と対向ルータのIPアドレスの設定(IKE フェーズ 1)

crypto isakmp key <パスワード> address <ピアアドレス>

◆IPsec トランスフォームセットの設定(IKE フェーズ 2)

crypto ipsec transform-set <トランスフォームセット名> <暗号化アルゴリズム> <認証アルゴリズム>
 mode <tunnel|transport>

◆IPsec プロファイルの設定(IKE フェーズ 2)

crypto ipsec profile <プロファイル名>
 set security-association lifetime seconds <120-2592000(秒)> "※オプション"
 set transform-set <トランスフォームセット名>
 set pfs <グループ名> "※オプション"

◆トンネルインターフェースの設定(IPsec プロファイルの適用)

interface Tunnel<0-2147483647>
 ip address <アドレス> <マスク>
 tunnel source <ソースインターフェース名>
 tunnel destination <ピアアドレス>
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile <IPsecプロファイル名>

◆ルーティング設定

  • 暗号化したい通信が Tunnel インターフェースを通るように設定する

ルートベース VPN 設定例

◆検証構成

以下の構成で IPsec VPN を構築します。

  • ルータ C891FJ-K9 (1) の LAN 側セグメントは 10.10.0.0/24 です
  • ルータ C891FJ-K9 (2) の LAN 側セグメントは 10.20.0.0/24 と 10.30.0.0/24 です
  • ルータ間でルートベースの IPsec VPN を構築します
  • 双方のルータで、デフォルトルートのネクストホップをトンネルの対向のアドレスとします
    • つまり、すべての通信を暗号化させます

◆設定値の決定

項目IKE フェーズ1IKE フェーズ2
Tunnel インターフェースTunnel0Tunnel0
Tunnel souceVlan99Vlan99
Tunnel destination10.99.0.2/
10.99.0.1
10.99.0.1/
10.99.0.2
Tunnel modeipsec ipv4ipsec ipv4
セキュリティプロトコルesp
暗号化アルゴリズムaes 256esp-aes 256
ハッシュアルゴリズムsha256
認証アルゴリズムesp-sha256-hmac
認証方式pre-share
Pre-shared Keyipsec-password
DH/PFS グループ15無効
ISAKMP/IPsec  SA ライフタイム86400秒 (デフォ)3600秒 (デフォ)
IPsec 通信モードtransport
IKE キープアライブ(DPD)無効
IPsec の対象トラフィックすべて
IKE モードMainQuick

◆C891FJ-K9 (1) の設定

crypto isakmp policy 1
 authentication pre-share
 encryption aes 256
 hash sha256
 group 15
 lifetime 86400

crypto isakmp key ipsec-password address 10.99.0.2

crypto ipsec transform-set TF-SET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile PROF-IPsec
 set security-association lifetime seconds 3600
 set transform-set TF-SET

interface GigabitEthernet0
 switchport access vlan 99
 no ip address

interface GigabitEthernet7
 switchport access vlan 10
 no ip address

interface Vlan10
 ip address 10.10.0.254 255.255.255.0

interface Vlan99
 ip address 10.99.0.1 255.255.255.0

interface Tunnel0
 ip address 172.16.0.1 255.255.255.252
 tunnel source Vlan99
 tunnel destination 10.99.0.2
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile PROF-IPsec

ip route 0.0.0.0 0.0.0.0 172.16.0.2

◆C891FJ-K9 (2) の設定

crypto isakmp policy 1
 authentication pre-share
 encryption aes 256
 hash sha256
 group 15
 lifetime 86400

crypto isakmp key ipsec-password address 10.99.0.1

crypto ipsec transform-set TF-SET esp-aes 256 esp-sha256-hmac
 mode transport

crypto ipsec profile PROF-IPsec
 set security-association lifetime seconds 3600
 set transform-set TF-SET

interface GigabitEthernet0
 switchport access vlan 99
 no ip address

interface GigabitEthernet2
 switchport access vlan 20
 no ip address

interface GigabitEthernet3
 switchport access vlan 30
 no ip address

interface Vlan20
 ip address 10.20.0.254 255.255.255.0

interface Vlan30
 ip address 10.30.0.254 255.255.255.0

interface Vlan99
 ip address 10.99.0.2 255.255.255.252

interface Tunnel0
 ip address 172.16.0.2 255.255.255.252
 tunnel source Vlan99
 tunnel destination 10.99.0.1
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile PROF-IPsec

ip route 0.0.0.0 0.0.0.0 172.16.0.1

◆パケットキャプチャしてみる

C891FJ-K9 (1) の LAN 側にいる 10.10.0.254 から C891FJ-K9 (2) LAN 側のアドレスに Ping をしつつ、C891FJ-K9 (1) の Gi0 をパケットキャプチャしてみます。

まず、10.20.0.254 宛に Ping をした場合、ルータのルーティングテーブルに従い、Tunnel0 を通るため、暗号化されます。パケットキャプチャの結果としても以下のように ESP となっており暗号化されていることが分かります。

次に、10.30.0.254 宛に Ping をした場合についても同様に、ルータのルーティングテーブルに従い、Tunnel0 を通るため、暗号化されます。パケットキャプチャの結果としても以下のように ESP となっており暗号化されていることが分かります。

さらに次は、10.99.0.2 宛に Ping をしてみます。10.99.0.2 はルータ(1)にとって直結セグメントのため、Tunnel を通らずに Gi0 (Vlan99) から直接発信されます。そのため行きの通信は暗号化されません。一方、戻りの通信はルータ(2)のルーティングに従って Tunnel を通るため暗号化されます。パケットキャプチャからもその様子が確認できます。

Tunnel を通る通信はすべて暗号化され、どの通信が Tunnel を通るかはルータのルーティングによって決定される、これがルートベース VPN です。

IPsec 状態確認コマンド・クリアコマンド

状態確認コマンド

  • show crypto isakmp sa
  • show crypto session
  • show crypto ipsec sa

クリアコマンド

  • clear crypto isakmp
  • clear crypto session

色々いじっていて VPN 確立できなくなってしまった場合など、クリアすると確立できるかもしれません。

各種設定値の設計時の考え方

IKE フェーズ 1 の設定値

暗号化アルゴリズム

こちらの Cisco のページによると推奨度は以下の通り。

  • des → 避けるべき
  • 3des → レガシー(限界的だが許容可能)
  • aes → 許容できる
    • 128
    • 192
    • 256

ハッシュアルゴリズム

こちらの Cisco のページによると推奨度は以下の通り。

  • md5 → 避けるべき
  • sha → レガシー(限界的だが許容可能)
  • sha256 → 次世代の暗号化
  • sha384 → 次世代の暗号化
  • sha512 → 次世代の暗号化

キープアライブ

  • 動的ルーティングによって障害時にはルートが切り替わる場合、キープアライブは設定しないという設計もあり

IKE フェーズ 2 の設定値

暗号化アルゴリズム

こちらの Cisco のページによると推奨度は以下の通り。

  • esp-des → 避けるべき
  • esp-3des → レガシー(限界的だが許容可能)
  • esp-aes → 許容できる
    • 128
    • 192
    • 256

認証アルゴリズム

こちらの Cisco のページによると推奨度は以下の通り。

  • esp-md5-hmac → レガシー(限界的だが許容可能)
  • esp-sha-hmac → 許容できる
  • esp-sha256-hmac → 次世代の暗号化、HMAC-MD5 の代替
  • esp-sha384-hmac
  • esp-sha512-hmac

DH グループ(IKE フェーズ 1/2)

こちらの Cisco のページによると推奨度は以下の通り。

  • 1 (768 bit) → 避けるべき
  • 2 (1024 bit) → 避けるべき
  • 5 (1536 bit) → 弱いアルゴリズムこちらのマニュアル より)
  • 14 (2048 bit) → 許容できる
  • 15 (3072 bit) → 許容できる、グループ 1,2 の代替
  • 16 (4096 bit)
  • 19 (256 bit ecp)
  • 20 (384 bit ecp)
  • 21 (521 bit ecp)
  • 24 (2048 bit, 256 bit subgroup)

MTU、MSS の計算、設定

参考資料

ASAおよびFTDからMicrosoft AzureへのポリシーベースおよびルートベースのVPNの設定
このドキュメントでは、ASAでサイト間VPNを実装し、AzureクラウドサービスでFTDを実装するために必要な概念と設定について説明します。
Cisco Learning Network
[事例]Site-to-Site IPSec VPN の Crypto ACL の設定について
  事象 Site-to-Site IPSec VPN の導入の際の Crypto ACL で Peer 同士の ACL がミラー・イメージになっていない場合や送信元または送信先の ip address を any に設定する場合、VPN が接続できない事象が発生することがあります。 事象発生時に、以下の syslog...

https://www.cisco.com/c/ja_jp/td/docs/security/asa/asa98/configuration/vpn/asa-98-vpn-config/asa-98-vpn-config_chapter_01100.pdf

Next Generation Cryptography
Cisco Content Hub - Configuring Security for VPNs with IPsec
Security for VPNs with IPsec Configuration Guide, Cisco IOS XE 17 - Configuring Security for VPNs with IPsec [Cisco IOS XE Amsterdam 17.1.1]
Configuring Security for VPNs with IPsec
Security for VPNs with IPsec Configuration Guide - Configuring Security for VPNs with IPsec [Cisco ASR 1000 Series Aggregation Services Routers]
Security for VPNs with IPsec Configuration Guide -Configuring Security for VPNs with IPsec
Security for VPNs with IPsec Configuration Guide, Cisco IOS Release 15M&T - Configuring Security for VPNs with IPsec [Support]
Security for VPNs with IPsec Configuration Guide, Cisco IOS Release 15M&T-Configuring Security for VPNs with IPsec

タイトルとURLをコピーしました