VPN Serverで自宅にVPN接続(L2TP/IPSec編)~DiskStation DS218j
自宅に設置している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接続の設定]と進み、
[削除]をクリックして設定を削除します。ルーターへのポートフォワーディング設定
次に、L2TP/IPSecをDSMで利用できるように、必要なポート番号をDS218jのローカルIPアドレス"192.168.77.201″にポートフォワーディングします。
[詳細設定と情報] → [基本接続の詳細な設定]→「設定されているプロバイダの一覧」の有効なプロバイダから[設定]と進み、ここに静的IPマスカレード(ポートフォワーディング)の設定を追加します。[追加]ボタンをクリックして、
VPN Server の設定 | Synology Inc.の説明に従って、UDP1701、UDP500、UDP4500の三つの静的IPマスカレード設定を追加します。
VPN ServerのL2TP/IPSec有効化と設定
続いてDSMの「VPN Server」の設定です。
DSMへの"VPN Server"のインストールがお済みでない方は【VPN Serverで自宅にVPN接続(OpenVPN編)~DiskStation DS218j】を参考にインストールしてください。
DSMにログインして、
「メニュー」をクリックして[VPN Server]を開きます
設定画面が開いたら、左のリストから「L2TP/IPSec」を選択し、[L2TP/IPSec VPNサーバーを有効にする]にチェックを入れます。
各パラメーターはとりあえずそのままでOK。「あらかじめ共有したキー:」と「あらかじめ共有したキーを確定:」の二か所に適当な同じ文字列を入力します。
「あらかじめ共有したキー:」とはちょっと意味不明な感じがありますが、ここは英語で事前共有キーを表す"Pre-shared key"が自動翻訳で直訳されているだけですね。海外製機器の「あるある」です。
設定ができたら「適用」をクリックします。
ポート開放の確認ダイアログです。ルーターに設定済みなのでスルーします。[OK]をクリックして設定を確定します。
次に左のリストから「特権」を選択し、L2TP/IPSecでVPN接続をさせるユーザーを指定して[保存]をクリックします。
“VPN Server"の設定はこれで終了です。
Windows10のL2TP/IPSec VPNクライアントの設定
次にクライアントの接続設定ですが、ここからは面倒ですが自宅外のインターネット接続から行います。
まずWindows10です。
Windows10でインターネット越しに外部からSynology DiskStation DS218jに接続する場合、まずWindowsの「外部からルーターを通過した先にあるVPNサーバーにはデフォルトでは接続を許可しない」という設定を解除する必要があります。
なぜそういう仕様になっているのか、なぜその仕様を変更するのにレジストリを変更するというリスキーな操作を強いるのか、良くわかりません。
Windowsのレジストリエディタを開きます。
レジストリの修正は、一歩間違うとWindowsのシステムを破壊してしまうことがあります。作業の前にバックアップを取るなりして慎重に作業を行う必要があります。この記事を参考に修正を行って、不具合が発生してもNOMIは責任を持てませんのであしからず。
白状すると、このレジストリの修正方法については、いろんな方が公開されています。NOMIはその方法をまねているだけです。
上の例ではコルタナから"regedit"で検索して開いていますが、スタートメニューの「Windows管理ツール」から開くこともできます。
レジストリエディタが開いたら、"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent"を開きます。
ここに"AssumeUDPEncapsulationContextOnSendRule"というキーがあれば値を変更すればOKですが、NOMIのパソコンにはキーそのものが無かったので、上記のように右クリックから"DWORD(32ビット)値(D)"を開き、
新しくできた値を右クリックして[名前の変更(R)]から、名前を、
“AssumeUDPEncapsulationContextOnSendRule"に変更してダブルクリックし、[値のデータ(V):]を"2″に変更して[OK]をクリックします。
値を確認したらパソコンを再起動します。
パソコンが起動したらWindowsにログインし、
[設定]を開きます。 [ネットワークとインターネット]をクリックします。 [VPN]をクリックして[VPN接続を追加する]をクリックします。「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"に設定した「あらかじめ共有したキー:」と同じ文字列を設定。「サインイン情報の種類」は[ユーザー名とパスワード]を選択し、下にスクロールします。
「ユーザー名(オプション)」、「パスワード(オプション)」には、DSMの"VPN Server"の「特権」の設定で、L2TP/IPSecでVPN接続をさせるように指定済みのユーザー名とパスワードを入力します。このWindows10のアカウントは自分専用なので「サインイン情報を保存する」にチェックを入れ、[保存]をクリックします。
設定ウィンドウが閉じたら、「接続名」のVPN接続が作られていることを確認し、[アダプターのオプションを変更する]をクリックします。
「接続名」の接続アダプタを選択して[この接続の設定を変更する]をクリックします。
「セキュリティ」タブを開き、「次のプロトコルを許可する(P)」を選択して「Microsoft CHAP Version2 (MS-CHAP v2)」にチェックが入っていることを確認して[OK]をクリックします。設定はこれでOKです。
ここで設定したWindows10パソコンを自宅外から繋ぎます。NOMIはスマホのテザリングを使ってパソコンを繋いでテストしました。
タスクバーからネットワークアイコンをクリックし、作成した「接続名」を開いて[接続]をクリックして、ステータスが「接続済み」に変わればOKです。
ちなみにVPN接続中の端末は、DSMの"VPN Server"を開いて、
[接続リスト]から確認することができます。iPad(iOS)のL2TP/IPSec VPNクライアントの設定
続いてiPad(iOS)のクライアント設定です。iPhoneでも基本的にやり方はおなじ(はず)です。
[設定]→[VPN]→[VPN構成を追加…]を開きます。「タイプ」は”L2TP”。「説明」は適当に。「サーバ」はWindows10の接続設定で説明した「サーバー名またはIPアドレス」と同じ。「アカウント」、「パスワード」にはDSMの"VPN Server"の「特権」で指定したユーザー名とそのパスワードを、「シークレット」には「あらかじめ共有したキー:」と同じものをそれぞれに入力します。
設定が終わったら[完了]をタップします。
保存されたVPN接続を選択し、スイッチを入れます。接続が確立するとスイッチが緑に代わり、通知領域にVPNマークが表示されます。
AndroidのL2TP/IPSec VPNクライアントの設定
Androidは機種とバージョンによって多少設定手順が異なります。
NOMIの手持ちの”Moto Z Play(Androidバージョン8.0.0)では、「設定」→「ネットワークとインターネット」→「VPN」→「+」と進み、
「名前」→適当に
「タイプ」→”L2TP/IPSec PSK”
「サーバーアドレス」→Windows10の接続設定で説明した「サーバー名またはIPアドレス」
「IPSec事前共有鍵」→"VPN Server"で設定した「あらかじめ共有したキー:」
「ユーザー名」→"VPN Server"の「特権」で指定したユーザー名
「パスワード」→"VPN Server"の「特権」で指定したユーザーのパスワード
を設定し、[保存]をタップします。
毎度毎度思うのですが、どうして同じパラメータなのに提供するメーカーやシステムによって呼び名が違うのでしょうか。
保存した接続設定をタップし、[接続]をタップしたら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接続方法を説明しています。
よろしければ参考にしてください。
ディスカッション
コメント一覧
NVR500とDS218jのVPN(IpSec)は各々どれぐらいのスループットでしょうか?
ごめんなさい。あんまり速さを気にしたことないので未検証です。そもそもNOMI宅の回線が早くないので検証しても意味ないかと。