設定例集#14: OpenVPNを利用したリモートアクセス
Windows OSやMAC OS X等のOpenVPNクライアントからインターネット経由で本製品のLAN側プライベートネットワークにアクセスさせるリモートアクセス型VPNの設定例です。
本設定ではローカルRADIUSサーバーを用いて認証を行い、Tun(L3)モードのOpenVPN接続を行っています。
接続してきたOpenVPNクライアントに対しては、LAN側プライベートネットワークに加えて下記FQDN宛ての経路も通知します。
- windowsupdate.microsoft.com
- update.microsoft.com
構成

| ISP接続用ユーザー名 | user@isp |
| ISP接続用パスワード | isppasswd |
| PPPoEサービス名 | 指定なし |
| WAN側IPアドレス | 10.0.0.1/32 |
| 接続形態 | 端末型(アドレスは動的割り当て) |
| WAN側物理インターフェース | eth2 |
| WAN側(ppp0)IPアドレス | 10.0.0.1/32 |
| LAN側(eth0)IPアドレス(1) | 192.168.10.1/24 |
| LAN側(eth1)IPアドレス(2) | 192.168.30.1/24 |
| OpenVPNトンネルインターフェース | tunnel0(Tun(L3)モード) |
| OpenVPNトンネルインターフェースIPアドレス | 192.168.20.1/24 |
| ユーザー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 |
AT-NFV-APLの事前設定
本設定例は、あらかじめ AT-NFV-APL側で以下のような設定を行っていることを前提としています。使用するインターフェースの番号や数は適宜変更してかまいません。
事前設定の流れについては「AT-NFV-APL」/「準備」をご覧ください。

管理IPアドレス
詳細は「AT-NFV-APL」/「ネットワーク基本設定」をご覧ください。| br0 | 192.168.10.254/24 |
ブリッジ
詳細は「AT-NFV-APL」/「ネットワーク基本設定」をご覧ください。| eth1~eth6 | 1 | 1 |
| eth7~eth9 | 2 | 2 |
| eth10 | ||
仮想インターフェース割り当て
vFirewallアプリケーションインスタンスの初期設定時には、下記のように仮想インターフェースを割り当てます。詳細は「AT-NFV-APL」/「AW+ vFirewall」をご覧ください。
インターフェース名 |
タイプ |
VLAN ID |
インターフェース |
|
| eth0 | Virtual | 1 | - | 192.168.10.1/24 |
| eth1 | Virtual | 2 | - | 192.168.30.1/24 |
| eth2 | Physical | - | eth10 | 未指定 |
ルーターの設定
- WANポートeth2上にPPPoEインターフェースppp0を作成します。これには、encapsulation pppコマンドを使います。
PPPの詳細は「PPP」/「一般設定」をご覧ください。
interface eth2 encapsulation ppp 0
- 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
- LAN側インターフェースeth0とeth1のIPアドレスは、AT-NFV-APLの事前設定時に設定済みのため、次のコマンドを手で入力する必要はありません。
IPインターフェースの詳細は「IP」/「IPインターフェース」をご覧ください。
interface eth0 ip address 192.168.10.1/24 interface eth1 ip address 192.168.30.1/24
- ファイアウォールやNATのルール作成時に使うエンティティー(通信主体)を定義します。
エンティティー定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
内部ネットワークを表すゾーン「private」を作成します。
これには、zone、network、ip 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
- 外部ネットワークを表すゾーン「public」を作成します。
前記コマンドに加え、ここではhost、ip addressの各コマンドも使います。
zone public network wan ip subnet 0.0.0.0/0 interface ppp0 host ppp0 ip address dynamic interface ppp0
- エンティティーはOpenVPNクライアントに通知する経路を定義するためにも使用できます。
ここではゾーン「openvpn」を作成し、Windows Update用のホスト(FQDN)を2つ定義します。
zone openvpn network url host microsoft ip address dynamic fqdn windowsupdate.microsoft.com ip address dynamic fqdn update.microsoft.com
- 外部からの通信を遮断しつつ、内部からの通信は自由に行えるようにするファイアウォール機能の設定を行います。
これには、firewall、rule、connection-limit、protectの各コマンドを使います。
・rule 10 - 内部から内部への通信を許可します
・rule 20 - 内部から外部への通信を許可します
・rule 30 - 外部から本製品のWAN側インターフェースへのOpenVPN通信を許可します
・connection-limit 1001 - DNSリレー等のppp0インターフェース発のセッション数を4096までとします
・connection-limit 1002 - OpenVPNを含む外部からWANインターフェース宛てのセッション数を5までとします
ファイアウォールの詳細は「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 connection-limit 1001 from public.wan.ppp0 with limit 4096 connection-limit 1002 from public.wan with limit 5 protect
- LAN側ネットワークに接続されているすべてのコンピューターがダイナミックENAT機能を使用できるよう設定します。
これには、nat、rule、enableの各コマンドを使います。
NATの詳細は「UTM」/「NAT」をご覧ください。
nat rule 10 masq any from private to public enable
- RADIUSクライアント機能が使用するRADIUSサーバーを登録します。これにはradius-server hostコマンドを使います。
ここでは、本製品内蔵のローカルRADIUSサーバーを指定しています。
RADIUSクライアント機能の詳細は「運用・管理」/「RADIUSクライアント」を、ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
radius-server host 127.0.0.1 key awplus-local-radius-server
- OpenVPNで使用するRADIUSサーバーを指定します。これにはaaa authentication openvpnコマンドを使います。
aaa authentication openvpn default group radius
- ローカルRADIUSサーバーにOpenVPNユーザーを登録します。
これには、radius-server local、server enable、group、attribute、userの各コマンドを使います。
ローカルRADIUSサーバーの詳細は「運用・管理」/「RADIUSサーバー」をご覧ください。
※ crypto pki trustpoint、crypto pki enroll、nasは、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
- OpenVPN Tun(L3)トンネルインターフェースtunnel0を作成します。
トンネルインターフェースの詳細は「VPN」/「トンネルインターフェース」を、OpenVPNの詳細は「VPN」/「OpenVPN」をご覧ください。
これには、interfaceコマンドでトンネルインターフェースを作成し、以下の情報を設定します。
・トンネルインターフェースのIPアドレス(ip address)
・エンティティー「openvpn」で定義した経路をOpenVPNクライアントに通知する設定(tunnel openvpn route)
・トンネリング方式(tunnel mode openvpn tun)
・トンネルインターフェースにおけるMSS書き換え設定(ip tcp adjust-mss)
interface tunnel0 ip address 192.168.20.1/24 tunnel openvpn route openvpn tunnel mode openvpn tun ip tcp adjust-mss 1260
- エンティティー「openvpn」内で使用しているFQDNホスト定義を動作させるため、DNSリレーとDNSキャッシュを有効にします。
これには、ip dns forwarding、ip dns forwarding cacheの各コマンドを使います。
DNSリレー、DNSキャッシュの詳細は「IP付加機能」/「DNSリレー」を、FQDNホスト定義の詳細は「UTM」/「エンティティー定義」をご覧ください。
ip dns forwarding ip dns forwarding cache size 10000
- 同様に、FQDNホスト定義を動作させるため、自装置のDNS問い合わせをDNSリレー経由で行うよう設定します。
これには、ip domain-lookupコマンドのvia-relayオプションを使います。
ip domain-lookup via-relay
- デフォルト経路をPPPインターフェースppp0に向けます。これにはip routeコマンドを使います。
IP経路設定の詳細は「IP」/「経路制御」をご覧ください。
ip route 0.0.0.0/0 ppp0
- 以上で設定は完了です。
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
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-version-min 1.2 # 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 # トンネルを有効にする 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
接続手順
- ルーターの設定を行う。
- ルーター内蔵ローカルCAの自署ルート証明書を取得する (crypto pki export local pem url FILEPATH_TO_EXPORT)。
- OpenVPNクライアントの設定ファイル(.ovpnファイル)を作成する。
- OpenVPNクライアントの設定ファイル(.ovpnファイル)と、ルーター内蔵ローカルCAの自署ルート証明書をクライアントに移す(移し方はクライアントアプリによって変わる)。
- クライアントから接続を開始する。
備考
本構成例のようにOpenVPNのTun(L3)モードを使用する場合は、クライアントへのIP設定情報提供にRADIUS属性を使う必要があります。しかし、もう一つのモードであるTap(L2)モードを使用する場合は、RADIUS属性だけでなくDHCPでIP設定情報を提供することも可能です。
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 option 121 name Classless-Static-Route hex ! ip dhcp pool pool10 network 192.168.20.0 255.255.255.0 range 192.168.20.2 192.168.20.10 option Classless-Static-Route 18c0a80ac0a8140118c0a81ec0a81401 lease 0 2 0 subnet-mask 255.255.255.0 ! service dhcp-server
ルーターのコンフィグ
! interface eth2 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 ! interface eth0 ip address 192.168.10.1/24 interface eth1 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 ! zone openvpn network url host microsoft ip address dynamic fqdn windowsupdate.microsoft.com ip address dynamic fqdn update.microsoft.com ! 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 connection-limit 1001 from public.wan.ppp0 with limit 4096 connection-limit 1002 from public.wan with limit 5 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 openvpn route openvpn tunnel mode openvpn tun ip tcp adjust-mss 1260 ! ip dns forwarding ip dns forwarding cache size 10000 ! ip domain-lookup via-relay ! ip route 0.0.0.0/0 ppp0 ! end