FutureNet

NXR,WXRシリーズ

IPsec編

6. IKEv2設定

6-4. EAP-MD5認証でのIKEv2接続設定

IKEv2で認証方式にEAP-MD5を使用する設定例です。

 

コンテンツ
構成図 設定例 設定例解説 端末の設定例 補足 付録

 

【 構成図 】

  • NXR_A側はNXR_B側の認証にEAP-MD5を、NXR_B側はNXR_A側の認証にデジタル署名を使用します。
  • 認証で利用する証明書等は、FutureNet RAシリーズや別途CA等で事前に用意しておく必要があります(ルータでは証明書の発行を行うことはできません)。
  • この例では各証明書のインポートを外部ストレージから行いますが、それ以外にもFTPおよびSSHによるインポートが可能です。
  • この例ではリキーのタイミングで再認証(reauth)を行います。詳しくはこちら

 

【 設定例 】

〔NXR_Aの設定〕

nxr650#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr650(config)#hostname NXR_A
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#exit
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254
NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2
NXR_A(config)#ipsec x509 enable
NXR_A(config)#ipsec x509 ca-certificate nxr disk0:nxrCA.pem
NXR_A(config)#ipsec x509 crl nxr disk0:nxrCRL.pem
NXR_A(config)#ipsec x509 certificate nxra disk0:nxraCert.pem
NXR_A(config)#ipsec x509 private-key nxra key disk0:nxraKey.pem
NXR_A(config)#ipsec x509 private-key nxra password nxrapass
NXR_A(config)#ipsec eap identity string nxrb password nxrbpass
NXR_A(config)#ipsec access-list ipsec_acl ip any any
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#x509 certificate nxra
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#version 2
NXR_A(config-ipsec-isakmp)#authentication local rsa-sig
NXR_A(config-ipsec-isakmp)#authentication remote eap-md5
NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 86400
NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1
NXR_A(config-ipsec-isakmp)#exit
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto
NXR_A(config-tunnel)#exit
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder
NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 28800
NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl
NXR_A(config-ipsec-tunnel)#exit
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 203.0.113.1/30
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

 

〔NXR_Bの設定〕

nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#hostname NXR_B
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24
NXR_B(config-if)#exit
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254
NXR_B(config)#ipsec x509 ca-certificate nxr disk0:nxrCA.pem
NXR_B(config)#ipsec eap identity string nxrb password nxrbpass
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#version 2
NXR_B(config-ipsec-isakmp)#authentication local eap-md5
NXR_B(config-ipsec-isakmp)#authentication remote rsa-sig
NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 86400
NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.1
NXR_B(config-ipsec-isakmp)#remote identity dn /C=JP/CN=nxra
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto
NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 28800
NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl
NXR_B(config-ipsec-tunnel)#exit
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#ip address dhcp
NXR_B(config-if)#ipsec policy 1
NXR_B(config-if)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

【 設定例解説 】

〔NXR_Aの設定〕

1. <ホスト名の設定>
nxr650(config)#hostname NXR_A

ホスト名を設定します。

 

2. <LAN側(ethernet0)インタフェース設定>
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254

192.168.20.0/24向けのルートを設定します。
(☞) Child SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。

NXR_A(config)#ip route 0.0.0.0/0 203.0.113.2

デフォルトルートを設定します。

 

4. <X.509の設定>
NXR_A(config)#ipsec x509 enable

X.509機能を有効にします。

NXR_A(config)#ipsec x509 ca-certificate nxr disk0:nxrCA.pem

CA証明書名をnxrとし、ストレージ(以下disk0)上にあるCA証明書ファイルnxrCA.pemをインポートします。

NXR_A(config)#ipsec x509 crl nxr disk0:nxrCRL.pem

失効リスト名をnxrとし、disk0上にあるCRLファイルnxrCRL.pemをインポートします。

NXR_A(config)#ipsec x509 certificate nxra disk0:nxraCert.pem

公開鍵証明書名をnxraとし、disk0上にあるNXR_A用公開鍵証明書ファイルnxraCert.pemをインポートします。

NXR_A(config)#ipsec x509 private-key nxra key disk0:nxraKey.pem

秘密鍵名をnxraとし、disk0上にあるNXR_A用秘密鍵ファイルnxraKey.pemをインポートします。

NXR_A(config)#ipsec x509 private-key nxra password nxrapass

秘密鍵名をnxraとし、NXR_A用秘密鍵のパスフレーズを設定します。
(☞) パスフレーズを暗号化する場合はhiddenオプションを設定します。

 

5. <EAP-ID設定>
NXR_A(config)#ipsec eap identity string nxrb password nxrbpass

EAP-MD5認証で使用するEAP-IDとパスワードを設定します。

 

6. <IPsecアクセスリスト設定>
NXR_A(config)#ipsec access-list ipsec_acl ip any any

送信元,宛先IPアドレスともにanyのIPsecアクセスリストipsec_aclを設定します。

 

7. <IPsecローカルポリシー設定>
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。

NXR_A(config-ipsec-local)#x509 certificate nxra

X.509で利用する証明書を指定します。
(☞) 「4. <X.509の設定>」で設定した公開鍵証明書名を指定します。

 

8. <IPsec ISAKMPポリシー設定>
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B

ISAKMPポリシー1の説明文を設定します。

NXR_A(config-ipsec-isakmp)#version 2

IKEのバージョンを設定します。

NXR_A(config-ipsec-isakmp)#authentication local rsa-sig

自ルータの認証方式にrsa-sig(デジタル署名)を設定します。

NXR_A(config-ipsec-isakmp)#authentication remote eap-md5

対向ルータの認証方式にeap-md5を設定します。

NXR_A(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

NXR_A(config-ipsec-isakmp)#encryption aes128

暗号化アルゴリズムをaes128に設定します。

NXR_A(config-ipsec-isakmp)#group 5

DH(Diffie-Hellman)グループをgroup 5に設定します。

NXR_A(config-ipsec-isakmp)#lifetime 86400

IKE SAのライフタイムを設定します。

NXR_A(config-ipsec-isakmp)#remote address ip any

リモートアドレスにanyを設定します。

NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb

リモートID(FQDN方式)を設定します。
(☞) NXR_Bのipsec local policy 1のセルフIDと同じIDを設定します。

NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除するように設定します。

NXR_A(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

9. <トンネル1インタフェース設定>
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4

トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。

NXR_A(config-tunnel)#tunnel protection ipsec policy 1

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

NXR_A(config-tunnel)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

10. <IPsec トンネルポリシー設定>
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B

IPsecトンネルポリシー1の説明文を設定します。

NXR_A(config-ipsec-tunnel)#negotiation-mode responder

ネゴシエーションモードをresponderに設定します。

NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

NXR_A(config-ipsec-tunnel)#set pfs group5

PFSを有効、DHグループをgroup5に設定します。

NXR_A(config-ipsec-tunnel)#set sa lifetime 28800

Child SAのライフタイムを設定します。

NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

NXR_A(config-ipsec-tunnel)#match address ipsec_acl

IPsecアクセスリストを設定します。

 

11. <WAN側(ethernet1)インタフェース設定>
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 203.0.113.1/30

ethernet1インタフェースのIPアドレスを設定します。

NXR_A(config-if)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシーを設定します。

 

12. <ファストフォワーディング設定>
NXR_A(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

13. <設定の保存>
NXR_A#save config

設定内容を保存します。

 

〔NXR_Bの設定〕

1. <ホスト名の設定>
nxrg100(config)#hostname NXR_B

ホスト名を設定します。

 

2. <LAN側(ethernet0)インタフェース設定>
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24

ethernet0インタフェースのIPアドレスを設定します。

 

3. <スタティックルート設定>
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254

192.168.10.0/24向けのルートを設定します。

 

4. <CA証明書の設定>
NXR_B(config)#ipsec x509 ca-certificate nxr disk0:nxrCA.pem

CA証明書名をnxrとし、 disk0上にあるCA証明書ファイルnxrCA.pemをインポートします。

 

5. <EAP-ID設定>
NXR_B(config)#ipsec eap identity string nxrb password nxrbpass

EAP-MD5認証で使用するEAP-IDとパスワードを設定します。

 

6. <IPsecアクセスリスト設定>
NXR_B(config)#ipsec access-list ipsec_acl ip any any

送信元,宛先IPアドレスともにanyのIPsecアクセスリストipsec_aclを設定します。

 

7. <IPsecローカルポリシー設定>
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。

NXR_B(config-ipsec-local)#self-identity fqdn nxrb

セルフID(FQDN方式)を設定します。
(☞) NXR_AのIPsec ISAKMPポリシー1のリモートIDと同じIDを設定します。

 

8. <IPsec ISAKMPポリシー設定>
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A

ISAKMPポリシー1の説明文を設定します。

NXR_B(config-ipsec-isakmp)#version 2

IKEのバージョンを設定します。

NXR_B(config-ipsec-isakmp)#authentication local eap-md5

自ルータの認証方式にeap-md5を設定します。

NXR_B(config-ipsec-isakmp)#authentication remote rsa-sig

対向ルータの認証方式にrsa-sig(デジタル署名)を設定します。

NXR_B(config-ipsec-isakmp)#hash sha256

認証アルゴリズムをsha256に設定します。

NXR_B(config-ipsec-isakmp)#encryption aes128

暗号化アルゴリズムをaes128に設定します。

NXR_B(config-ipsec-isakmp)#group 5

DHグループをgroup 5に設定します。

NXR_B(config-ipsec-isakmp)#lifetime 86400

IKE SAのライフタイムを設定します。

NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.1

リモートアドレスにNXR_AのWAN側IPアドレスを設定します。

NXR_B(config-ipsec-isakmp)#remote identity dn /C=JP/CN=nxra

リモートIDをDN(Distinguished Name)方式で設定します。
(☞) 設定前にNXR_Aの公開鍵証明書のDNまたはsubject等を確認して下さい。

NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart

IKE KeepAlive(DPD)を監視間隔30秒、リトライ回数3回、keepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。

NXR_B(config-ipsec-isakmp)#local policy 1

このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。

 

9. <トンネル1インタフェース設定>
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4

トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。

NXR_B(config-tunnel)#tunnel protection ipsec policy 1

このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。

NXR_B(config-tunnel)#ip tcp adjust-mss auto

TCP MSSの調整機能をオートに設定します。

 

10. <IPsec トンネルポリシー設定>
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A

IPsecトンネルポリシー1の説明文を設定します。

NXR_B(config-ipsec-tunnel)#negotiation-mode auto

ネゴシエーションモードをautoに設定します。

NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac

暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。

NXR_B(config-ipsec-tunnel)#set pfs group5

PFSを有効、DHグループをgroup5に設定します。

NXR_B(config-ipsec-tunnel)#set sa lifetime 28800

Child SAのライフタイムを設定します。

NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1

このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。

NXR_B(config-ipsec-tunnel)#match address ipsec_acl

IPsecアクセスリストを設定します。

 

11. <WAN側(ethernet1)インタフェース設定>
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#ip address dhcp

ethernet1インタフェースのIPアドレスを設定します。

NXR_B(config-if)#ipsec policy 1

このインタフェースで使用するIPsecローカルポリシーを設定します。

 

12. <ファストフォワーディング設定>
NXR_B(config)#fast-forwarding enable

ファストフォワーディングを有効にします。

 

13. <設定の保存>
NXR_B#save config

設定内容を保存します。

 

【 端末の設定例 】

192.168.10.0/24 192.168.20.0/24
IPアドレス 192.168.10.100 192.168.20.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.20.1

 

【 補足 】

この例では、リキーのタイミングで再認証を行います。再認証時は、IKE SAのリキー時にChild SAの再作成が行われます。なお負荷を考慮する場合は、再認証を無効にして下さい。
再認証を無効にする設定は、IPsec ISAKMPポリシー設定で行います。

(config-ipsec-isakmp)#no reauthentication enable

リキー時の再認証を無効にします。

 

【 付録 】