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


  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側(vlan1)に直接接続されているイメージです。クライアントとLAN側の通信はブリッジングによって行われます。また、vlan1以外のネットワークとの通信はブリッジインターフェース(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」に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」と他のインターフェースの間でルーティングを行えるようにします。これには、l3-filtering enableコマンドとip addressコマンドを使います。
    awplus(config)# interface br1
    awplus(config-if)# l3-filtering enable
    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クライアント(ユーザー)に配布する必要があります。


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

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

CA証明書をクライアント設定ファイルとは別のファイルとしてエクスポートした上で、各OpenVPNクライアント(ユーザー)に配布する場合は、以下の手順を実行します。

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


  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クライアントを使用する場合は、クライアント設定ファイルを次のように記述してください。

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


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

PN: 613-002107 Rev.AA