設定例集#104: Windows・Android・iOSのIKEv2 IPsec VPNクライアントを利用したリモートアクセス型IPsec VPN
Windows、Android、iOSから、インターネット経由で本製品のLAN側プライベートネットワークにアクセスさせるリモートアクセス型VPNの設定例です。
各OSの設定方法は以下のとおりです。
- Windows - 標準搭載のVPNクライアントで設定します。
- Android - Google Playストアより「strongSwan VPN Client」をダウンロードし、同アプリ上で設定します。
- iOS - 事前作成したコンフィグファイル(構成プロファイル)をiOSデバイスにダウンロードし、同プロファイルをインストールすることで設定します。
本製品の設定ポイントは次のとおりです。
- クライアントの仕様にあわせてIKEv2を使用するよう設定します。
- ダイナミックDNSを使用して本製品のWAN側IPアドレスを登録し、クライアント設定時にVPN接続先をホスト名(FQDN)で指定できるようにします。
- ローカルRADIUSサーバーを用いてクライアントの認証を行います。
構成

| ISP接続用ユーザー名 | user@isp |
| ISP接続用パスワード | isppasswd |
| PPPoEサービス名 | 指定なし |
| WAN側IPアドレス | 10.0.0.1/32 |
| 接続形態 | 端末型(アドレスは動的割り当て) |
| WAN側物理インターフェース | eth1 |
| WAN側(ppp0)IPアドレス | 10.0.0.1/32 |
| LAN側(vlan1)IPアドレス(1) | 192.168.10.1/24 |
| トンネルインターフェース | tunnel0(マルチポイントIPsec) |
| トンネルインターフェースIPアドレス | 192.168.20.1/24 |
| サーバーのFQDN | members.dyndns.org |
| サーバーのTCPポート番号 | 443 |
| サーバー接続用ユーザー名 | test |
| サーバー接続用パスワード | test |
| ホスト名 | test01-native-vpn.dyndns.org |
| IPアドレスを登録するインターフェース | ppp0 |
| ユーザーA | userA | passwdA | 192.168.20.2/24 |
| ユーザーB | userB | passwdB | 192.168.20.3/24 |
| ユーザーC | userC | passwdC | 192.168.20.4/24 |
設定開始前に
自動設定の確認と削除
本設定例に掲載されているコマンドは、設定がまったく行われていない本製品の初期状態(スタートアップコンフィグなしで起動した状態)から入力することを前提としています。そのため、通常は erase startup-config を実行し、スタートアップコンフィグが存在しない状態で起動してから、設定を始めてください。
ただし、本製品はスタートアップコンフィグなしで起動した場合でも、特定の条件を満たすと自動的な設定を行うことがあるため、その場合は設定例にしたがってコマンドを入力しても、コマンドがエラーになったり、全体として意図した動作にならない可能性があります。
これを避けるため、設定開始にあたっては次のいずれかの方法をとることをおすすめします。
- ネットワークケーブルを接続せずに起動する。
起動時に自動設定が実行されるための条件の一つに、特定インターフェースのリンクアップがあります。
ネットワークケーブルを接続しない状態で起動することにより、自動設定の適用を回避できます。
- 自動設定を手動で削除してから設定を行う。
前記の方法を採用できず自動設定が適用されてしまった場合は、「自動的な設定内容の削除」にしたがって、これらを手動で削除してから設定を開始してください。
システム時刻の設定
ログなどの記録日時を正確に保ち、各種機能を適切に動作させるため、システム時刻は正確にあわせて運用することをおすすめします。ご使用の環境にあわせ、次のいずれかの方法でシステム時刻を設定してください。
- 手動で設定する方法 - 「運用・管理」/「システム」
- NTPで自動設定する方法 - 「運用・管理」/「NTP」
ルーターの設定
- LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
no spanning-tree rstp enable
- DNS問い合わせ機能を有効にします。これには、ip domain-lookupコマンドを使います。
ip domain-lookup
- ダイナミックDNSクライアント機能を有効にします。これには、ddns enableコマンドを使います。
ダイナミックDNSクライアント機能の詳細は「IP付加機能」/「ダイナミックDNSクライアント」をご覧ください。
ddns enable
- ダイナミックDNSサービス固有の設定を行います。これには、ddns-update-methodコマンドでDDNSアップデートメソッドモードに入り、update-url、host-name、username、password、update-interval、retry-intervalの各コマンドで具体的なパラメーターを設定します。
※クエリーパラメーターの開始を表す「?」をCLIから入力するには、Ctrl/Vキーを入力してから?を入力してください。単に?を入力するとCLIヘルプが表示されてしまうためご注意ください。
ddns-update-method dyndns update-url https://<USERNAME>:<PASSWORD>@members.dyndns.org/nic/update?SYSTEM=dyndns&hostname=<HOST-NAME>&myip=<IPADDRESS> host-name test01-native-vpn.dyndns.org username test password test update-interval 60 retry-interval 1 maximum-retries 5
- WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
PPPの詳細は「PPP」/「一般設定」をご覧ください。
interface eth1 encapsulation ppp 0
- PPPインターフェースppp0に対し、PPPoE接続のための設定を行います。
・ダイナミックDNSクライアント機能によるIPアドレスの登録(ip ddns-update-method)
・IPCPによるDNSサーバーアドレスの取得要求(ppp ipcp dns)
・LCP EchoによるPPP接続状態の確認(keepalive)
・IPCPによるIPアドレスの取得要求(ip address negotiated)
・ユーザー名(ppp username)
・パスワード(ppp password)
・MSS書き換え(ip tcp adjust-mss)
PPPの詳細は「PPP」/「一般設定」をご覧ください。
interface ppp0 ip ddns-update-method dyndns ppp ipcp dns request keepalive ip address negotiated ppp username user@isp ppp password isppasswd ip tcp adjust-mss pmtu
- LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
interface vlan1 ip address 192.168.10.1/24
- ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
内部ネットワークを表すゾーン「private」を作成します。
これには、zone、network、ip subnetの各コマンドを使います。
zone private network lan ip subnet 192.168.10.0/24 ip subnet 192.168.20.0/24
- 外部ネットワークを表すゾーン「public」を作成します。
これには、前記コマンドに加え、host、ip addressの各コマンドを使います。
zone public network wan ip subnet 0.0.0.0/0 interface ppp0 host ppp0 ip address dynamic interface ppp0
- ファイアウォールやNATのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
これには、application、protocol、sport、dport、icmp-type、icmp-codeの各コマンドを使います。
アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。
IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。
application esp protocol 50
- ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
application isakmp protocol udp dport 500
- NAT-Traversalパケットを表すカスタムアプリケーション「nat-t」を定義します。
application nat-t protocol udp dport 4500
- 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
これには、firewall、rule、protectの各コマンドを使います。
・rule 10 - 内部から内部への通信を許可します
・rule 20 - 内部から外部への通信を許可します
・rule 30, 40 - ISAKMPパケットを許可します
・rule 50, 60 - IPsec(ESP)パケットを許可します
・rule 70, 80 - NAT-Traversalパケットを許可します
・rule 90, 100 - ダイナミックDNSサーバーにアクセスしてIPアドレスを登録するため、本製品のWAN側インターフェースから外部へのHTTPS通信とDNS通信を許可します
ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
firewall rule 10 permit any from private to private rule 20 permit any from private to public rule 30 permit isakmp from public.wan to public.wan.ppp0 rule 40 permit isakmp from public.wan.ppp0 to public.wan rule 50 permit esp from public.wan to public.wan.ppp0 rule 60 permit esp from public.wan.ppp0 to public.wan rule 70 permit nat-t from public.wan to public.wan.ppp0 rule 80 permit nat-t from public.wan.ppp0 to public.wan rule 90 permit https from public.wan.ppp0 to public.wan rule 100 permit dns from public.wan.ppp0 to public.wan protect
- LAN側ネットワークに接続されているすべてのコンピューターがダイナミックENAT機能を使用できるよう設定します。
これには、nat、rule、enableの各コマンドを使います。
NATの詳細は「UTM」/「NAT」をご覧ください。
nat rule 10 masq any from private to public enable
- RADIUSクライアント機能が使用するRADIUSサーバーを登録します。これにはradius-server hostコマンドを使います。
ここでは、本製品内蔵のローカルRADIUSサーバーを指定しています。
RADIUSクライアント機能の詳細は「運用・管理」/「RADIUSクライアント」を、ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
radius-server host localhost key awplus-local-radius-server
- VPNクライアントのISAKMP認証に使用するRADIUSサーバーを指定します。これにはaaa authentication isakmpコマンドを使います。
aaa authentication isakmp default group radius
- サーバー(本製品)側のISAKMP認証に必要なCA証明書とサーバー証明書を準備するため、ローカルCAの設定を行います。
・ローカルCA「local」のセットアップ(crypto pki trustpoint)
・ローカルCAが発行するサーバー証明書のサブジェクト代替名(subject-alt-name)
・ローカルCAが発行するサーバー証明書のサブジェクト名(subject-name)
※ iOSまたはAndroidが接続端末として存在する構成(Windows端末のみの接続構成以外)の場合、IPアドレスではなくFQDNを指定してください。
ローカルCAの詳細は「運用・管理」/「ローカルCA」をご覧ください。
crypto pki trustpoint local subject-alt-name test01-native-vpn.dyndns.org subject-name /O=AlliedTelesis/CN=test01-native-vpn.dyndns.org
- ローカルRADIUSサーバーにVPNユーザーを登録します。
これには、radius-server local、server enable、nas、group、attribute、userの各コマンドを使います。
ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
radius-server local server enable nas 127.0.0.1 key awplus-local-radius-server group userA attribute Framed-IP-Address 192.168.20.2 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 group userB attribute Framed-IP-Address 192.168.20.3 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 group userC attribute Framed-IP-Address 192.168.20.4 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 user userA password passwdA group userA user userB password passwdB group userB user userC password passwdC group userC
- DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。
DNSリレー機能の詳細は「IP付加機能」/「DNSリレー」をご覧ください。
ip dns forwarding
- リモートアクセスVPN用のカスタムISAKMPプロファイル「native-vpn」を作成します。
・IKEv2の指定(version)
・自装置の認証方式(local authentication)
・対向装置の認証方式(remote authentication)
・RADIUS属性にもとづいてクライアントにIPアドレスを割り当てる設定(configuration-attribute)
・ISAKMP SA有効期間(lifetime)
・サーバー証明書(pki trustpoint)
・暗号/認証方式とDiffie-Hellmanグループ(transform)
ISAKMPプロファイルの詳細は「VPN」/「IPsec」をご覧ください。
crypto isakmp profile native-vpn version 2 local authentication certificate configuration-attribute radius remote authentication eap-radius lifetime 25200 pki trustpoint local transform 1 integrity SHA256 encryption AES256 group 14 transform 2 integrity SHA256 encryption AES256 group 2
- 前の手順で作成したISAKMPプロファイル「native-vpn」を、この後で作成するマルチポイントIPsecトンネルインターフェースtunnel0に割り当てます。これには crypto isakmp peerコマンドを使います。
crypto isakmp peer policy tunnel0 profile native-vpn
- マルチポイントIPsecトンネルインターフェースtunnel0を作成します。
トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、IPsecの詳細は「VPN」/「IPsec」をご覧ください。
これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
・トンネルインターフェースにおける自装置ID(ローカルID)(tunnel local name)
・トンネルインターフェースに対するIPsec保護の適用(tunnel protection ipsec)
・トンネリング方式(tunnel mode ipsec multipoint)
・トンネルインターフェースのIPアドレス(ip address)
・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss)
interface tunnel0 tunnel local name test01-native-vpn.dyndns.org tunnel protection ipsec tunnel mode ipsec multipoint ip address 192.168.20.1/24 ip tcp adjust-mss pmtu
- デフォルト経路をPPPインターフェースppp0に向けます。これにはip routeコマンドを使います。
IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
ip route 0.0.0.0/0 ppp0
- 以上で設定は完了です。
end
設定の保存
設定が完了したら、現在の設定内容を起動時コンフィグとして保存してください。これには、copyコマンドを「copy running-config startup-config」の書式で実行します。awplus# copy running-config startup-config
Building configuration...
[OK]
また、write fileコマンド、write memoryコマンドでも同じことができます。
awplus# write memory
Building configuration...
[OK]
その他、設定保存の詳細については「運用・管理」/「コンフィグレーション」をご覧ください。
ファイアウォールログについて
ファイアウォールのログをとるには、次のコマンド(log(filter))を実行します。awplus(config)# log buffered level informational facility local5
記録されたログを見るには、次のコマンド(show log)を実行します。ここでは、ファイアウォールが出力したログメッセージだけを表示させています。
awplus# show log | include Firewall
VPNクライアントの設定
以下では、Windows、Android、iOSの各VPNクライアントの設定手順を説明します。
なお、どのVPNクライアントでも本製品のローカルCA証明書が必要なため、最初に「全クライアント共通:証明書の準備」の手順を実行してから、各クライアントの設定手順に進んでください。
全クライアント共通:証明書の準備
VPNクライアントの設定を行う前に、本製品のCLI上から、以下の手順にしたがって証明書を準備してください。VPNクライアントの設定時に、ファイルに書き出したローカルCA証明書を使用します。
既存サーバー証明書の削除
既存のサーバー証明書をいったん削除します。ローカルRADIUSサーバーに適用されているトラストポイント「local」をいったん解除します。これには、server trustpointコマンド(RADIUSサーバーモード)をno形式で実行します。
awplus(config)# radius-server local awplus(config-radsrv)# no server trustpoint local PKI trustpoints for RADIUS EAP-TLS changed to: (None) awplus(config-radsrv)# end
特権EXECモードでcrypto pki enrollコマンドをno形式で実行し、サーバー証明書を削除してください。
awplus# no crypto pki enroll local
De-enrolled the server from trustpoint "local".
ローカルCAによるサーバー証明書の発行
本製品のCLI上から、ローカルCA(トラストポイント)「local」を使って、ISAKMP認証で使用する本製品のサーバー証明書を発行します。特権EXECモードでcrypto pki enrollコマンドを実行してください。同コマンドでは使用するローカルCAの名前(トラストポイント名)を指定します。
awplus# crypto pki enroll local
Using private key "server-default"...
Successfully enrolled the local server.
発行したサーバー証明書の情報は、show crypto pki certificatesコマンドで確認できます。server trustpointコマンド(RADIUSサーバーモード)を実行してローカルRADIUSサーバーにトラストポイント「local」を再適用します。
awplus# configure terminal awplus(config)# radius-server local awplus(config-radsrv)# server trustpoint local PKI trustpoints for RADIUS EAP-TLS changed to: local
機器の再起動
ここでいったん設定を保存して再起動してください。設定の保存は、copyコマンドを「
copy running-config startup-config」の書式で実行するか、write fileコマンド、write memoryコマンドを使用します。また、再起動はreloadコマンド、rebootコマンドで行います。awplus# copy running-config startup-config Building configuration... [OK] awplus# reload ...
ローカルCA証明書のファイルへの書き出し
次に、本製品のCLI上から、ローカルCAの証明書をファイルに書き出します。特権EXECモードでcrypto pki export pemコマンドを実行してください。同コマンドでは書き出し先のファイル名を指定します。
ファイル名は任意ですが、ここではWindowsが証明書ファイルと認識する拡張子 .cer をつけています。
awplus# crypto pki export local pem cacert.cer
Copying...
Successful operation
Windows標準 IKEv2 IPsec VPNクライアント
Windows標準VPNクライアントの設定手順を説明します。ローカルCA証明書のクライアントへのインストール
Windowsクライアントが、VPN接続時に本製品のサーバー証明書を検証するためには、ローカルCAの証明書を「信頼されたルート証明機関」としてクライアントにインストールしておく必要があります。- 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)をWindowsクライアントにコピーしてください。
- 保存したファイルをダブルクリックします。

- 証明書のインストールをクリックします。

- 「証明書のインポートウィザード」画面が表示されます。
保存場所で「ローカルコンピューター」を選択し、「次へ」をクリックします。

- 「証明書ストアの選択」画面が表示されます。
「信頼されたルート証明機関」を選択し、「OK」をクリックします。

- 「証明書のインポートウィザード」画面に戻ったら、「次へ」をクリックします。

- 「完了」をクリックします。

8.「OK」をクリックします。

9.「OK」をクリックします。これで証明書のインストールは完了です。

クライアントのVPN接続設定
ローカルCA証明書のインストールが完了したら、以下の手順でVPN接続の設定を行い、接続します。- スタートボタンを押して、「設定」をクリックします。

- 「ネットワークとインターネット」をクリックします。

- 「VPN」をクリックします。

- 「VPNを追加」をクリックします。

- VPN接続を追加します。それぞれ以下を設定してください。
- VPNプロバイダー:Windows(ビルトイン)
- 接続名:VPN接続名。ここでは「native-VPN」を使用します
- サーバー名またはアドレス:ダイナミックDNSに登録したルーターのホスト名。ここでは「test01-native-vpn.dyndns.org」を使用します
- VPNの種類:「IKEv2」を選択します
- サインイン情報の種類:「ユーザー名とパスワード」を選択します
- ユーザー名(オプション):ルーターのローカルRADIUSに登録したユーザー名。ここでは「userA」を使用します
- パスワード(オプション):ルーターのローカルRADIUSに登録したパスワード。ここでは「passwdA」を使用します

- VPNプロバイダー:Windows(ビルトイン)
- 手順5で作成した「native-VPN」の「接続」ボタンの右側にある下向き矢印をクリックし、「詳細オプション」をクリックします。

- 「その他のVPNプロパティ」の「編集」をクリックします。

- 「セキュリティ」タブの「詳細設定」をクリックします。

- 「モビリティ」のチェックを外し、「OK」をクリックします。

- 「ネットワーク」タブにて「インターネットプロトコルバージョン4(TCP/IPv4)」を選択し、「プロパティ」をクリックします。

- 「詳細設定」をクリックします。

- 「リモートネットワークでデフォルトゲートウェイを使う」にチェックを入れ、「OK」をクリックします。

- VPNページで「native-VPN」の「接続」をクリックします。

- 接続名の下に「接続済み」と表示されたら、VPN接続は完了です。

Android用 IKEv2 IPsec VPNクライアント(strongSwan VPN Client)
Android用のVPNクライアントアプリ「strongSwan VPN Client」の設定手順を説明します。- 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)をAndroidデバイスにコピーしてください。
- Google Playストアより「strongSwan VPN Client」をインストールします。
- strongSwan VPN Clientを起動したら、右上の「三点リーダー」をタップし、「CA certificates」を選択します。


- 再度、右上の「三点リーダー」をタップし、「Import certificate」を選択します。


- Androidデバイスに取り込んだ証明書を表示しタップします。

- 取り込む証明書の確認画面が表示されたら「IMPORT CERTIFICATE」をタップし、証明書を取り込みます。

- 取り込まれていることを確認したら、左上の「左矢印」をタップして最初の画面に戻ります。

- 「ADD VPN PROFILE」をタップします。

- 各項目に必要事項を設定後、「SAVE」をタップします。
設定項目は次のとおりです。
- Server:ダイナミックDNSに登録したルーターのホスト名。ここでは「test01-native-vpn.dyndns.org」を使用します
- VPN Type:「IKEv2 EAP (User/Password)」を選択します
- Username:ルーターのローカルRADIUSに登録したユーザー名。ここでは「userB」を使用します
- Password:ルーターのローカルRADIUSに登録したパスワード。ここでは「passwdB」を使用します
- CA Certificate:「Select automatically」をチェックします
- Server:ダイナミックDNSに登録したルーターのホスト名。ここでは「test01-native-vpn.dyndns.org」を使用します
- VPNに接続するには、作成したプロファイルをタップします。

- 次のように表示されたら接続完了です。

iOS標準 IKEv2 IPsec VPNクライアント
iOS標準VPNクライアントの設定手順を説明します。mobileconfigファイルの作成
iOS標準VPNクライアントの設定は、VPN設定情報を記述したコンフィグファイル(構成プロファイル。ファイル拡張子「.mobileconfig」)をあらかじめ作成しておき、これをiOSデバイスにインストールすることで行います。通常、コンフィグファイルはPCなどで作成し、メール添付でiOSデバイスのユーザーに配布したり、WebサイトにアップロードしてiOSデバイスのユーザーがダウンロードできるようにしたりして配布します。
コンフィグファイルの作成手順は次のとおりです。ここでは、PC上で作成するものと仮定します。
- 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)を作業用PCにコピーしてください。
- テキストエディターなどを使って、下記のテンプレートをもとに拡張子 .mobileconfig のコンフィグファイルを作成、保存してください。
<!-- ... --> の部分はコメントのため、変更や削除も可能です。コメント内に書かれた ### 1 ### 形式の番号、および、コメントの後にある <key>項目名</key> は、後の項目解説と対応しています。
また、水色の網かけ部分は値を変更できる、あるいは変更すべき箇所です。項目説明にしたがい、それぞれ適切な内容に変更してください。それ以外の個所には原則として触れないでください。
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <!-- ### 1 ### Set the name to whatever you like, it is used in the profile list on the device --> <key>PayloadDisplayName</key> <string>native-vpn</string> <!-- ### 2 ### This is a reverse-DNS style unique identifier used to detect duplicate profiles --> <key>PayloadIdentifier</key> <string>dut.example.com</string> <!-- ### 3 ### A globally unique identifier, use uuidgen on Linux/Mac OS X to generate it, or a tool like https://www.uuidgenerator.net/ --> <key>PayloadUUID</key> <string>6d598d21-a9d2-43e9-991f-c1677afafd41</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadContent</key> <array> <!-- It is possible to add multiple VPN payloads with different identifiers/UUIDs and names --> <dict> <!-- ### 4 ### This is an extension of the identifier given above --> <key>PayloadIdentifier</key> <string>dut.example.com.conf2</string> <!-- ### 5 ### A globally unique identifier for this payload --> <key>PayloadUUID</key> <string>995fb7f8-b455-42b6-9af9-fbfc3f78f403</string> <key>PayloadType</key> <string>com.apple.vpn.managed</string> <key>PayloadVersion</key> <integer>1</integer> <!-- ### 6 ### This is the name of the VPN connection as seen in the VPN application later --> <key>UserDefinedName</key> <string>native-vpn</string> <key>VPNType</key> <string>IKEv2</string> <key>IKEv2</key> <dict> <!-- ### 7 ### Hostname or IP address of the VPN server --> <key>RemoteAddress</key> <string>test01-native-vpn.dyndns.org</string> <!-- ### 8 ### Remote identity, can be a FQDN, a userFQDN, an IP or (theoretically) a certificate's subject DN. Can't be empty. IMPORTANT: DNs are currently not handled correctly, they are always sent as identities of type FQDN --> <key>RemoteIdentifier</key> <string>test01-native-vpn.dyndns.org</string> <!-- ### 9 ### Local IKE identity, same restrictions as above. If it is empty the client's IP address will be used --> <key>LocalIdentifier</key> <string>userC</string> <!-- The server is authenticated using a certificate --> <key>AuthenticationMethod</key> <string>Certificate</string> <!-- The client uses EAP to authenticate --> <key>ExtendedAuthEnabled</key> <integer>1</integer> <!-- ### 10 ### User name for EAP authentication. Since iOS 9 this is optional, the user is prompted when the profile is installed --> <key>AuthName</key> <string>userC</string> <!-- ### 11 ### Optional password for EAP authentication, if it is not set the user is prompted when the profile is installed --> <key>AuthPassword</key> <string></string> <!-- The next two dictionaries are optional (as are the keys in them), but it is recommended to specify them as the default is to use 3DES. IMPORTANT: Because only one proposal is sent (even if nothing is configured here) it must match the server configuration --> <key>IKESecurityAssociationParameters</key> <dict> <!-- @see https://developer.apple.com/documentation/networkextension/nevpnikev2encryptionalgorithm --> <key>EncryptionAlgorithm</key> <string>AES-256</string><!-- Alternatives include: AES-256, AES-256-GCM, etc --> <!-- @see https://developer.apple.com/documentation/networkextension/nevpnikev2integrityalgorithm --> <key>IntegrityAlgorithm</key> <string>SHA2-256</string><!-- Alternatives include: SHA2-256, SHA2-512, etc --> <!-- @see https://developer.apple.com/documentation/networkextension/nevpnikev2diffiehellmangroup --> <key>DiffieHellmanGroup</key> <integer>14</integer><!-- Alternatives include 20, 21, 31, etc --> </dict> <key>ChildSecurityAssociationParameters</key> <dict> <key>EncryptionAlgorithm</key> <string>AES-256</string><!-- Alternatives include: AES-256, AES-256-GCM, etc --> <key>IntegrityAlgorithm</key> <string>SHA2-256</string><!-- Alternatives include: SHA2-256, SHA2-512, etc --> <key>DiffieHellmanGroup</key> <integer>14</integer><!-- Alternatives include 20, 21, 31, etc --> </dict> </dict> </dict> <!-- Provide the CA certificate too... --> <dict> <!-- ### 12 ### --> <key>PayloadIdentifier</key> <string>cacert.cer</string> <!-- ### 13 ### Another UUID as above, generate with uuidgen on Linux / Mac or a tool like https://www.uuidgenerator.net/ --> <key>PayloadUUID</key> <string>c6b0d13f-2aea-4420-a6f3-e4a02987ab26</string> <key>PayloadType</key> <string>com.apple.security.root</string> <key>PayloadVersion</key> <integer>1</integer> <!-- ### 14 ### This is the Base64 (PEM) encoded CA certificate. Ensure there are no leading spaces on each line. --> <key>PayloadContent</key> <data>MIIDdDCCAlygAwIBAgIJAMiyUsFb3mfKMA0GCSqGSIb3DQEBCwUAMEoxHTAbBgNV BAoMFEFsbGllZCBUZWxlc2lzLCBJbmMuMSkwJwYDVQQDDCBBbGxpZWRXYXJlUGx1 c0NBQTA1MDQ5MDAwMDAwMDAwMDAeFw0xNTA3MzAxMjI3NDhaFw0yNTA3MjcxMjI3 NDhaMEoxHTAbBgNVBAoMFEFsbGllZCBUZWxlc2lzLCBJbmMuMSkwJwYDVQQDDCBB bGxpZWRXYXJlUGx1c0NBQTA1MDQ5MDAwMDAwMDAwMDCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBAO1PtX5iOAP8fIOwHy1Gb1D2ZnNTGDVA/6/mWE7UJCU2 RA2pk6nwcTSyKtFIHKYMW+Zfu+K07NZzoNIENwVJoPSwdI4kSAVu6NBnWvQyTd1e yOvia6saU743p7eeiAUNOBNEFHw10wjvH0bG/8XdYZ+ZsKUroIozSKrakh0uCT/H /luAEAwuTNRxWWyfyNKOjCfC7eunPREubyVeKhnVdjZOYJllzf7y62baxfFmmRx3 FhzYZ8fI7fgvsZXmOu648jlEJzZvB+NT2hIc6Zrr/OQdpvfpa1R1e84RYcdQpI84 QjzDkxKj5xXGR25PqIqbm1Hha49HbgGLP1RgfWfPircCAwEAAaNdMFswHQYDVR0O BBYEFDKQyulFnc+P+cKNyoSUq2DiBCyvMB8GA1UdIwQYMBaAFDKQyulFnc+P+cKN yoSUq2DiBCyvMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB CwUAA4IBAQDsLgLmtZTLutmwQn9IvVxMHOZt1lR55y4Ol2gaScb2qUZ8Ow8+AxXA NfPevFPXwhs+0KwidOeJi1qrnBsbkrhea2T6AD13yHjLi+V/9xoL4QNaoP1C76e/ afYadCePY5KTcBw3J1uqZiIIZ8ZnuNLbWUEQPGoQhEwL2wbU1iQH9Xl1VfZZU477 bKgcQ/xwAn41MzH2kwbfe4iNfVhD6rcoFmFt+6x61oK/lsdyGHcJcXeR549Oaq6r a3J7+poja/k6P95uGKNq9gYIOkyATryot917Fjby16P3THmdg/eNlHPSpEExAnW0 5ZIw3kPC6CWlYqzYGLya73Ogh66h0Qra</data> </dict> </array> </dict> </plist>
以下、編集可能な値について説明します。
番号と項目名は、前記テンプレートのコメント内に記述した ### 1 ### のような箇所、および、コメントの後にある <key>項目名</key> と対応しています。
番号 項目名(key) 説明 1 PayloadDisplayName 表示名。クライアント(iOSデバイス)の詳細画面においてプロファイル名として表示されます。一意である必要はありません 2 PayloadIdentifier ペイロード識別子。同一クライアント上において他のPayloadIdentifierと重複しない任意の文字列を指定します 3 PayloadUUID UUID(Universally Unique Identifier)。ツール等によって生成したグローバルで一意の値を指定します 4 PayloadIdentifier ペイロード識別子。同一クライアント上において他のPayloadIdentifierと重複しない任意の文字列を指定します 5 PayloadUUID UUID(Universally Unique Identifier)。ツール等によって生成したグローバルで一意の値を指定します 6 UserDefinedName クライアントの画面に表示されるVPN接続の名前です 7 RemoteAddress FQDN形式のVPN接続先。ダイナミックDNSに登録したルーターのホスト名を指定します 8 RemoteIdentifier リモート識別子。項目番号7のRemoteAddressと同じ値を設定する必要があります 9 LocalIdentifier ローカル識別子。本製品上でshow isakmp sa、show ipsec saコマンドを実行した際に対向として表示されます 10 AuthName VPNユーザー名。ローカルRADIUSサーバーに登録したユーザー名を記述します 11 AuthPassword VPNユーザーパスワード。パスワードはコンフィグファイルのインストール時に入力するため、ここは空文字列にします 12 PayloadIdentifier ペイロード識別子。同一クライアント上において他のPayloadIdentifierと重複しない任意の文字列を指定します。この例ではローカルCA証明書ファイルの名前にしています 13 PayloadUUID UUID(Universally Unique Identifier)。ツール等によって生成したグローバルで一意の値を指定します 14 PayloadContent ローカルCA証明書の内容。本製品から作業用PCに転送したCA証明書ファイル(cacert.cer)をテキストエディタで開き、-----BEGIN CERTIFICATE----- と -----END CERTIFICATE----- の間にある部分をコピー&ペーストしてください(BEGIN/END 行は含めません)。
(CA証明書の内容はcrypto pki export pemコマンドのterminalオプションで画面に表示させることもできます)
<data>タグの直後や、後続行の行頭にスペースを入れないよう注意してください
- 作成したコンフィグファイルをメールの添付ファイルとしてユーザーに配布するか、Webページ上からダウンロードできるようにしてください。
クライアントのVPN接続設定
- コンフィグファイル(拡張子 .mobileconfig)をiOSデバイスにダウンロードしてください。
- コンフィグファイルをタップします。
「このWebサイトは構成プロファイルをダウンロードしようとしています。許可しますか?」と表示されたら「許可」をタップします。

- 「プロファイルがダウンロード済み」と表示されたら「閉じる」をタップします。

- 「設定」アプリを開き「プロファイルがダウンロード済み」をタップします。

- プロファイルが表示されたら右上の「インストール」をタップします。

- お使いのiOS機器のパスコードを入力します。

- 警告が表示されたら右上の「インストール」をタップします。

- 「インストール」をタップします。

- VPN接続ユーザーのパスワード(ここでは「passwdC」)を入力して「次へ」をタップします。

- 右上の「完了」をタップします。

- 「設定」アプリに「VPN」が表示されますので、「VPN」をオンにします。

- 接続試行中は「VPNに接続中...」と表示されます。

- 「VPNに接続中...」から「VPN」に表示が切り替わり、画面右上に「VPN」が数秒表示されたら接続完了です。

ルーターのコンフィグ
! no spanning-tree rstp enable ! ip domain-lookup ! ddns enable ! ddns-update-method dyndns update-url https://<USERNAME>:<PASSWORD>@members.dyndns.org/nic/update?SYSTEM=dyndns&hostname=<HOST-NAME>&myip=<IPADDRESS> host-name test01-native-vpn.dyndns.org username test password test update-interval 60 retry-interval 1 maximum-retries 5 ! interface eth1 encapsulation ppp 0 ! interface ppp0 ip ddns-update-method dyndns ppp ipcp dns request keepalive ip address negotiated ppp username user@isp ppp password isppasswd ip tcp adjust-mss pmtu ! interface vlan1 ip address 192.168.10.1/24 ! zone private network lan ip subnet 192.168.10.0/24 ip subnet 192.168.20.0/24 ! zone public network wan ip subnet 0.0.0.0/0 interface ppp0 host ppp0 ip address dynamic interface ppp0 ! application esp protocol 50 ! application isakmp protocol udp dport 500 ! application nat-t protocol udp dport 4500 ! firewall rule 10 permit any from private to private rule 20 permit any from private to public rule 30 permit isakmp from public.wan to public.wan.ppp0 rule 40 permit isakmp from public.wan.ppp0 to public.wan rule 50 permit esp from public.wan to public.wan.ppp0 rule 60 permit esp from public.wan.ppp0 to public.wan rule 70 permit nat-t from public.wan to public.wan.ppp0 rule 80 permit nat-t from public.wan.ppp0 to public.wan rule 90 permit https from public.wan.ppp0 to public.wan rule 100 permit dns from public.wan.ppp0 to public.wan protect ! nat rule 10 masq any from private to public enable ! radius-server host localhost key awplus-local-radius-server ! aaa authentication isakmp default group radius ! crypto pki trustpoint local subject-alt-name test01-native-vpn.dyndns.org subject-name /O=AlliedTelesis/CN=test01-native-vpn.dyndns.org ! radius-server local server enable nas 127.0.0.1 key awplus-local-radius-server group userA attribute Framed-IP-Address 192.168.20.2 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 group userB attribute Framed-IP-Address 192.168.20.3 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 group userC attribute Framed-IP-Address 192.168.20.4 attribute Framed-IP-Netmask 255.255.255.0 attribute MS-Primary-DNS-Server 192.168.20.1 user userA password passwdA group userA user userB password passwdB group userB user userC password passwdC group userC ! ip dns forwarding ! crypto isakmp profile native-vpn version 2 local authentication certificate configuration-attribute radius remote authentication eap-radius lifetime 25200 pki trustpoint local transform 1 integrity SHA256 encryption AES256 group 14 transform 2 integrity SHA256 encryption AES256 group 2 ! crypto isakmp peer policy tunnel0 profile native-vpn ! interface tunnel0 tunnel local name test01-native-vpn.dyndns.org tunnel protection ipsec tunnel mode ipsec multipoint ip address 192.168.20.1/24 ip tcp adjust-mss pmtu ! ip route 0.0.0.0/0 ppp0 ! end