[index] AT-AR2050V/AT-AR3050S/AT-AR4050S コマンドリファレンス 5.5.0

# VPN / OpenVPN

基本設定
OpenVPN Tun(L3)によるルーティング型リモートアクセスVPN
サーバー（本製品）側
クライアント側（参考）
OpenVPN Tap(L2)によるルーティング型リモートアクセスVPN
サーバー（本製品）側
クライアント側（参考）
OpenVPN Tap(L2)によるブリッジ型リモートアクセスVPN
サーバー（本製品）側
クライアント側（参考）
設定と状態の確認
外部のRADIUSサーバーを使用する場合
CA証明書ファイルの配布方法
クライアント設定ファイルとCA証明書ファイルを別ファイルとしてクライアントに配布する
クライアント設定ファイル内にCA証明書のデータを埋め込んで配布する
iOS版クライアントを使用する場合
クライアント設定ファイルの変更

OpenVPNはSSL/TLSをベースに各種機能を組み合わせたオールインワン型のSSL VPNです。
本製品では、WindowsやMacOS X等をクライアントとするリモートアクセス型VPNの構築に使います。
OpenVPNにはTap(L2)、Tun(L3)の2つのモードがあり、それぞれ L2（ブリッジ型またはルーティング型）、L3（ルーティング型）のリモートアクセスに対応できます。
本章ではOpenVPNトンネルインターフェースに特化した説明を行います。
トンネルインターフェース全般については「VPN」/「トンネルインターフェース」を、インターフェース全般については「インターフェース」/「一般設定」をご覧ください。
また、OpenVPNを使用するための具体的かつ全体的な設定については「設定例集」を、サポートするOpenVPNクライアント（OS、アプリケーション）についてはリリースノートをご覧ください。

## 基本設定

OpenVPNではクライアント認証にRADIUSサーバーを使用します。
また、クライアントにIPアドレスなどのネットワーク設定情報を提供する場合にもRADIUSサーバーを使用します。
以下の各例では、本製品のローカルRADIUSサーバーを使うものと仮定しています。
ローカルRADIUSサーバーについては「運用・管理」/「RADIUSサーバー」をご覧ください。
また、OpenVPNサーバーとなる本製品はIPv4でインターネットに接続しているものとします。WAN側インターフェースのIPアドレスは固定であり、クライアント・本製品間でIPv4の通信ができる状態になっているものとします。

> Note

> > OpenVPNトンネルインターフェースは同時に2つまで使用可能です（TunモードとTapモードを1つずつ）。なお、2つ同時に使用する場合は、各トンネルインターフェースで異なるUDPポート番号を使用するよう設定してください（tunnel openvpn portコマンド）。

### OpenVPN Tun(L3)によるルーティング型リモートアクセスVPN

この構成は、OpenVPNクライアント（Windows、MacOS X）が本製品のOpenVPNトンネルインターフェースとポイントツーポイントで接続されているイメージです。クライアントとLAN側の通信はルーティングによって行われます。クライアントのIP設定情報はRADIUS属性によって提供します。

#### サーバー（本製品）側

1. ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
   ここでは、userA、userB、userCという3人のユーザーを登録するものとします。
   - ローカルRADIUSサーバーの設定を開始します。これには、radius-server localコマンドを実行します。
     初回実行時のみ、ローカルCA（ローカルなルート認証局）の初期設定（自署ルートCA証明書の発行など）やサーバー証明書の発行などが自動的に行われ、またローカルホスト（127.0.0.1）をRADIUSクライアント（NAS）として自動登録します。

         awplus(config)# radius-server local ↓
         Created trustpoint "local".
         Generating 2048-bit key for local CA...
         Automatically authenticated trustpoint "local".
         Automatically enrolled the local server to trustpoint "local".

   - ネットワーク設定情報を提供するため、ユーザーごとにユーザーグループを作成し、IPアドレスやスタティック経路、DNSサーバーアドレスなどの指定を行います。ユーザーグループの作成はgroupで、各種情報の指定はattributeでおこないます。
     ユーザーuserA

         awplus(config-radsrv)# group userA ↓
         awplus(config-radsrv-group)# attribute Service-Type Authenticate-Only ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Address 192.168.254.231 ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Netmask 255.255.255.0 ↓
         awplus(config-radsrv-group)# attribute Framed-Route "192.168.10.0/24 192.168.254.1" ↓
         awplus(config-radsrv-group)# attribute MS-Primary-DNS-Server 192.168.10.5 ↓
         awplus(config-radsrv-group)# exit ↓

     ユーザーuserB

         awplus(config-radsrv)# group userB ↓
         awplus(config-radsrv-group)# attribute Service-Type Authenticate-Only ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Address 192.168.254.232 ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Netmask 255.255.255.0 ↓
         awplus(config-radsrv-group)# attribute Framed-Route "192.168.10.0/24 192.168.254.1" ↓
         awplus(config-radsrv-group)# attribute MS-Primary-DNS-Server 192.168.10.5 ↓
         awplus(config-radsrv-group)# exit ↓

     ユーザーuserC

         awplus(config-radsrv)# group userC ↓
         awplus(config-radsrv-group)# attribute Service-Type Authenticate-Only ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Address 192.168.254.233 ↓
         awplus(config-radsrv-group)# attribute Framed-IP-Netmask 255.255.255.0 ↓
         awplus(config-radsrv-group)# attribute Framed-Route "192.168.10.0/24 192.168.254.1" ↓
         awplus(config-radsrv-group)# attribute MS-Primary-DNS-Server 192.168.10.5 ↓
         awplus(config-radsrv-group)# exit ↓

   - ユーザーを登録します。これには、userの各コマンドを使います。
     ユーザー名、パスワードに加え、groupパラメーターでネットワーク設定情報を含むユーザーグループを指定しています。

         awplus(config-radsrv)# user userA password passwordA group userA ↓
         awplus(config-radsrv)# user userB password passwordB group userB ↓
         awplus(config-radsrv)# user userC password passwordC group userC ↓

   - ローカルRADIUSサーバーを有効化します。これには、server enableコマンドを使います。

         awplus(config-radsrv)# server enable ↓
         awplus(config-radsrv)# exit ↓

2. OpenVPNで使用するRADIUSサーバーを登録します。これには、radius-server hostコマンドとaaa authentication openvpnコマンドを使います。

       awplus(config)# radius-server host 127.0.0.1 key awplus-local-radius-server ↓
       awplus(config)# aaa authentication openvpn default group radius ↓

3. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       awplus(config)# interface tunnel0 ↓

4. トンネリング方式としてopenvpn tunを指定します。これには、tunnel mode openvpn tunコマンドを使います。

       awplus(config-if)# tunnel mode openvpn tun ↓

5. トンネルインターフェースtunnel0にIPアドレスを設定して、同インターフェースでIPv4パケットのルーティングが行われるようにします。これには、ip addressコマンドを使います。

       awplus(config-if)# ip address 192.168.254.1/24 ↓

インターフェースへのIPアドレス設定については「IP」/「IPインターフェース」を、IPの経路設定については「IP」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

#### クライアント側（参考）

本構成における、Windows版クライアントの設定ファイル例を示します。
[tun_client.ovpn]

    client
    dev tun
    proto udp
    remote 10.1.1.1
    topology subnet
    nobind
    ca cacert.pem
    persist-key
    persist-tun
    cipher AES-128-CBC
    verb 3
    auth-user-pass

> Note

> > 上記の設定ファイル例は参考のために示した最小限の設定であり、動作を保証するものではありません。使用するクライアントやそのバージョン、OS、ネットワーク環境などによって必要な設定は異なりますので、あらかじめご了承ください。なお、OpenVPNを使用するための具体的かつ全体的な設定については「設定例集」もご参照ください。

> Note

> > iOS版クライアントを使用する場合はクライアント設定ファイルの変更が必要です。詳しくは「iOS版クライアントを使用する場合」をご覧ください。

> Note

> > caオプションで指定するCA証明書ファイルの配布方法については、「CA証明書ファイルの配布方法」をご覧ください。

### OpenVPN Tap(L2)によるルーティング型リモートアクセスVPN

この構成は、OpenVPNクライアント（Windows、MacOS X）が本製品のOpenVPNトンネルインターフェースとEthernetで接続されているイメージです。クライアントとLAN側の通信はルーティングによって行われます。

OpenVPN Tap(L2)トンネルインターフェースを使用する場合は、クライアントのIP設定情報をRADIUS属性だけでなく、DHCPで提供することも可能です。
以下の例では、本製品のDHCPサーバー機能を利用してOpenVPNクライアントにIPアドレスなどの情報を提供しています。

> Note

> > Android版およびiOS版クライアントではTap(L2)モードでのOpenVPN接続が未サポートのため、本構成は使用できません。

#### サーバー（本製品）側

1. ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
   ここでは、userA、userB、userCという3人のユーザーを登録するものとします。
   - ローカルRADIUSサーバーの設定を開始します。これには、radius-server localコマンドを実行します。
     初回実行時のみ、ローカルCA（ローカルなルート認証局）の初期設定（自署ルートCA証明書の発行など）やサーバー証明書の発行などが自動的に行われ、またローカルホスト（127.0.0.1）をRADIUSクライアント（NAS）として自動登録します。

         awplus(config)# radius-server local ↓
         Created trustpoint "local".
         Generating 2048-bit key for local CA...
         Automatically authenticated trustpoint "local".
         Automatically enrolled the local server to trustpoint "local".

   - ユーザーを登録します。これには、userの各コマンドを使います。
     この例ではIP設定情報をDHCPで提供するためユーザーグループの設定は不要です。

         awplus(config-radsrv)# user userA password passwordA ↓
         awplus(config-radsrv)# user userB password passwordB ↓
         awplus(config-radsrv)# user userC password passwordC ↓

   - ローカルRADIUSサーバーを有効化します。これには、server enableコマンドを使います。

         awplus(config-radsrv)# server enable ↓
         awplus(config-radsrv)# exit ↓

2. OpenVPNで使用するRADIUSサーバーを登録します。これには、radius-server hostコマンドとaaa authentication openvpnコマンドを使います。

       awplus(config)# radius-server host 127.0.0.1 key awplus-local-radius-server ↓
       awplus(config)# aaa authentication openvpn default group radius ↓

3. IP設定情報を提供するため、DHCPサーバーの設定を行います。
   DHCPサーバー機能の詳細については「IP付加機能」/「DHCPサーバー」をご覧ください。

       awplus(config)# ip dhcp option 121 name Classless-Static-Route hex   ↓
       awplus(config)# ip dhcp pool pool254 ↓
       awplus(dhcp-config)# network 192.168.254.0 255.255.255.0 ↓
       awplus(dhcp-config)# range 192.168.254.231 192.168.254.240 ↓
       awplus(dhcp-config)# dns-server 192.168.10.5 ↓
       awplus(dhcp-config)# option Classless-Static-Route 18c0a80ac0a8fe01 ↓
       awplus(dhcp-config)# lease 0 2 0 ↓

   > Note

   > > ここでは、ip dhcp optionコマンドで定義した DHCPオプション121（Classless Static Route Option）を用いてスタティック経路を通知しています。
   > > optionコマンドで指定している `18c0a80ac0a8fe01` は、各経路の「宛先ネットワークマスク長、宛先ネットワークアドレス、ネクストホップアドレス」を16進数表記で連結したもので、次のように解釈します。

   > > 16進表記 | 10進表記 | 説明
   > > 経路エントリー #1 (宛先 192.168.10/24 ネクストホップ 192.168.254.1）
   > > `18` | `24` | 宛先マスク長
   > > `c0 a8 0a` | `192 168 10` | 宛先アドレス
   > > `c0 a8 fe 01` | `192 168 254 1` | ネクストホップアドレス

4. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       awplus(config)# interface tunnel0 ↓

5. トンネリング方式としてopenvpn tapを指定します。これには、tunnel mode openvpn tapコマンドを使います。

       awplus(config-if)# tunnel mode openvpn tap ↓

6. トンネルインターフェースtunnel0にIPアドレスを設定して、同インターフェースでIPv4パケットのルーティングが行われるようにします。これには、ip addressコマンドを使います。

       awplus(config-if)# ip address 192.168.254.1/24 ↓

インターフェースへのIPアドレス設定については「IP」/「IPインターフェース」を、IPの経路設定については「IP」/「経路制御」、および、ダイナミックルーティングに関する各セクションをご覧ください。

#### クライアント側（参考）

本構成における、Windows版クライアントの設定ファイル例を示します。
[tap_client.ovpn]

    client
    dev tap
    proto udp
    remote 10.1.1.1
    nobind
    ca cacert.pem
    persist-key
    persist-tun
    cipher AES-128-CBC
    verb 3
    auth-user-pass

> Note

> > 上記の設定ファイル例は参考のために示した最小限の設定であり、動作を保証するものではありません。使用するクライアントやそのバージョン、OS、ネットワーク環境などによって必要な設定は異なりますので、あらかじめご了承ください。なお、OpenVPNを使用するための具体的かつ全体的な設定については「設定例集」もご参照ください。

> Note

> > Android版およびiOS版クライアントではTap(L2)モードでのOpenVPN接続は未サポートです。

> Note

> > caオプションで指定するCA証明書ファイルの配布方法については、「CA証明書ファイルの配布方法」をご覧ください。

### OpenVPN Tap(L2)によるブリッジ型リモートアクセスVPN

この構成は、OpenVPNクライアント（Windows、MacOS X）が本製品のLAN側（vlan1）に直接接続されているイメージです。クライアントとLAN側の通信はブリッジングによって行われます。また、vlan1以外のネットワークとの通信はブリッジインターフェース（brX）を経由するルーティングで行われます。また、クライアントのIP設定情報はLAN側に設置されているDHCPサーバーによって提供します。

> Note

> > Android版およびiOS版クライアントではTap(L2)モードでのOpenVPN接続が未サポートのため、本構成は使用できません。

#### サーバー（本製品）側

1. ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
   ここでは、userA、userB、userCという3人のユーザーを登録するものとします。
   - ローカルRADIUSサーバーの設定を開始します。これには、radius-server localコマンドを実行します。
     初回実行時のみ、ローカルCA（ローカルなルート認証局）の初期設定（自署ルートCA証明書の発行など）やサーバー証明書の発行などが自動的に行われ、またローカルホスト（127.0.0.1）をRADIUSクライアント（NAS）として自動登録します。

         awplus(config)# radius-server local ↓
         Created trustpoint "local".
         Generating 2048-bit key for local CA...
         Automatically authenticated trustpoint "local".
         Automatically enrolled the local server to trustpoint "local".

   - ユーザーを登録します。これには、userの各コマンドを使います。
     この例ではIP設定情報をLAN上に存在するDHCPで提供するためユーザーグループの設定は不要です。

         awplus(config-radsrv)# user userA password passwordA ↓
         awplus(config-radsrv)# user userB password passwordB ↓
         awplus(config-radsrv)# user userC password passwordC ↓

   - ローカルRADIUSサーバーを有効化します。これには、server enableコマンドを使います。

         awplus(config-radsrv)# server enable ↓
         awplus(config-radsrv)# exit ↓

2. OpenVPNで使用するRADIUSサーバーを登録します。これには、radius-server hostコマンドとaaa authentication openvpnコマンドを使います。

       awplus(config)# radius-server host 127.0.0.1 key awplus-local-radius-server ↓
       awplus(config)# aaa authentication openvpn default group radius ↓

3. トンネルインターフェースtunnel0を作成します。これにはinterfaceコマンドを使います。

       awplus(config)# interface tunnel0 ↓

4. トンネリング方式としてopenvpn tapを指定します。これには、tunnel mode openvpn tapコマンドを使います。

       awplus(config-if)# tunnel mode openvpn tap ↓

5. ソフトウェアブリッジ「1」を作成します。これには、bridgeコマンドを使います。

       awplus(config-if)# exit ↓
       awplus(config)# bridge 1 ↓

6. ソフトウェアブリッジ「1」にvlan1を追加します。これには、bridge-groupコマンドを使います。

       awplus(config)# interface vlan1 ↓
       awplus(config-if)# bridge-group 1 ↓
       awplus(config-if)# exit ↓

7. ソフトウェアブリッジ「1」にtunnel0を追加します。これには、bridge-groupコマンドを使います。

       awplus(config)# interface tunnel0 ↓
       awplus(config-if)# mtu 1500 ↓
       awplus(config-if)# bridge-group 1 ↓
       awplus(config-if)# exit ↓

8. ソフトウェアブリッジ「1」を表すブリッジインターフェースbr1にIPアドレスを設定し、ソフトウェアブリッジ「1」と他のインターフェースの間でルーティングを行えるようにします。これには、ip addressコマンドを使います。

       awplus(config)# interface br1 ↓
       awplus(config-if)# ip address 192.168.10.1/24 ↓

ブリッジングについては、「ブリッジング」/「一般設定」をご覧ください。

#### クライアント側（参考）

本構成におけるWindows版クライアントの設定ファイル例を示します。
[tap_client.ovpn]

    client
    dev tap
    proto udp
    remote 10.1.1.2
    nobind
    ca cacert.pem
    persist-key
    persist-tun
    verb 3
    auth-user-pass
    cipher AES-128-CBC

> Note

> > 上記の設定ファイル例は参考のために示した最小限の設定であり、動作を保証するものではありません。使用するクライアントやそのバージョン、OS、ネットワーク環境などによって必要な設定は異なりますので、あらかじめご了承ください。なお、OpenVPNを使用するための具体的かつ全体的な設定については「設定例集」もご参照ください。

> Note

> > Android版およびiOS版クライアントではTap(L2)モードでのOpenVPN接続は未サポートです。

> Note

> > caオプションで指定するCA証明書ファイルの配布方法については、「CA証明書ファイルの配布方法」をご覧ください。

## 設定と状態の確認

■ OpenVPNトンネルインターフェースの情報はshow interfaceコマンドで確認できます。

    awplus> show interface tunnel0 ↓
    Interface tunnel0
      Link is UP, administrative state is UP
      Hardware is Tunnel
      index 11 metric 1 mtu 1500
      Bridge-group 1 (br1)
      <UP,BROADCAST,RUNNING,PROMISC,MULTICAST>
      SNMP link-status traps: Disabled
      Tunnel source UNKNOWN, destination UNKNOWN
      Tunnel name local awplus, remote  UNKNOWN
      Tunnel ID local (not set), remote (not set)
      Tunnel protocol/transport openvpn tap, key disabled, sequencing disabled
      Tunnel TTL -
      Tunnel RADIUS servers:
        host 127.0.0.1, port 1812
      Checksumming of packets disabled, path MTU discovery disabled
        input packets 1279, bytes 141524, dropped 0, multicast packets 0
        output packets 97, bytes 9760, multicast packets 0 broadcast packets 0
      Time since last state change: 0 days 00:26:27

■ 接続中のOpenVPNクライアントの情報はshow openvpn connectionsコマンド、show openvpn connections detailコマンドで確認できます。

    awplus> show openvpn connections ↓

    Maximum connections: 100

    Interface: tunnel0
                                          Rx      Tx
    Username    Real Address              Bytes   Bytes   Connected Since
    --------------------------------------------------------------------------------
    userA       ::ffff:10.1.252.4         46224   29943   Tue Mar 31 05:40:57 2015
    userB       ::ffff:10.213.82.232      6224    4150    Tue Mar 31 06:40:57 2015
    userC       ::ffff:10.10.10.184       15768   11087   Tue Mar 31 06:43:22 2015

    awplus> show openvpn connections detail ↓

    Interface: tunnel0
     Username: userA
      Route:      192.168.20.0 255.255.255.0 192.168.10.32
      Address:    192.168.10.231 255.255.255.0
      DNS Server: 192.168.10.3
      DNS Server: 192.168.10.4

     Username: userB
      Route:      192.168.20.0 255.255.255.0 192.168.10.32
      Address:    192.168.10.232 255.255.255.0

     Username: userC
      Route:      192.168.20.0 255.255.255.0 192.168.10.32
      Address:    192.168.10.233 255.255.255.0

## 外部のRADIUSサーバーを使用する場合

前記の基本設定例ではOpenVPNクライアントの認証にローカルRADIUSサーバーを使用していますが、外部のRADIUSサーバーを使うこともできます。

> Note

> > ユーザー情報や提供する属性値の登録方法など、外部RADIUSサーバーの設定方法については、ご使用になるRADIUSサーバーのマニュアルをご参照ください。

その場合は、基本設定例に対し、次の変更を加えてください。

1. radius-server hostコマンドでは、ローカルRADIUSサーバーを表す「127.0.0.1」ではなく、外部RADIUSサーバーのアドレスと共有パスワードを指定してください。

       awplus(config)# radius-server host 192.168.10.5 key external-radius-server-password ↓

2. ローカルRADIUSサーバーを使う場合、ローカルRADIUSサーバーのセットアップ過程でOpenVPNのサーバー認証に必要なCA証明書とサーバー証明書が自動的に生成されますが、外部RADIUSサーバーを使う場合は自動生成されていない可能性が高いため、必要な証明書が作られているかどうかを確認します。これには、特権EXECモードのshow crypto pki certificatesコマンドを使います。

   > Note

   > > 現在ローカルRADIUSサーバーを使用していなくても、過去に一度でも設定を行ったことがある場合は証明書が生成されている可能性があります。

       awplus(config)# end ↓
       awplus# show crypto pki certificates ↓

   - 次のように「Self-signed root certificate」（CA証明書）と「Server certificate」（サーバー証明書）が表示される場合は、必要な証明書が存在していますので、これで設定変更は完了です。

         awplus# show crypto pki certificates ↓

         --------------------
         Trustpoint "local" Certificate Chain
         --------------------
         Server certificate
            Subject     : /O=Allied-Telesis/CN=AlliedwarePlusSystem
            Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAA050490000000000
            Valid From  : Jul 30 10:56:08 2015 GMT
            Valid To    : Jul 28 10:56:08 2020 GMT
            Fingerprint : 3A5B3E3B C0A4AE91 96386D8F 45A52EDA 60BA2084

         Self-signed root certificate
            Subject     : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAA050490000000000
            Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAA050490000000000
            Valid From  : Jul 30 10:56:08 2015 GMT
            Valid To    : Jul 27 10:56:08 2025 GMT
            Fingerprint : 8E668937 D96ABC7C A537CA93 E4FFFC60 1CB02C6C

   - 次のように証明書が表示されなかったり、「Self-signed root certificate」（CA証明書）と「Server certificate」（サーバー証明書）のどちらか一方しか表示されない場合は、手順3に進み、不足している証明書を生成してください。

         awplus# show crypto pki certificates ↓
         There are no trustpoints defined.

         awplus# show crypto pki certificates ↓

         --------------------
         Trustpoint "local" Certificate Chain
         --------------------
         Self-signed root certificate
            Subject     : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAA050490000000000
            Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAA050490000000000
            Valid From  : Jul 30 12:23:22 2015 GMT
            Valid To    : Jul 27 12:23:22 2025 GMT
            Fingerprint : 89FAF3C8 FAD1773A 3D34DFA1 2BF4C600 A076B443

3. 手順2の確認で証明書が不足していた場合は、下記の手順にしたがい足りない証明書を生成してください。
   - 手順2で証明書が表示されなかった場合は、crypto pki trustpointコマンドでローカルCAをセットアップしてCA証明書を生成し、続いてcrypto pki enrollコマンドでサーバー証明書を発行します。

         awplus# configure terminal ↓
         Enter configuration commands, one per line.  End with CNTL/Z.

         awplus(config)# crypto pki trustpoint local ↓
         Created trustpoint "local".
         Generating 2048-bit key for local CA...
         Automatically authenticated trustpoint "local".

         awplus(ca-trustpoint)# end ↓
         awplus# crypto pki enroll local ↓
         Using private key "server-default"...
         Successfully enrolled the local server.

   - 手順2で「Self-signed root certificate」の証明書は表示されたものの、「Server certificate」の証明書が表示されなかった場合は、crypto pki enrollコマンドでサーバー証明書だけを発行します。

         awplus# crypto pki enroll local ↓
         Using private key "server-default"...
         Successfully enrolled the local server.

   - 手順2で「Server certificate」の証明書は表示されたものの、「Self-signed root certificate」の証明書が表示されなかった場合、表示された「Server certificate」の証明書は使えないため、何も表示されなかった場合と同様に、crypto pki trustpointコマンドでローカルCAをセットアップしてCA証明書を生成し（このとき既存のサーバー証明書は削除されます）、続いてcrypto pki enrollコマンドでサーバー証明書を発行します。

         awplus# configure terminal ↓
         Enter configuration commands, one per line.  End with CNTL/Z.

         awplus(config)# crypto pki trustpoint local ↓
         Created trustpoint "local".
         Generating 2048-bit key for local CA...
         Automatically authenticated trustpoint "local".

         awplus(ca-trustpoint)# end ↓
         awplus# crypto pki enroll local ↓
         Using private key "server-default"...
         Successfully enrolled the local server.

   証明書を生成したら、手順2に戻って必要な証明書が揃っているか再確認してください。問題がなければ、これで設定変更は完了です。

## CA証明書ファイルの配布方法

本製品のOpenVPN機能では、SSL/TLS証明書によるサーバー認証（クライアントがサーバーの正当性を確認すること）をサポートしています。そのため、サーバー・クライアントには、それぞれ下記の証明書がインストールされている必要があります。

OpenVPNサーバー（本製品） | サーバー証明書
OpenVPNクライアント | CA証明書（サーバー証明書の検証に使う）

本製品のOpenVPN機能では、CA証明書、サーバー証明書とも、ローカルCA機能によって発行したものを使います。

- クライアント認証にローカルRADIUSサーバー機能を使用する場合、これらの証明書はローカルRADIUSサーバーをセットアップする過程で自動的に生成されます。
- 一方、クライアント認証に外部RADIUSサーバーを使用する場合は環境によって状況が異なるため、前項「外部のRADIUSサーバーを使用する場合」を参照し、必要な証明書が存在しているかどうかを確認し、不足している場合は手動で生成してください。

サーバー証明書は上記手順にしたがい生成するだけで使用可能ですが、CA証明書は、本製品からPEM形式のテキストデータとして出力し、以下のいずれかの方法で各OpenVPNクライアント（ユーザー）に配布する必要があります。

- クライアント設定ファイルとCA証明書ファイルを別ファイルとしてクライアントに配布する
- クライアント設定ファイル内にCA証明書のデータを埋め込んで配布する

以下、それぞれの方法を説明します。

### クライアント設定ファイルとCA証明書ファイルを別ファイルとしてクライアントに配布する

CA証明書をクライアント設定ファイルとは別のファイルとしてエクスポートした上で、各OpenVPNクライアント（ユーザー）に配布する場合は、以下の手順を実行します。
なお、必要な証明書は生成済みであると仮定します。

1. 次のいずれかの方法でCA証明書をPEM形式ファイルとして保存します。
   - crypto pki export pemコマンドをterminalキーワード付きで実行し、その出力をコピー＆ペーストなどでPC上のファイル（たとえば「cacert.pem」）として保存する。

         awplus# crypto pki export local pem terminal ↓
         -----BEGIN CERTIFICATE-----
         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
         -----END CERTIFICATE-----

     上記操作により端末画面に表示された内容をPC上のテキストエディターなどにコピー＆ペーストして保存します。

     > Note

     > > コピーするのは、-----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- の行までだけでかまいません（他の行を含んでいても問題はありません）。

   - crypto pki export pemコマンドで本製品のファイルシステムにCA証明書をPEM形式で書き出し（この例では「flash:/cacert.pem」としてエクスポート）、そのファイルをcopyコマンドでサーバーなどにリモートコピーする。

         awplus# crypto pki export local pem cacert.pem ↓
         Copying...
         Successful operation
         awplus# dir ↓
               2917 -rw- Apr  2 2015 07:19:09  cacert.pem
               1193 -rw- Apr  2 2015 07:14:51  default.cfg
           39419519 -rw- Mar 24 2015 05:13:51  AR4050S-5.4.5-0.1.rel
         awplus# copy cacert.pem scp://zein@public.example.com/tmp/ ↓

2. 手順1の操作によりPCやサーバー上に保存したPEM形式のCA証明書ファイルを、任意の方法でOpenVPNクライアントのユーザーに配布します。
3. OpenVPNクライアントの設定ファイルでは、配布されたPEM形式のCA証明書ファイルを「ca」パラメーターで指定してください。

       ca cacert.pem

> Note

> > バージョン5.4.6-1.1以降のファームウェアでCA証明書を作成し使用している場合、それより前のバージョンにダウングレードする時は証明書をクライアントに再配布する必要があります。

### クライアント設定ファイル内にCA証明書のデータを埋め込んで配布する

前項の説明では、クライアント設定ファイルとCA証明書ファイルを別ファイルとしてクライアントに配布していましたが、クライアント設定ファイル内にCA証明書を埋め込み、1つのファイルとして配布することも可能です。
以下、その手順を説明します。
なお、必要な証明書は生成済みであると仮定します。

1. crypto pki export pemコマンドをterminalキーワード付きで実行し、その出力をコピーする。

       awplus# crypto pki export local pem terminal ↓
       -----BEGIN CERTIFICATE-----
       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
       -----END CERTIFICATE-----

   > Note

   > > コピーするのは、-----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- の行までだけでかまいません。

2. クライアント設定ファイル内に手順1でコピーした内容をペーストします。
   また、コピーした内容の直前の行には <ca> を、直後の行には </ca> を記述してください。

       <ca>
       -----BEGIN CERTIFICATE-----
       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
       -----END CERTIFICATE-----
       </ca>

   > Note

   > > この場合、クライアント設定ファイル内でCA証明書ファイルを指定する「ca」パラメーターを使用する必要はありません。

3. 上記手順により作成したクライアント設定ファイルを、任意の方法でOpenVPNクライアントのユーザーに配布します。

> Note

> > バージョン5.4.6-1.1以降のファームウェアでCA証明書を作成し使用している場合、それより前のバージョンにダウングレードする時は証明書をクライアントに再配布する必要があります。

## iOS版クライアントを使用する場合

iOS版のOpenVPNクライアントを使用する場合は、クライアント設定ファイルを次のように記述してください。

### クライアント設定ファイルの変更

- 経路情報の追加
  iOS版クライアントで経路情報の設定を行うには、クライアント設定ファイル（.ovpnファイル）に以下の行を追加してください。

      route NETADDR NETMASK

  NETADDRには宛先のネットワークアドレスを、NETMASKにはネットマスクを指定します。
  次に具体例を示します。

      route 192.168.10.0 255.255.255.0

  経路情報は複数行記述することが可能です。
- 環境変数の追加
  iOS版クライアントでOpenVPN接続を行う場合は、クライアント設定ファイル（.ovpnファイル）に次の記述を追加してください。

      setenv CLIENT_CERT 0

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

PN: 613-002107 Rev.AK_1