設定例集#104: Windows 10・Android・iOSのIKEv2 IPsec VPNクライアントを利用したリモートアクセス型IPsec VPN


構成
設定開始前に
自動設定の確認と削除
システム時刻の設定
ルーターの設定
設定の保存
ファイアウォールログについて
VPNクライアントの設定
全クライアント共通:証明書の準備
ローカルCAによるサーバー証明書の発行
ローカルCA証明書のファイルへの書き出し
Windows 10標準 IKEv2 IPsec VPNクライアント
ローカルCA証明書のクライアントへのインストール
クライアントのVPN接続設定
Android用 IKEv2 IPsec VPNクライアント(strongSwan VPN Client)
iOS標準 IKEv2 IPsec VPNクライアント
mobileconfigファイルの作成
クライアントのVPN接続設定
ルーターのコンフィグ



Windows 10、Android(バージョン8以降)、iOS(バージョン12以降)から、インターネット経由で本製品のLAN側プライベートネットワークにアクセスさせるリモートアクセス型VPNの設定例です。

各OSの設定方法は以下のとおりです。

本製品の設定ポイントは次のとおりです。

構成

ISPから提供された情報
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
ダイナミックDNSサーバー情報
サーバーのFQDN members.dyndns.org
サーバーのTCPポート番号 443
ダイナミックDNSクライアント情報
サーバー接続用ユーザー名 test
サーバー接続用パスワード test
ホスト名 test01-native-vpn.dyndns.org
IPアドレスを登録するインターフェース ppp0

VPNクライアントのアカウント情報
VPNユーザー
ユーザー名
パスワード
IPアドレス
ユーザー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 を実行し、スタートアップコンフィグが存在しない状態で起動してから、設定を始めてください。

ただし、本製品はスタートアップコンフィグなしで起動した場合でも、特定の条件を満たすと自動的な設定を行うことがあるため、その場合は設定例にしたがってコマンドを入力しても、コマンドがエラーになったり、全体として意図した動作にならない可能性があります。

これを避けるため、設定開始にあたっては次のいずれかの方法をとることをおすすめします。
自動設定が行われる条件などの詳細については、AMF応用編のAMFネットワーク未検出時の拡張動作をご参照ください。

システム時刻の設定

ログなどの記録日時を正確に保ち、各種機能を適切に動作させるため、システム時刻は正確にあわせて運用することをおすすめします。
特に本製品はリアルタイムクロックを内蔵していないため、起動するたびに時刻をあわせる必要があります。
ご使用の環境にあわせ、次のいずれかの方法でシステム時刻を設定してください。

ルーターの設定

  1. ダイナミックDNSクライアント機能を有効にします。これには、ddns enableコマンドを使います。
    ダイナミックDNSクライアント機能の詳細は「IP付加機能」/「ダイナミックDNSクライアント」をご覧ください。
    ddns enable
    
  2. ダイナミックDNSサービス固有の設定を行います。これには、ddns-update-methodコマンドでDDNSアップデートメソッドモードに入り、update-urlhost-nameusernamepasswordupdate-intervalretry-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
    
  3. WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface eth1
     encapsulation ppp 0
    
  4. 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
    
  5. LAN側インターフェースvlan1にIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface vlan1
     ip address 192.168.10.1/24
    
  6. ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    内部ネットワークを表すゾーン「private」を作成します。
    これには、zonenetworkip subnetの各コマンドを使います。
    zone private
     network lan
      ip subnet 192.168.10.0/24
      ip subnet 192.168.20.0/24
    
  7. 外部ネットワークを表すゾーン「public」を作成します。
    これには、前記コマンドに加え、hostip addressの各コマンドを使います。
    zone public
     network wan
      ip subnet 0.0.0.0/0 interface ppp0
      host ppp0
       ip address dynamic interface ppp0
    
  8. ファイアウォールやNATのルール作成時に通信内容を指定するために使う「アプリケーション」を定義します。
    これには、applicationprotocolsportdporticmp-typeicmp-codeの各コマンドを使います。
    アプリケーション定義の詳細は「UTM」/「アプリケーション定義」をご覧ください。

    IPsecのESPパケットを表すカスタムアプリケーション「esp」を定義します。
    application esp
     protocol 50
    
  9. ISAKMPパケットを表すカスタムアプリケーション「isakmp」を定義します。
    application isakmp
     protocol udp
     dport 500
    
  10. NAT-Traversalパケットを表すカスタムアプリケーション「nat-t」を定義します。
    application nat-t
     protocol udp
     dport 4500
    
  11. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewallruleprotectの各コマンドを使います。

    ・rule 10 - 内部から内部への通信を許可します
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30, 40 - ISAKMPパケットを許可します
    ・rule 50, 60 - IPsec(ESP)パケットを許可します
    ・rule 70, 80 - NAT-Traversalパケットを許可します
    ・rule 90 - ダイナミックDNSサーバーにアクセスしてIPアドレスを登録するため、本製品のWAN側インターフェースから外部へのHTTPS通信を許可します

    ファイアウォールの詳細は「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
     protect
    
  12. LAN側ネットワークに接続されているすべてのコンピューターがダイナミックENAT機能を使用できるよう設定します。
    これには、natruleenableの各コマンドを使います。
    NATの詳細は「UTM」/「NAT」をご覧ください。
    nat
     rule 10 masq any from private to public
     enable
    
  13. RADIUSクライアント機能が使用するRADIUSサーバーを登録します。これにはradius-server hostコマンドを使います。
    ここでは、本製品内蔵のローカルRADIUSサーバーを指定しています。
    RADIUSクライアント機能の詳細は「運用・管理」/「RADIUSクライアント」を、ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
    radius-server host localhost key awplus-local-radius-server
    
  14. VPNクライアントのISAKMP認証に使用するRADIUSサーバーを指定します。これにはaaa authentication isakmpコマンドを使います。
    aaa authentication isakmp default group radius
    
  15. サーバー(本製品)側のISAKMP認証に必要なCA証明書とサーバー証明書を準備するため、ローカルCAの設定を行います。

    ・ローカルCA「local」のセットアップ(crypto pki trustpoint
    ・ローカルCAが発行するサーバー証明書のサブジェクト代替名(subject-alt-name
    ・ローカルCAが発行するサーバー証明書のサブジェクト名(subject-name

    ローカルCAの詳細は「運用・管理」/「ローカルCA」をご覧ください。
    crypto pki trustpoint local
     subject-alt-name test01-native-vpn.dyndns.org
     subject-name /O=AlliedTelesis/CN=test01-native-vpn.dyndns.org
    
  16. ローカルRADIUSサーバーにVPNユーザーを登録します。
    これには、radius-server localserver enablenasgroupattributeuserの各コマンドを使います。
    ローカル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
    
  17. DNSリレー機能を有効にします。これには、ip dns forwardingコマンドを使います。
    DNSリレー機能の詳細は「IP付加機能」/「DNSリレー」をご覧ください。
    ip dns forwarding
    
  18. リモートアクセス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
    
  19. 前の手順で作成したISAKMPプロファイル「native-vpn」を、この後で作成するマルチポイントIPsecトンネルインターフェースtunnel0に割り当てます。これには crypto isakmp peerコマンドを使います。
    crypto isakmp peer policy tunnel0 profile native-vpn
    
  20. マルチポイント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
    
  21. デフォルト経路をPPPインターフェースppp0に向けます。これにはip routeコマンドを使います。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 ppp0
    
  22. 以上で設定は完了です。
    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 10、Android、iOSの各VPNクライアントの設定手順を説明します。
なお、どのVPNクライアントでも本製品のローカルCA証明書が必要なため、最初に「全クライアント共通:証明書の準備」の手順を実行してから、各クライアントの設定手順に進んでください。

全クライアント共通:証明書の準備

VPNクライアントの設定を行う前に、本製品のCLI上から、以下の手順にしたがって証明書を準備してください。
VPNクライアントの設定時に、ファイルに書き出したローカルCA証明書を使用します。

ローカル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コマンドで確認できます。

ローカルCA証明書のファイルへの書き出し

次に、本製品のCLI上から、ローカルCAの証明書をファイルに書き出します。

■ 特権EXECモードでcrypto pki export pemコマンドを実行してください。同コマンドでは書き出し先のファイル名を指定します。
ファイル名は任意ですが、ここではWindows 10が証明書ファイルと認識する拡張子 .cer をつけています。
awplus# crypto pki export local pem cacert.cer
Copying...
Successful operation

Windows 10標準 IKEv2 IPsec VPNクライアント

Windows 10標準VPNクライアントの設定手順を説明します。

ローカルCA証明書のクライアントへのインストール

Windows 10クライアントが、VPN接続時に本製品のサーバー証明書を検証するためには、ローカルCAの証明書を「信頼されたルート証明機関」としてクライアントにインストールしておく必要があります。
  1. 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)をWindows 10クライアントにコピーしてください。

  2. 保存したファイルをダブルクリックします。


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


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


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


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


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


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


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


クライアントのVPN接続設定

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


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


  3. 左のメニューの「VPN」をクリックします。


  4. 「VPN接続を追加する」をクリックします。


  5. VPN接続を追加します。それぞれ以下を設定してください。
    設定を追加したら「保存」をクリックします。


  6. 「コントロールパネル」の「ネットワークと共有センター」から、「アダプター設定」を開きます。
    手順5で作成した「native-VPN」を右クリックし、「プロパティ」を選択します。


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


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


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


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


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


  12. 「native-VPN」を右クリックし、「接続/切断」を選択します。


  13. 右下にパネルが出力されたら、「native-VPN」をクリックし、「接続」ボタンを押します。


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


Android用 IKEv2 IPsec VPNクライアント(strongSwan VPN Client)

Android用のVPNクライアントアプリ「strongSwan VPN Client」の設定手順を説明します。
  1. 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)をAndroidデバイスにコピーしてください。

  2. Google Playストアより「strongSwan VPN Client」をインストールします。

  3. strongSwan VPN Clientを起動したら、右上の「三点リーダー」をタップし、「CA certificates」を選択します。


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


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


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


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


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


  9. 各項目に必要事項を設定後、「SAVE」をタップします。

    設定項目は次のとおりです。

  10. VPNに接続するには、作成したプロファイルをタップします。


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


iOS標準 IKEv2 IPsec VPNクライアント

iOS標準VPNクライアントの設定手順を説明します。

mobileconfigファイルの作成

iOS標準VPNクライアントの設定は、VPN設定情報を記述したコンフィグファイル(構成プロファイル。ファイル拡張子「.mobileconfig」)をあらかじめ作成しておき、これをiOSデバイスにインストールすることで行います。

通常、コンフィグファイルはPCなどで作成し、メール添付でiOSデバイスのユーザーに配布したり、WebサイトにアップロードしてiOSデバイスのユーザーがダウンロードできるようにしたりして配布します。

コンフィグファイルの作成手順は次のとおりです。ここでは、PC上で作成するものと仮定します。
  1. 事前準備として本製品のファイルシステム上に書き出したCA証明書ファイル(cacert.cer)を作業用PCにコピーしてください。

  2. テキストエディターなどを使って、下記のテンプレートをもとに拡張子 .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 sashow 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>タグの直後や、後続行の行頭にスペースを入れないよう注意してください
    Note
    コンフィグファイル1つに対しそれぞれ異なるUUIDが3つ必要です(項目3、5、13)。UUIDは、Linux、macOS付属のuuidgenコマンドや、その他のUUID生成ツールで生成してください。

  3. 作成したコンフィグファイルをメールの添付ファイルとしてユーザーに配布するか、Webページ上からダウンロードできるようにしてください。

クライアントのVPN接続設定

  1. コンフィグファイル(拡張子 .mobileconfig)をiOSデバイスにダウンロードしてください。

  2. コンフィグファイルをタップします。
    「このWebサイトは構成プロファイルをダウンロードしようとしています。許可しますか?」と表示されたら「許可」をタップします。


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


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


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


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


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


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


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


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


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


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


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


ルーターのコンフィグ

!
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
 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



(C) 2019 - 2021 アライドテレシスホールディングス株式会社

PN: 613-002735 Rev.S