設定例集#14: OpenVPNを利用したリモートアクセス


構成
ルーターの設定
設定の保存
ファイアウォールログについて
OpenVPNクライアントの設定ファイル例
接続手順
備考
Tapモードの設定
ルーターのコンフィグ



Windows8やMAC OS X等のOpenVPNクライアントからインターネット経由で本製品のLAN側プライベートネットワークにアクセスさせるリモートアクセス型VPNの設定例です。
本設定ではローカルRADIUSサーバーを用いて認証を行い、Tun(L3)モードのOpenVPN接続を行っています。

構成

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
LAN側(vlan2)IPアドレス(2) 192.168.30.1/24
OpenVPNトンネルインターフェース tunnel0(Tun(L3)モード)
OpenVPNトンネルインターフェースIPアドレス 192.168.20.1/24

OpenVPNクライアントのアカウント情報
OpenVPNユーザー
ユーザー名
パスワード
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
ユーザーD userD passwdD 192.168.20.5/24

ルーターの設定

  1. LANポートにおいて初期状態で有効化されているスパニングツリープロトコル(RSTP)を無効化します。これにはspanning-tree enableコマンドをno形式で実行します。
    スパニングツリープロトコルの詳細は「L2スイッチング」/「スパニングツリープロトコル」をご覧ください。
    no spanning-tree rstp enable
    
  2. WANポートeth1上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
    PPPの詳細は「PPP」/「一般設定」をご覧ください。
    interface eth1
     encapsulation ppp 0
    
  3. PPPインターフェースppp0に対し、PPPoE接続のための設定を行います。

    ・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
     ppp ipcp dns request
     keepalive
     ip address negotiated
     ppp username user@isp
     ppp password isppasswd
     ip tcp adjust-mss pmtu
    
  4. VLANを作成します。
    これには、vlan databaseコマンドとvlanコマンドを使います。
    VLANの詳細は「L2スイッチング」/「バーチャルLAN」をご覧ください。
    vlan database
     vlan 2
    
  5. LANポート1.0.3~1.0.4をvlan2のタグなしポートに設定します。
    これには、switchport access vlanコマンドを使います。
    VLANについては「L2スイッチング」/「バーチャルLAN」をご覧ください。
    interface port1.0.3-1.0.4
     switchport access vlan 2
    
  6. LAN側インターフェースvlan1とvlan2にIPアドレスを設定します。これにはip addressコマンドを使います。
    IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
    interface vlan1
     ip address 192.168.10.1/24
    interface vlan2
     ip address 192.168.30.1/24
    
  7. ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
    エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。

    内部ネットワークを表すゾーン「private」を作成します。
    これには、zonenetworkip subnetの各コマンドを使います。
    zone private
     network lan
      ip subnet 192.168.10.0/24
      ip subnet 192.168.20.0/24
      ip subnet 192.168.30.0/24
    
  8. 外部ネットワークを表すゾーン「public」を作成します。
    zone public
     network wan
      ip subnet 0.0.0.0/0 interface ppp0
      host ppp0
       ip address dynamic interface ppp0
    
  9. 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
    これには、firewallruleprotectの各コマンドを使います。

    ・rule 10 - 内部から内部への通信を許可します
    ・rule 20 - 内部から外部への通信を許可します
    ・rule 30 - 外部から本製品のWAN側インターフェースへのOpenVPN通信を許可します

    ファイアウォールの詳細は「UTM」/「ファイアウォール」をご覧ください。
    firewall
     rule 10 permit any from private to private
     rule 20 permit any from private to public
     rule 30 permit openvpn from public.wan to public.wan.ppp0
     protect
    
  10. LAN側ネットワークに接続されているすべてのコンピューターがダイナミックENAT機能を使用できるよう設定します。
    これには、natruleenableの各コマンドを使います。
    NATの詳細は「UTM」/「NAT」をご覧ください。
    nat
     rule 10 masq any from private to public
     enable
    
  11. RADIUSクライアント機能が使用するRADIUSサーバーを登録します。これにはradius-server hostコマンドを使います。
    ここでは、本製品内蔵のローカルRADIUSサーバーを指定しています。
    RADIUSクライアント機能の詳細は「運用・管理」/「RADIUSクライアント」を、ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
    radius-server host 127.0.0.1 key awplus-local-radius-server
    
  12. OpenVPNで使用するRADIUSサーバーを指定します。これにはaaa authentication openvpnコマンドを使います。
    aaa authentication openvpn default group radius
    
  13. ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
    これには、radius-server localserver enablegroupattributeuserの各コマンドを使います。
    ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。

    crypto pki trustpointcrypto pki enrollnasは、radius-server localコマンドの初回実行時に自動実行されるため、手動で入力する必要はありませんが、入力してもかまいません。
    crypto pki trustpoint local
    crypto pki enroll local
    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 Framed-Route "192.168.10.0/24 192.168.20.1"
      attribute Framed-Route "192.168.30.0/24 192.168.20.1"
     group userB
      attribute Framed-IP-Address 192.168.20.3
      attribute Framed-IP-Netmask 255.255.255.0
      attribute Framed-Route "192.168.10.0/24 192.168.20.1"
      attribute Framed-Route "192.168.30.0/24 192.168.20.1"
     group userC
      attribute Framed-IP-Address 192.168.20.4
      attribute Framed-IP-Netmask 255.255.255.0
      attribute Framed-Route "192.168.10.0/24 192.168.20.1"
      attribute Framed-Route "192.168.30.0/24 192.168.20.1"
     group userD
      attribute Framed-IP-Address 192.168.20.5
      attribute Framed-IP-Netmask 255.255.255.0
      attribute Framed-Route "192.168.10.0/24 192.168.20.1"
      attribute Framed-Route "192.168.30.0/24 192.168.20.1"
     user userA password passwdA group userA
     user userB password passwdB group userB
     user userC password passwdC group userC
     user userD password passwdD group userD
    
  14. OpenVPN Tun(L3)トンネルインターフェースtunnel0を作成します。
    トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、OpenVPNの詳細は「VPN」/「OpenVPN」をご覧ください。

    これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。

    ・トンネルインターフェースのIPアドレス(ip address
    ・トンネリング方式(tunnel mode openvpn tun
    ・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss
    interface tunnel0
     ip address 192.168.20.1/24
     tunnel mode openvpn tun
     ip tcp adjust-mss 1260
    
  15. デフォルト経路をPPPインターフェースppp0に向けます。これにはip routeコマンドを使います。
    IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
    ip route 0.0.0.0/0 ppp0
    
  16. 以上で設定は完了です。
    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 kern msgtext Firewall

■ 記録されたログを見るには、次のコマンド(show log)を実行します。ここでは、ファイアウォールが出力したログメッセージだけを表示させています。
awplus# show log | include Firewall

OpenVPNクライアントの設定ファイル例

OpenVPNクライアントの設定ファイルは、通常拡張子「.ovpn」のテキストファイルとして保存します。
以下は本構成に対応する設定ファイルのサンプルです(Windows、MacOS X、Android版クライアント用)。
# OpenVPNサーバー(ルーター)と接続先ポートの指定
remote 10.0.0.1 1194 udp

# 経路情報等をサーバーから取得する
pull

# TLSクライアントを有効にする
tls-client

# 使用する暗号形式
cipher AES-128-CBC

# デジタル署名形式
auth SHA1

# TLSの形式
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA

explicit-exit-notify

# ユーザー名・パスワード認証を有効にする
auth-user-pass

# ルーターから取得したローカルCAの自署ルート証明書
ca cacert.pem

# keepaliveの送信間隔とタイムアウトの時間
keepalive 10 120

# 使用するモード(Tunモード)
dev tun

# インターフェースのIPをサーバーから取得する
float

# IPv6のトンネリングを有効にする(Tunモードのみ)
tun-ipv6

# トンネルを有効にする(Tunモード時必須)
topology subnet

# 暗号化前のパケットのTOS値を暗号化後のパケットにコピーする
passtos

# 接続に使用するポート番号
port 1194

# ログのレベル(0~7)。0はログを生成せず、数が大きくなるほど詳細なログを表示する
verb 3

# パスワードの保存を無効にする
setenv ALLOW_PASSWORD_SAVE 0

なお、iOS版クライアントを使用する場合は、上記クライアント設定ファイルに下記の2行を追加してください。
詳しくはOpenVPN解説編の「iOS版クライアントを使用する場合」をご覧ください。
route 192.168.10.0 255.255.255.0
setenv CLIENT_CERT 0

接続手順

  1. ルーターの設定を行う。
  2. ルーター内蔵ローカルCAの自署ルート証明書を取得する (crypto pki export local pem url FILEPATH_TO_EXPORT)。
  3. OpenVPNクライアントの設定ファイル(.ovpnファイル)を作成する。
  4. OpenVPNクライアントの設定ファイル(.ovpnファイル)と、ルーター内蔵ローカルCAの自署ルート証明書をクライアントに移す(移し方はクライアントアプリによって変わる)。
  5. クライアントから接続を開始する。

備考

本構成例のようにOpenVPNのTun(L3)モードを使用する場合は、クライアントへのIP設定情報提供にRADIUS属性を使う必要があります。

しかし、もう一つのモードであるTap(L2)モードを使用する場合は、RADIUS属性だけでなくDHCPでIP設定情報を提供することも可能です。

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

OpenVPN Tap(L2)モード構成時に本製品のDHCPサーバー機能を利用してIP設定情報を提供する場合は、ローカルRADIUSサーバーの設定はユーザー認証に関する部分だけでよく、ユーザーグループの設定は不要です。また、DHCPサーバーの設定は、OpenVPN Tap(L2)トンネルインターフェースのサブネットに対応するDHCPプールを作成すれば完了です。

Tapモードの設定

Tapモード時は、上記のTunモード時の設定のローカルRADIUSとトンネルインターフェースの設定を以下のように変更し、DHCPプールの設定を加えてください。
radius-server local
 server enable
 nas 127.0.0.1 key awplus-local-radius-server
 user userA password passwdA
 user userB password passwdB
 user userC password passwdC
 user userD password passwdD
!
interface tunnel0
 ip address 192.168.20.1/24
 tunnel mode openvpn tap
 ip tcp adjust-mss 1260
!
ip dhcp pool pool10
 network 192.168.20.0 255.255.255.0
 range 192.168.20.100 192.168.20.110
 default-router 192.168.20.1
 dns-server 192.168.10.5
 lease 0 2 0
 subnet-mask 255.255.255.0
!
service dhcp-server

ルーターのコンフィグ

!
no spanning-tree rstp enable
!
interface eth1
 encapsulation ppp 0
!
interface ppp0
 ppp ipcp dns request
 keepalive
 ip address negotiated
 ppp username user@isp
 ppp password isppasswd
 ip tcp adjust-mss pmtu
!
vlan database
 vlan 2
!
interface port1.0.3-1.0.4
 switchport access vlan 2
!
interface vlan1
 ip address 192.168.10.1/24
interface vlan2
 ip address 192.168.30.1/24
!
zone private
 network lan
  ip subnet 192.168.10.0/24
  ip subnet 192.168.20.0/24
  ip subnet 192.168.30.0/24
!
zone public
 network wan
  ip subnet 0.0.0.0/0 interface ppp0
  host ppp0
   ip address dynamic interface ppp0
!
firewall
 rule 10 permit any from private to private
 rule 20 permit any from private to public
 rule 30 permit openvpn from public.wan to public.wan.ppp0
 protect
!
nat
 rule 10 masq any from private to public
 enable
!
radius-server host 127.0.0.1 key awplus-local-radius-server
!
aaa authentication openvpn default group radius
!
crypto pki trustpoint local
crypto pki enroll local
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 Framed-Route "192.168.10.0/24 192.168.20.1"
  attribute Framed-Route "192.168.30.0/24 192.168.20.1"
 group userB
  attribute Framed-IP-Address 192.168.20.3
  attribute Framed-IP-Netmask 255.255.255.0
  attribute Framed-Route "192.168.10.0/24 192.168.20.1"
  attribute Framed-Route "192.168.30.0/24 192.168.20.1"
 group userC
  attribute Framed-IP-Address 192.168.20.4
  attribute Framed-IP-Netmask 255.255.255.0
  attribute Framed-Route "192.168.10.0/24 192.168.20.1"
  attribute Framed-Route "192.168.30.0/24 192.168.20.1"
 group userD
  attribute Framed-IP-Address 192.168.20.5
  attribute Framed-IP-Netmask 255.255.255.0
  attribute Framed-Route "192.168.10.0/24 192.168.20.1"
  attribute Framed-Route "192.168.30.0/24 192.168.20.1"
 user userA password passwdA group userA
 user userB password passwdB group userB
 user userC password passwdC group userC
 user userD password passwdD group userD
!
interface tunnel0
 ip address 192.168.20.1/24
 tunnel mode openvpn tun
 ip tcp adjust-mss 1260
!
ip route 0.0.0.0/0 ppp0
!
end



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

PN: 613-002107 Rev.P