VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

DDNS関係, DSMアプリケーション, Synology DiskStation DS218j, VPN関係, YAMAHA NVR500, ルーターAndroid, DSM, DSMパッケージ, iOS, L2TP/IPSec, MyDNS, NAS, Synology, VPN, Windows, セキュリティ, 落雷

自宅に設置しているSynology DiskStation DS218jの「VPN Server」パッケージを利用して、外出先から自宅のネットワークに直結する方法の解説です。中国の検閲逃れ、テレワークやリモートに利用できますので興味のある方はどうぞ。

まずは回りくどい事情説明です。

悲しいことに、【タスクスケジューラを使う(1)~DiskStation DS218j】の冒頭で書いた通り、我が家のメインルーターYAMAHA NVR500が落雷が原因でLANポートの2番が死んでしまいました。

今のところそれ以外の機能で不具合は出ていませんが、物理的な攻撃?を受けている訳ですから、いつ何時サドンデスしないとも限りません。

という事情から、YAMAHA NVR500が担っている"wwq.mydns.jp"のDDNS機能をいつでもSynology DiskStation DS218jが肩代わりできるよう【タスクスケジューラを使う(1)~DiskStation DS218j】のように通知システムを組みました。

また、YAMAHA NVR500に"ip host"機能があるおかげで、【LAN内から自宅公開Webサーバーにアクセスする方法】に書いているような問題は簡単にクリアできていたのですが、同じ機能を持たない民生機ルーターを使う場合でも、DS218jのDNSサーバー機能を使えばYAMAHA NVR500の"ip host"機能の肩代わりができることも確認済みです。

YAMAHA NVR500が死んだ場合のもう一つの懸念は、L2TP/IPSecVPN接続が失われる、ということです。

一応は【VPN Serverで自宅にVPN接続(OpenVPN編)~DiskStation DS218j】で説明した通り、YAMAHA NVR500のL2TP/IPSecVPNが使えなくなってもDS218jのOpenVPNが使えるのですぐに困る訳でもありませんが、万が一に備えてDS218jでもL2TP/IPSecでリモートアクセスVPNができるようにしたいと思います。

OpenVPNでもL2TP/IPSecでも、実際に接続してしまえば実用上の大きな違いはありませんが、OpenVPNの場合は接続するクライアント側のパソコンやスマホなどに接続用のアプリケーションをインストールする必要があり、かつ、"VPN Server"から発行した設定ファイルをインポートする必要があり、かなり面倒です。しかしL2TP/IPSecの場合はWindows、Macintosh、iOS、Androidなど主要なOSは標準機能として実装しているためアプリケーションのインストールが不要で、共有キーとユーザー名とパスワードの入力だけで済むので楽ちんです。

ルーターに設定されているL2TP/IPSec VPN設定の削除

まず、YAMAHA NVR500のルーター直結のL2TP/IPSecが有効のままでは、DSMでL2TP/IPSecを利用できないので、ルーター直結のVPN設定を削除します。

ルーターの設定画面にログイン後、[詳細設定と情報]→[VPN接続の設定]と進み、

ルーターのVPN設定を削除|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[削除]をクリックして設定を削除します。

ルーターへのポートフォワーディング設定

次に、L2TP/IPSecをDSMで利用できるように、必要なポート番号をDS218jのローカルIPアドレス"192.168.77.201″にポートフォワーディングします。

[詳細設定と情報] → [基本接続の詳細な設定]→「設定されているプロバイダの一覧」の有効なプロバイダから[設定]と進み、

ルーターにポートフォワーディングを追加1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

ここに静的IPマスカレード(ポートフォワーディング)の設定を追加します。[追加]ボタンをクリックして、

ルーターにポートフォワーディングを追加2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

VPN Server の設定 | Synology Inc.の説明に従って、UDP1701、UDP500、UDP4500の三つの静的IPマスカレード設定を追加します。

ルーターにポートフォワーディングを追加3|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

VPN ServerのL2TP/IPSec有効化と設定

続いてDSMの「VPN Server」の設定です。

DSMにログインして、

VPN Serverを開く|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「メニュー」をクリックして[VPN Server]を開きます

L2TP/IPSecの設定|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

設定画面が開いたら、左のリストから「L2TP/IPSec」を選択し、[L2TP/IPSec VPNサーバーを有効にする]にチェックを入れます。

各パラメーターはとりあえずそのままでOK。「あらかじめ共有したキー:」と「あらかじめ共有したキーを確定:」の二か所に適当な同じ文字列を入力します。

「あらかじめ共有したキー:」とはちょっと意味不明な感じがありますが、ここは英語で事前共有キーを表す"Pre-shared key"が自動翻訳で直訳されているだけですね。海外製機器の「あるある」です。

設定ができたら「適用」をクリックします。

L2TP/IPSecの設定保存|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

ポート開放の確認ダイアログです。ルーターに設定済みなのでスルーします。[OK]をクリックして設定を確定します。

VPN特権の設定|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

次に左のリストから「特権」を選択し、L2TP/IPSecでVPN接続をさせるユーザーを指定して[保存]をクリックします。

“VPN Server"の設定はこれで終了です。

Windows10のL2TP/IPSec VPNクライアントの設定

次にクライアントの接続設定ですが、ここからは面倒ですが自宅外のインターネット接続から行います。

まずWindows10です。

Windows10でインターネット越しに外部からSynology DiskStation DS218jに接続する場合、まずWindowsの「外部からルーターを通過した先にあるVPNサーバーにはデフォルトでは接続を許可しない」という設定を解除する必要があります。

なぜそういう仕様になっているのか、なぜその仕様を変更するのにレジストリを変更するというリスキーな操作を強いるのか、良くわかりません。

Windowsのレジストリエディタを開きます。

レジストリの修正は、一歩間違うとWindowsのシステムを破壊してしまうことがあります。作業の前にバックアップを取るなりして慎重に作業を行う必要があります。この記事を参考に修正を行って、不具合が発生してもNOMIは責任を持てませんのであしからず。

白状すると、このレジストリの修正方法については、いろんな方が公開されています。NOMIはその方法をまねているだけです。

レジストリエディタを開く|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

上の例ではコルタナから"regedit"で検索して開いていますが、スタートメニューの「Windows管理ツール」から開くこともできます。

レジストリエディタが開いたら、"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent"を開きます。

レジストリキーの追加|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

ここに"AssumeUDPEncapsulationContextOnSendRule"というキーがあれば値を変更すればOKですが、NOMIのパソコンにはキーそのものが無かったので、上記のように右クリックから"DWORD(32ビット)値(D)"を開き、

レジストリキーの編集1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

新しくできた値を右クリックして[名前の変更(R)]から、名前を、

レジストリキーの編集2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

“AssumeUDPEncapsulationContextOnSendRule"に変更してダブルクリックし、[値のデータ(V):]を"2″に変更して[OK]をクリックします。

レジストリキーの編集3|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

値を確認したらパソコンを再起動します。

パソコンが起動したらWindowsにログインし、

Windows設定を開く1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[設定]を開きます。

Windows設定を開く2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[ネットワークとインターネット]をクリックします。

VPN設定の追加|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[VPN]をクリックして[VPN接続を追加する]をクリックします。

WindowsVPN設定1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「VPNプロバイダー」には[Windowsビルトイン]、「接続名」は適当に決めます。

「サーバー名またはIPアドレス」には自宅のIPアドレスへ正引きできるホスト名を設定すればよいので、【SynologyのDDNS設定~DiskStation DS218j】でSynologyに登録しているDDNSホスト名"wwq.myDS.me"、あるいは【MyDNSでDDNSを利用する】でMyDNSに登録しているDDNSホスト名"wwq.mydns.jp"、及びそのサブドメイン、

例えば、"hogehoge.wwq.myDS.me"や"hagehage.wwq.mydns.jp"でも良いということですね。

またはYAMAHAのネットボランチに登録しているDDNSホスト名(参考【SSL証明書の取得~DiskStation DS218j】)などが使用できます。

ただし今回はYAMAHA NVR500がお亡くなりになった場合のバックアップ設定ですから、一蓮托生のネットボランチDDNSホスト名を使うのはナンセンスです。

という訳でここではSynology謹製の"wwq.myDS.me"を設定します。

「VPNの種類」は[事前共有キーを使った L2TP/IPsec]を選択。「事前共有キー」にはDSMの"VPN Server"に設定した「あらかじめ共有したキー:」と同じ文字列を設定。「サインイン情報の種類」は[ユーザー名とパスワード]を選択し、下にスクロールします。

WindowsVPN設定2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「ユーザー名(オプション)」、「パスワード(オプション)」には、DSMの"VPN Server"の「特権」の設定で、L2TP/IPSecでVPN接続をさせるように指定済みのユーザー名とパスワードを入力します。このWindows10のアカウントは自分専用なので「サインイン情報を保存する」にチェックを入れ、[保存]をクリックします。

アダプターのオプションを変更|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

設定ウィンドウが閉じたら、「接続名」のVPN接続が作られていることを確認し、[アダプターのオプションを変更する]をクリックします。

接続設定の変更1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「接続名」の接続アダプタを選択して[この接続の設定を変更する]をクリックします。

接続設定の変更2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「セキュリティ」タブを開き、「次のプロトコルを許可する(P)」を選択して「Microsoft CHAP Version2 (MS-CHAP v2)」にチェックが入っていることを確認して[OK]をクリックします。設定はこれでOKです。

ここで設定したWindows10パソコンを自宅外から繋ぎます。NOMIはスマホのテザリングを使ってパソコンを繋いでテストしました。

WndowsでVPN接続|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

タスクバーからネットワークアイコンをクリックし、作成した「接続名」を開いて[接続]をクリックして、ステータスが「接続済み」に変わればOKです。

ちなみにVPN接続中の端末は、DSMの"VPN Server"を開いて、

VPN接続の確認|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[接続リスト]から確認することができます。

iPad(iOS)のL2TP/IPSec VPNクライアントの設定

続いてiPad(iOS)のクライアント設定です。iPhoneでも基本的にやり方はおなじ(はず)です。

iOSのVPN設定1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

[設定]→[VPN]→[VPN構成を追加…]を開きます。

iOSのVPN設定2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「タイプ」は”L2TP”。「説明」は適当に。「サーバ」はWindows10の接続設定で説明した「サーバー名またはIPアドレス」と同じ。「アカウント」、「パスワード」にはDSMの"VPN Server"の「特権」で指定したユーザー名とそのパスワードを、「シークレット」には「あらかじめ共有したキー:」と同じものをそれぞれに入力します。

設定が終わったら[完了]をタップします。

iOSのVPN設定3|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

保存されたVPN接続を選択し、スイッチを入れます。接続が確立するとスイッチが緑に代わり、通知領域にVPNマークが表示されます。

AndroidのL2TP/IPSec VPNクライアントの設定

Androidは機種とバージョンによって多少設定手順が異なります。

NOMIの手持ちの”Moto Z Play(Androidバージョン8.0.0)では、「設定」→「ネットワークとインターネット」→「VPN」→「+」と進み、

AndroidのVPN設定1|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

「名前」→適当に

「タイプ」→”L2TP/IPSec PSK”

「サーバーアドレス」→Windows10の接続設定で説明した「サーバー名またはIPアドレス」

「IPSec事前共有鍵」→"VPN Server"で設定した「あらかじめ共有したキー:」

「ユーザー名」→"VPN Server"の「特権」で指定したユーザー名

「パスワード」→"VPN Server"の「特権」で指定したユーザーのパスワード

を設定し、[保存]をタップします。

毎度毎度思うのですが、どうして同じパラメータなのに提供するメーカーやシステムによって呼び名が違うのでしょうか。

AndroidのVPN設定2|VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j

保存した接続設定をタップし、[接続]をタップしたらVPN接続が行われます。接続中は通知領域に鍵マークが表示されます。

VPN接続を使うと外出先から自宅LANにあるSynology DiskStation DS218jのデータを安全に取り出せるというメリットがあります。

もともとVPNはそういう目的で作られているのですが、「自宅を経由してインターネット空間に接続できる」という仕組みによって、GoogleやLINEなどへのアクセスが遮断されている中国からでも、アクセスが可能になる、というメリットがあり、最近はその恩恵のほうが大きいのではないかと思います。

特にNOMIは時折仕事で中国に行くことがあるので、これはもう手放せないサービスですね。

ここではDS218jの"VPN Server"によるL2TP/IPSecでのVPN接続について説明しましたが、「Windowsのレジストリなんかいじりたく無い!」みたいな方は、【VPN Serverで自宅にVPN接続(OpenVPN編)~DiskStation DS218j】にOpenVPNでの接続方法も説明しています。

また、NOMI宅と違って元気なYAMAHA NVR500や510をお持ちの方は、【L2TP/IPsecで自宅にVPN接続~YAMAHA NVR500】にルーター直結のL2TP/IPSecでのVPN接続方法を説明しています。

よろしければ参考にしてください。