こんにちは。Yukiです。今回は、外出先から家庭内LANにアクセスできるようにするために、VPNを構築しようと思います。
目標
家庭内のLANに設置したNAS(ルーターをNAS化したもの)にアクセスできたら、目標達成とします。
VPNを使用しないで外出先から家庭内LANにアクセス

絵が雑ですみません…。
普通の家庭だとこんな感じで接続されているかと思います。(結構いろいろ省いていますが…)
こんな感じで接続されていれば、ルーターのポート開放をしたりして、グローバルIPとポートさえわかっていれば、家庭内LANにアクセスできます。
デメリットとしては、グローバルIPとポートさえわかればアクセスできるので、不正アクセスされやすいです。(いろいろな対策をすれば問題ありませんが、正直大変です)
あと、二重ルーターになっていたりすると、ちょっと大変です。
実体験ですが、昔、簡単なWebServerを作ったことがありますが、結構管理が大変だったと記憶があります。(身に覚えのないアクセスが大量に来る) 余談ですが、WebServerは管理が大変です。やっぱりサーバー借りたほうが楽ですよ。
(ネットは怖い)
VPNを用いた外出先から家庭内LANにアクセス
上のデメリットを解決する方法として、VPNがあります。VPNのプロトコルによっては、ファイアウォールやNATも超えることができるので、二重ルーターの場合でもアクセスできます。

VPNトンネルって書きましたが、トンネリングですね。
上のようにトンネルを作り、その中に暗号化したデータを流すことにより、盗聴を防げるというわけです。
今回は、筑波大学のSoftEther VPNを使用します。SoftEther VPNはPCにもインストールできますが、PCにインストールすると、常時起動しっぱなしで電気代がエラいことになりそうなので、OpenWrt化したルーターにインストールします。
ちなみに私の環境

我が環境は上のようになっています。ローカルIPだけ与えられているので、モデム・ルーターやスイッチの設定はできません。もちろんポート開放などの設定などもできません。また実際にはもっと大量のハブが入っていたりするかと思います。(私の環境おかしいので…)こんなイカレている環境でも通信できます。
今回は、OpenWrtに接続されたNASにアクセスできたら目標達成です。
環境としては、
- OpenWrt化ルーター(Buffalo WSR-1166DHP Kernel Ver.5.15.150)
となります。おそらくですが、端末により、設定などはそこまで変わらないと思います。
OpenWrt化ルーターにSoftEther VPNをインストールしてみる
まずはOpenWrt化したルーターの設定に入ります。(初期設定であれば、192.168.1.1)

まずはSystemから、Softwareを開きます。

Update lists…を一度クリックし、Filterにsoftetherと入力します。すると、下の方にインストール可能なソフトウェアが表示されます。今回は、softethervpn-serverというパッケージをインストールします。
インストールが終了したら、次はPCにsoftEtherVPN設定ツールをインストールします。
ここから、SoftEther VPNのダウンロードをクリックします。

次に、使用するソフトウェア等を選択します。
基本的には、選択肢を下のようにすれば出てくるはずです。ただし、プラットフォームやCPU等は環境により変更してください。

ダウンロードされたインストールファイルを開きます。


ここは管理ツールのみを選択します。(その他のツールについては不要)

使用承諾契約書に同意して次へ

重要事項説明書を確認して次へ

インストール先を確認して次へ

次へを押してインストールして下さい。
インストールが完了すると、下のようなソフトウェアが入ったかと思います。

これを起動します。

新しい接続設定をクリックします。

接続設定名は分かりやすい名前を入れてください。
ホスト名はOpenWrtルーターのIPアドレスを
ポート番号は5555にしてください。(ファイアウォールを変更しないと、443だと接続できません)
設定できたら次へ

おそらく作った接続設定が出てくるかと思います。これをクリックして、接続をクリックします。

初回はパスワードとかの設定があった気がします。それらを設定すると、このような画面まで来ます。今回はリモートアクセスVPNサーバーにチェックを入れて、次へをクリック。

はい をクリック。

仮想HUBの名前は何でも大丈夫です。分かりやすい名前にしておきます。

ダイナミックDNS(DDNS)の設定です。設定の変更に入力できるところがあるので、そこに入力した後、上記のDNSホスト名に変更するを押せば、変更できます。誰かがすでに使っている場合などは設定できません。別のホスト名にしましょう。

次にVPN Azure クラウドの設定です。こいつがSoftEther VPNのヤバいところで、ファイアウォールやNATも貫通できます。まじで素晴らしいです。もちろんVPN Azureを有効にして、OKをクリック。

次にユーザーを作成します。このユーザーが、VPN接続時に必要になります。

任意の名前とパスワードを入力します。それ以外は必要ありません。(ユーザーを大量に追加するなどであれば、使用したほうが良いかもしれません)

簡易セットアップの実行を閉じると、上のような画面になります。作成されている仮想HUB(今回だとVPN1)をクリックして、仮想HUBの管理をクリックします。

仮想NATおよび仮想HDCPサーバー機能をクリックします。

SecureNAT機能を有効にします。

なんか出てきますが、OKを押します。

閉じるを押します。
次に、MS-SSTPを有効にします。

仮想HUBの管理画面を閉じて、この画面まで戻ってきます。次に、MS-SSTP設定をクリック

MS-SSTP VPNサーバー機能を有効にするにチェックを付けて、OKを押します。これで完了です。
VPNに接続してみる – MS-SSTPを使用 – Windows
Windowsを使用している場合で、MS-SSTPを使って接続してみます。
MS-SSTPはWindows標準搭載なので、別途ソフト等をインストールする必要はありません。

Windowsの設定画面を開き、ネットワークとインターネットからVPNを選択します。

VPNを追加を押します。

接続名はわかりやすい名前にしておくと良いと思います。サーバー名またはアドレスは、SoftEtherVPNのvpnazure.netで終わるアドレスを指定します。
VPNの種類はSSTP ユーザー名とパスワードはそれぞれ設定したものを入力します。

さっきと同じ画像の使い回しですが、作成したVPNの接続を行います。

うまくいくと接続済みになります。

VPN Azure経由で接続すると、ポート開放しなくて良い代わりに、不安定なことが多いので、向こう側のネットワークに接続できないことがあります。そんなときは、IPアドレスを直接指定してあげると改善することがあります。

VPNに接続する前に確認したグローバルIPです。

VPNに接続したあとに確認したグローバルIPです。ちゃんと変わっていますね。

アクセスできました!!!!!!!!!!!!
VPNに接続してみる – SoftEther Clientを使用 – Windows
SoftEther公式が出しているクライアントを使用して接続する方法です。Linux版などもありそうですが、今回はWindows版で接続してみます。
ちなみに、SoftEther ClientでVPN接続するのが一番速いみたいです。(OpenVPNやL2TP/IPsecに匹敵する速度みたいです)
実際に使ってみた感じですが、SSTPなんて比にならないほど速いと思います。試しに、リモートデスクトップもやってみましたが、非常に早く感動したぐらいです。(事務処理くらいならできるんじゃないかなという速さでした)
ちなみにですが、SSTPでリモートデスクトップを接続すると、結構遅延があるので、個人的には使えないかなという印象でした。(もちろん接続環境とかも影響していると思いますが…)
この方法はソフトのインストールが必須です。

SoftEtherのダウンロードセンターにアクセスして、上の画面のように選択します。

セットアップウィザードが出てきたら、次へを押していきます。

インストールするソフトウェアは SoftEther VPN Clientを選択して、次へ
あとは、適当に次へを押し続けて、インストールを完了させます。

インストールが完了すると、こんな感じだと思うので、 新しい接続設定の作成をクリックします。

仮想LANカードを作成しろと出てきますので、はいを押します。(今後VPNに接続すると、この仮想LANカードで通信することになります)

名前はデフォルトでOKです。

しばらく待ちます。

下の仮想LANカードのところに、先程作成した仮想LANが表示されます。もう一度、新しい接続設定の作成を選択します。

こんな画面になるので、接続設定名はわかりやすいものに変更します。ホスト名はvpnazure.netで終わるアドレスを指定します。ポート番号は443です。ユーザー認証には、VPNサーバーを作ったときに作ったアカウント情報を入力します。

ダブルクリックすると接続できます。接続完了になればOKです。
まれに、DHCPサーバーからIPアドレスが割り当てられないことがあります。そういうときには、また固定IPを割り当てといて上げると、改善することがあります。(複数の人が同時にアクセスする場合であれば、被らないようにしてください)

こんな感じで、強制的に割り当てといてあげます。

使い回しですが、アクセスできました!!!!!!
VPNに接続 -SSTPを使用- Android版
外出先でVPNに繋げる場合は、Androidからが多いと思います。Android11以前であれば、L2TP/IPSec方式のVPN接続ができますが、Android12以降は、廃止されました。Android12以降はIKEv2/IPSecのみとなり、残念ながらSoftEtherVPNでは接続できません。
そもそもL2TP/IPSecはVPNAzureに対応していないので、ポート開放していないと接続出来ないんですけどね…。
そこで、SSTPが繋げられるように、Open SSTP Clientという無料のアプリをインストールします。

インストールして、開くと次のような画面になると思います。Hostnameには、アドレス(vpnazure.netで終わるやつ)を入れます。UsernameとPasswordには、SoftEtherVPNをセットアップして作成したアカウントを入力します。

SETTINGは初期状態で良かった気がします。

接続が完了すると、下のように現在のステータスが表示されます。今回の場合だと、192.168.30.10が割り当てられたということがわかります。ということで接続完了です。

もちろんSSTPで接続しても、家庭内LANにはアクセスできます。

きたーーーーーー!!!接続完了です!!!
余談
久しぶりに長い記事書きました…。VPNを使えば、遠い拠点間でも簡単にデータが送れたりするので、便利ですね。まあ私が主にやるのはリモートデスクトップですが…。

コメント