設置した Archer AX50 でのVPNサーバ構築に関する紹介です。
自宅では常時稼働PCが1台とNASが動作しています。会社や出先からこれらにはVPN経由でアクセスをしています。
さらに常時休止状態になっている録画用PCはVPN経由でWake On LANで起動させ、番組情報確認と録画指示など、家の中にいる感覚で外部からアクセスが可能です。
以前はRealVNCで常時稼働しているPCに接続していましたが、セキュリティの面やNASのデータをそのままアクセスできる利便性から、VPNに移行しました。
今回Archer AX50に切り替えた最大の理由が、VPN機能を持っている点です。
今までのVPN接続ですが、常時稼働するWindows PCを使っていました。
これを OpenVPNサーバ として動作させていたのですが、OSをWindows10に変えてから、Windows updateのたびにサーバ動作が正しく動かなくなるという症状に悩まされてきました。
どうやらWindowsのセキュリティに絡む更新があると影響を受けるようです。
しばらくするとOpenVPNがアップデートされて動くようになります。
OpenVPNのサーバ構築やルータのルーティング設定など、クライアント設定を含め紹介しようと企画していたのですが、このWindows10環境での不安定さに紹介ができずにいました。
ルータのファームバージョンアップの不安はありますが、VPN機能がある日突然使えなくなる可能性は少ないでしょう。
また、ルータをVPNサーバにすることの最大のメリットとして、VPNに関するルーティングの設定が不要になることがあります。(これについては後述)
さて、ではArcher AX50でのVPN設定です。
設定とは言っても、全く難しい部分はありませんでした。

web GUI設定の詳細設定の中にVPNサーバに関する設定項目があります。
AX50ではVPNサーバの機能として、OpenVPN形式とPPTP VPN形式の二つが選べます。
個人的には「今更PPTP?」とちょっと疑問には思います。PPTPはiOS 10やmacOS 10.12以降では使えなくなっています。
L2TP/IPsec VPNが必要最低限ではなかろうかと...
Windows10でOpenVPNは繋がらなくなると書きましたが、クライアント動作に関しては今の所大丈夫です。
ということで、OpenVPNを使うのですが、Windows10でもL2TP/IPsec VPNクライアントはOSの標準機能として搭載されていますので、ぜひとも今後はAX50でもL2TP/IPsecをサポートして欲しいものです。

これがOpenVPNサーバ動作の設定画面です。
簡単でしょw
チェックボックスで「有効にする」だけです。が、その前に証明書を生成しておきましょう。
真ん中の段にある「生成」のボタンを押します。
これで認証局(CA)の証明書が作成されます。
作成されても、証明書が出力されるわけではありません。AX50本体内に証明書が作成され保存されます。
証明書が作成されたら
チェックボックスで「有効にする」をチェックします。
ポート番号は1194が最初から表示されています、そしてこれはOpenVPNでは標準のポート番号ですので、変更の必要はありません。
サービスタイプもUDPが標準で最初から選択されています、TCPにすると速度が落ちるので、物好きでなければUDP一択です。
VPNサブネットも初期値のままで問題ないでしょう...ただし宅内LANが10.8.0.0/24のアドレスレンジだとするとバッティングするので、変える必要があります。
ウチは192.168.128.0/24なので、そのままで問題ありません。
これで「保存」を押します。
AX50がOpenVPNサーバとして動き出します。
このままでは、クライアントからの接続はできませんので、クライアント用の設定ファイルを入手する必要があります。
これが「エクスポート」のボタンですね。
エクスポートすると、OpenVPN-Config.ovpnというファイルがブラウザ経由でダウンロードされます。

.ovpnはOpenVPNではお馴染みの設定ファイルの拡張子ですね。
このOpenVPN-Config.ovpnには次の内容がテキスト形式で記録されています。
・OpenVPNクライアントの接続先と接続設定
・作成した認証局(CA)の証明書
・クライアント用の証明書と秘密鍵

実際の中身はこんなです。
この OpenVPN-Config.ovpn ファイルの赤線部分は、出力をした時のグローバルIPアドレス(ISPから取得したインターネット上のIPアドレス)が自動的にセットされて出力されます。
おそらく私を含む一般ピーポーは動的IPアドレスで接続していると思いますので、ここの記載で接続のたびに変わってしまうIPアドレスの対策をする必要があります。
固定IPアドレスサービスを使っているという方はそのままで構いませんが、動的IPアドレスの方は動的DNS(Dynamic DNS)サービスを使いましょう。これは動的に変わってしまうIPアドレスに固定のドメイン名を紐付けしてくれる仕組みです。赤線部分にIPアドレスではなくドメイン名を記載します。
AX50は動的DNSとして TP-Link/NO-IP/DynDNSの3つが設定でサポートされています。グローバルIPアドレスが変更になる度に設定されたDynamic DNSサービスに新しいグローバルIPアドレスを通知してくれます。
私はいずれも使っていませんが、TP-Linkの製品なのでTP-Link IDを作るでしょうから、TP-Linkを使うのが近道かもしれませんね。
NO-IPやDynDNSは世界的にも名の知れたDynamic DNSサービスですが、有料です。
TP-Link IDを作るか?とも思ったのですが、AX50の設定ログインに使うTP-Link IDとパスワードがTP-LinkのDBに登録されます。さらにTP-Linkに現在のグローバルIPアドレスが通知されることになります。
TP-LinkがハックされDBやIPアドレスが流出すれば、自宅で動いているAX50は丸裸です。
という理由からTP-Link IDは取得していませんw
私は昔から日本のDynamic DNSサービスである
mydns.jpを使っています。(無料です)
なので私の場合には、赤線部分は〇〇〇〇〇.mydns.jp と書き換えをします。
このOpenVPN-Config.ovpn ファイルを使ってクライアントの説明を、と思ったのですが、Windows PCやスマートフォンそれぞれの話になるので、もっと長くなります。
今回はサーバの設定ということで切りのよい、この辺で...
あ!
ルータをVPNサーバにすることの最大のメリットの解説を忘れるところでした。
最後にこの説明をします。
今までWindowsPCをOpenVPNサーバとして構築していましたが、ルータの内側にPCは位置します。
このため、ルータでは次の設定が必要となります。
①インターネット網側(外部)からのOpenVPNクライアント接続のルーティング
②宅内や社内のLAN側(内側)からVPNサブネットへのルーティング
①に関してはOpenVPNで使われるUDPの1194ポートを開ける必要があります。
またその1194ポートに来たパケットを内側のどのIPアドレスに渡すのかをNATで定義します。
②はOpenVPNサーバとしたマシンのみにアクセスする場合は不要ですが、内側ネットワークの各機器にアクセスする場合には、VPNサブネットという新しいアドレスレンジが登場するので、ルーティングが必要になります。
この部分の理解が不足すると、OpenVPNでVPNトンネルは通したけど、そのトンネル先にアクセスができないという事態に陥ります。
内側のLANには内側LANのアドレスレンジが存在しますよね、例えばウチの場合には192.168.128.0/24ですので、アドレスレンジ(範囲)は192.168.128.1~254になります。この範囲外のIPアドレス通信に関してはGATEWAY(ルータ)を通すことになりますが、VPNサブネットの通信は指定をしないと範囲外として扱われます。
指定方法は二つです
・ゲートウェイとして動くルータが、VPNサブネットの通信をインターネット側に投げずにOpenVPNサーバに渡す
・ルータでその設定ができなければ、内側LANの各機器がVPNサブネットの通信をOpenVPNサーバに渡す
以前使っていたAterm WG1900HPは設定のどこを探っても、IP Routeの追加ができませんでした。ルータなのにそれは無かろうとNECに直接問い合わせをしたところ「ありません」とあっさり回答が来ました...orz
さて、こうなるとPCのように自由にIP Routeを追加できる機器は問題ないのですが、バッファローのNASなどIP Routeを追加できない機器はOpenVPN経由でアクセスができなくなります。WG1900HPでは諦めました。
ルータにVPNサーバの機能があると、①も②もルータの中で全て処理がされますので、これら面倒な設定から全て解放されます。
あとはOpenVPNサーバにするWindows PCの話ですが、Widnowsって標準ではNIC間のルーティング機能はオフになっています。
コマンドプロンプトで ipconfig /all すれば分かりますが、IPルーティング有効は「いいえ」になっています。

レジストリをいじって有効にする必要があります。
ルータにVPNサーバの機能があるのは私的には大歓迎です。
次回はこのVPNサーバに接続するクライアントの具体的説明になります。