VPN / OpenVPN


基本設定
OpenVPN Tun(L3)によるルーティング型リモートアクセスVPN
サーバー(本製品)側
クライアント側(参考)
OpenVPN Tap(L2)によるルーティング型リモートアクセスVPN
サーバー(本製品)側
クライアント側(参考)
OpenVPN Tap(L2)によるブリッジ型リモートアクセスVPN
サーバー(本製品)側
クライアント側(参考)
設定と状態の確認
外部のRADIUSサーバーを使用する場合
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人のユーザーを登録するものとします。


  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人のユーザーを登録するものとします。


  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 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)# default-router 192.168.254.1
    awplus(dhcp-config)# dns-server 192.168.10.5
    awplus(dhcp-config)# lease 0 2 0
    


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

    awplus(config)# interface tunnel0
    


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

    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側(eth2)に直接接続されているイメージです。クライアントとLAN側の通信はブリッジングによって行われます。また、eth2以外のネットワークとの通信はブリッジインターフェース(brX)を経由するルーティングで行われます。また、クライアントのIP設定情報はLAN側に設置されているDHCPサーバーによって提供します。


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

サーバー(本製品)側

  1. ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
    ここでは、userA、userB、userCという3人のユーザーを登録するものとします。


  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」にeth2を追加します。これには、bridge-groupコマンドを使います。

    awplus(config)# interface eth2
    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
    



  3. 手順2の確認で証明書が不足していた場合は、下記の手順にしたがい足りない証明書を生成してください。


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

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

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

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


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


サーバー証明書は上記手順にしたがい生成するだけで使用可能ですが、CA証明書は、本製品からPEM形式ファイルとしてエクスポートした上で、各OpenVPNクライアント(ユーザー)に配布する必要があります。

以下、その手順を説明します。
なお、必要な証明書は生成済みであると仮定します。
  1. 次のいずれかの方法でCA証明書をPEM形式ファイルとして保存します。


  2. 手順1の操作によりPCやサーバー上に保存したPEM形式のCA証明書ファイルを、任意の方法でOpenVPNクライアントのユーザーに配布します。

  3. OpenVPNクライアントの設定ファイルでは、配布されたPEM形式のCA証明書ファイルを「ca」パラメーターで指定してください。

    ca cacert.pem
    


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

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

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


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

PN: 613-002311 Rev.A