FutureNet

NXR,WXRシリーズ

IPsec編

3. リモートアクセスVPN設定

3-9. IKEv2 Configuration Payload設定(iOSとの接続)

この設定例ではIKEv2機能を利用してiOSのスマートデバイスとVPN接続します。そして認証には事前共有鍵を利用します。
なおこの設定例は弊社独自の検証結果を元に作成しております。よってiOSのスマートデバイスとの接続を保証するものではありません。

 

【 構成図 】

  • IPsec接続にはIKEv2を使用し、認証には事前共有鍵(PSK)を使用します。
    (☞) この設定例ではリモートID毎に異なるPSKを設定します。

 

【 設定データ 】

設定項目 設定内容
ホスト名 NXR
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0のIPアドレス 10.10.10.1/32
IPマスカレード 有効
IPアクセスグループ in ppp0_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ISP接続用ユーザID test1@example.jp
ISP接続用パスワード test1pass
IPsecローカルポリシー 1
スタティックルート 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
IPフィルタ ルール名 ppp0_in
ppp0_in No.1 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル UDP
送信元ポート any
宛先ポート 500
No.2 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル UDP
送信元ポート any
宛先ポート 4500
No.3 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 RemoteAccess
送信元IPアドレス any
宛先IPアドレス host
ipsec pre-share No.1 ID(FQDN) ios01
認証鍵 ipseckey1
No.2 ID(FQDN) ios02
認証鍵 ipseckey2
IPsecローカルポリシー1 address ip
セルフID(FQDN) nxr
IPsec ISAKMPポリシー1 名前 smartphone
認証方式 pre-share
認証鍵 ipseckey
バージョン 2
アドレスプール smartphoneip
認証アルゴリズム sha1
暗号化アルゴリズム aes128
DHグループ 2
ライフタイム 86400秒
リモートアドレス any
ローカルポリシー 1
 IPsecトンネルポリシー1 名前 smartphone
ネゴシエーションモード レスポンダ
認証アルゴリズム sha256
暗号化アルゴリズム aes256
PFS 無効
ライフタイム 28800秒
ISAKMPポリシー 1
IPsecアクセスリスト RemoteAccess
ipsec local pool プール名 smartphoneip
IPアドレス払い出し範囲 172.16.0.0/24
DNS サービス 有効
FastFowarding 有効

【 設定例 】

nxrg100#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg100(config)#hostname NXR
NXR(config)#interface ethernet 0
NXR(config-if)#ip address 192.168.10.1/24
NXR(config-if)#exit
NXR(config)#ip route 0.0.0.0/0 ppp 0
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 udp any 500
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 udp any 4500
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 50
NXR(config)#ipsec access-list RemoteAccess ip any host
NXR(config)#ipsec local pool smartphoneip address 172.16.0.0/24
NXR(config)#ipsec pre-share identity fqdn ios01 password ipseckey1
NXR(config)#ipsec pre-share identity fqdn ios02 password ipseckey2
NXR(config)#ipsec local policy 1
NXR(config-ipsec-local)#address ip
NXR(config-ipsec-local)#self-identity fqdn nxr
NXR(config-ipsec-local)#exit
NXR(config)#ipsec isakmp policy 1
NXR(config-ipsec-isakmp)#description smartphone
NXR(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR(config-ipsec-isakmp)#version 2
NXR(config-ipsec-isakmp)#client configuration address-pool local smartphoneip
NXR(config-ipsec-isakmp)#hash sha1
NXR(config-ipsec-isakmp)#encryption aes128
NXR(config-ipsec-isakmp)#group 2
NXR(config-ipsec-isakmp)#lifetime 86400
NXR(config-ipsec-isakmp)#remote address ip any
NXR(config-ipsec-isakmp)#local policy 1
NXR(config-ipsec-isakmp)#exit
NXR(config)#ipsec tunnel policy 1
NXR(config-ipsec-tunnel)#description smartphone
NXR(config-ipsec-tunnel)#negotiation-mode responder
NXR(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac
NXR(config-ipsec-tunnel)#no set pfs
NXR(config-ipsec-tunnel)#set sa lifetime 28800
NXR(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR(config-ipsec-tunnel)#match address RemoteAccess
NXR(config-ipsec-tunnel)#exit
NXR(config)#ppp account username test1@example.jp password test1pass
NXR(config)#interface ppp 0
NXR(config-ppp)#ip address 10.10.10.1/32
NXR(config-ppp)#ip masquerade
NXR(config-ppp)#ip access-group in ppp0_in
NXR(config-ppp)#ip spi-filter
NXR(config-ppp)#ip tcp adjust-mss auto
NXR(config-ppp)#ppp username test1@example.jp
NXR(config-ppp)#ipsec policy 1
NXR(config-ppp)#exit
NXR(config)#interface ethernet 1
NXR(config-if)#no ip address
NXR(config-if)#pppoe-client ppp 0
NXR(config-if)#exit
NXR(config)#dns
NXR(config-dns)#service enable
NXR(config-dns)#exit
NXR(config)#fast-forwarding enable
NXR(config)#exit
NXR#save config

【 設定例解説 】

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

ホスト名を設定します。

 

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

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

 

3. <スタティックルート設定>
NXR(config)#ip route 0.0.0.0/0 ppp 0

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

 

4. <IPアクセスリスト設定>
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 udp any 500
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 udp any 4500
NXR(config)#ip access-list ppp0_in permit any 10.10.10.1 50

IPアクセスリスト名をppp0_inとし、NXRのWAN側IPアドレス10.10.10.1宛のUDPポート番号500、4500、ESP(プロトコル番号50)のパケットを許可します。
なおこのIPアクセスリスト設定はppp0インタフェース設定で登録します。
(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングしたいインタフェースでの登録が必要になります。
(☞) NATトラバーサルでは、UDPポート番号500および4500をIPsecのネゴシエーションおよび通信で使用します。

 

5. <IPsecアクセスリスト設定>
NXR(config)#ipsec access-list RemoteAccess ip any host

RemoteAccessという名前のIPsecアクセスリストを設定します。なお送信元IPアドレスはany,宛先IPアドレスはhostとします。

 

6. <IPsec IPアドレスプール設定>
NXR(config)#ipsec local pool smartphoneip address 172.16.0.0/24

IPsec IPアドレスプール名をsmartphoneipとし、スマートデバイスに割り当てるIPアドレスを設定します。

 

7. <IPsec Pre-Share設定>
NXR(config)#ipsec pre-share identity fqdn ios01 password ipseckey1
NXR(config)#ipsec pre-share identity fqdn ios02 password ipseckey2

IKEv2でスマートデバイス毎のリモートID(FQDN)および事前共有鍵を設定します。

 

8. <IPsecローカルポリシー設定>
NXR(config)#ipsec local policy 1
NXR(config-ipsec-local)#address ip
NXR(config-ipsec-local)#self-identity fqdn nxr

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrとし、スマートデバイスのリモートIDと同じIDを設定します。

 

9. <IPsec ISAKMPポリシー設定>
NXR(config)#ipsec isakmp policy 1
NXR(config-ipsec-isakmp)#description smartphone
NXR(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてsmartphone、認証方式としてpre-share(事前共有鍵)を選択し事前共有鍵を設定します。
(☞) ipsec pre-share identityを設定している場合、ID毎に設定した事前共有鍵を認証に使用します。

NXR(config-ipsec-isakmp)#version 2

IKEv2を使用するためversion2を指定します。

NXR(config-ipsec-isakmp)#client configuration address-pool local smartphoneip

IKEv2 Configuration Payloadで使用するIPsec IPアドレスプール名を設定します。

NXR(config-ipsec-isakmp)#hash sha1
NXR(config-ipsec-isakmp)#encryption aes128
NXR(config-ipsec-isakmp)#group 2
NXR(config-ipsec-isakmp)#lifetime 86400

認証アルゴリズムとしてsha1、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 2、ISAKMP SAのライフタイムとして86400秒を設定します。

NXR(config-ipsec-isakmp)#remote address ip any
NXR(config-ipsec-isakmp)#local policy 1

リモートアドレスにanyを設定します。またIPsecローカルポリシー1と関連づけを行います。

 

10. <IPsecトンネルポリシー設定>
NXR(config)#ipsec tunnel policy 1
NXR(config-ipsec-tunnel)#description smartphone
NXR(config-ipsec-tunnel)#negotiation-mode responder

IPsecトンネルポリシーの説明としてsmartphone、ネゴシエーションモードとしてresponderを設定します。

NXR(config-ipsec-tunnel)#set transform esp-aes256 esp-sha256-hmac
NXR(config-ipsec-tunnel)#no set pfs
NXR(config-ipsec-tunnel)#set sa lifetime 28800

暗号化アルゴリズムとしてaes256、認証アルゴリズムとしてsha256、PFSを無効、IPsec SAのライフタイムとして28800秒を設定します。

NXR(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR(config-ipsec-tunnel)#match address RemoteAccess

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストRemoteAccessを設定します。

 

11. <PPPアカウント設定>
NXR(config)#ppp account username test1@example.jp password test1pass

ppp0インタフェースで使用するISP接続用ユーザID,パスワードを設定します。
(☞) ここで設定したアカウントはppp0インタフェースの設定で利用します。

 

12. <WAN側(ppp0)インタフェース設定>
NXR(config)#interface ppp 0
NXR(config-ppp)#ip address 10.10.10.1/32

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

NXR(config-ppp)#ip masquerade
NXR(config-ppp)#ip access-group in ppp0_in
NXR(config-ppp)#ip spi-filter
NXR(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストppp0_inをinフィルタに適用します。そしてTCP MSSの調整機能をオートに設定します。

NXR(config-ppp)#ppp username test1@example.jp
NXR(config-ppp)#ipsec policy 1

ISP接続用ユーザIDを設定します。またIPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

13. <ethernet1インタフェース設定>
NXR(config)#interface ethernet 1
NXR(config-if)#no ip address
NXR(config-if)#pppoe-client ppp 0

PPPoEクライアントとしてppp0インタフェースを使用できるように設定します。

 

14. <DNS設定>
NXR(config)#dns
NXR(config-dns)#service enable

DNSサービスを有効にします。

 

15. <ファストフォワーディングの有効化>
NXR(config)#fast-forwarding enable

ファストフォワーディングを有効にします。ファストフォワーディングを設定することによりパケット転送の高速化を行うことができます。
(☞) ファストフォワーディングの詳細および利用時の制約については、NXR,WXRシリーズのユーザーズガイド(CLI版)に記載されているファストフォワーディングの解説をご参照ください。

 

【 スマートデバイスの設定例 】

〔iOSの設定〕

(☞) ここで記載した設定はあくまで一例ですので、ご利用頂いているiOS端末によって設定が異なる場合があります。設定の詳細はご利用中のiOS端末の取扱説明書等をご確認下さい。
(☞) この設定例はiOS端末との接続性を保証するものではありません。ご利用頂く際には十分な検証を行った上でのご利用をお願い致します。

 

  1. ホーム画面から「設定」をタップします。
    ikev2-ios1
  2. 設定画面で「一般」をタップします。
    ikev2-ios2
  3. 一般画面で「VPN」をタップします。
    ikev2-ios3
  4. VPN画面で「VPN構成を追加…」をタップします。
    ikev2-ios4
  5. 以下の各項目を設定し「完了」をタップします。
    ikev2-ios5

    設定項目 設定値 備考
    タイプ IKEv2
    説明 NXR IKEv2 任意の名称を設定します
    サーバ 10.10.10.1 対向ルータのWAN側IPアドレスを設定します
    リモートID nxr 対向ルータのIDを設定します
    ※IPsecローカルポリシー設定のself-identityと同じIDを設定します
    ローカルID ios01 スマートデバイス側のIDを設定します
    ※IPsec Pre-Share設定のIDと同じIDを設定します
    ユーザ認証 なし
    証明書を使用 オフ
    シークレット ipseckey1 事前共有鍵を設定します
    ※IPsec Pre-Share設定のIDに関連付けた事前共有鍵を設定します
  6. VPN構成「NXR IKEv2」が作成されますので、チェックがついていることを確認します。
    ※チェックがついていない場合は作成したVPN構成をタップします。
    そして状況をオンにしVPN接続を開始します。
    ikev2-ios6
  7. VPN接続完了後は以下のような画面が表示されます。
    また設定したVPN構成をタップすることでIPアドレスなどのVPN接続情報が表示されます。
    ikev2-ios7
  8. VPN接続情報の表示
    ikev2-ios8

 

【 補足 】

IKEv2 Configuration PayloadではIPアドレスの他にDNSサーバのIPアドレスを割り当てることができます。

<DNSサーバアドレスの割り当て>
(config)#ipsec ikev2 client configuration dns-server [プライマリDNSサーバアドレス] [セカンダリDNSサーバアドレス]

スマートデバイスに対してDNSサーバアドレスを割り当てます。