自分専用のVPNが構築できればいいなぁと常々思っていたのですが、この度ようやく実現することができました。
自分用のメモも兼ねて手順を紹介しますので、これから構築する方や、構築しようとしているけれど、なかなかうまくいかない・・・という方の参考になれば幸いです。

VPNで実現したいシステム

今回採用した無線LANルータはBUFFALOのWXR-1900HDR3です。この機種はVPNサーバ機能の他、簡易NASの機能も持っています。ここに手持ちのHDDを接続し、外部ネットワークからNAS上の共有フォルダにアクセスできるようにすることを目指します。

環境

器機・契約内容は下記の通りです。なお、BIGLOBE契約時に通知された「ネットワーク機器の設定情報」が必要になりますので事前に資料を探しておきましょう。

ルータBUFFALO WXR-1900HDR3
プロバイダBIGLOBE
契約コースビッグローブひかり
NAS用HDDIODATA  HDCA-UT2.0K (2TB)
設定用PCWindows10, ブラウザはcrhome
VPN接続端末iPhone XR, ブラウジングアプリはDocument

まずは基礎知識から!

VPN・NASへのリモートアクセスを実現するためには、いくつかのネットワーク知識が必要になります。ここでは復習を兼ねて簡単に説明しようと思います。(「IPアドレス」,「LAN」,「WAN」,「DNS」の意味は既に知っている前提になります)
そんなの知ってるよーという方はVPNサーバの設定まで飛ばしてください。

VPN(Virtual Private Network)

VPNとはインターネット上に仮想の専用回線を配置して通信を行うネットワークです。専用回線内は暗号化されているため、盗聴・改ざんが不可能で安全なネットワークと言えます。
遠隔地からでも特定のネットワークに参加できるため、在宅勤務で会社のサーバにアクセスしたり、社内システムを利用したりなど、コロナ渦で出社が制限される現在では必要不可欠な技術となっています。

一部の動画サイトやニュース関連サイトは海外から見れないものがあります。(例えばHuluやYahooニュースなどは有名です)なぜこのようなことができるかというと、アクセス元の地域が、インターネット上の住所であるIPアドレスによってある程度分かってしまい、フィルタリングされていることが原因です。※フィルタリングする理由は企業の経営戦略や政治的な理由やなど様々ですので、深くは突っ込まないことにします。

ここで、日本の自宅に設けたVPNサーバを経由し、海外から日本国内限定サイトにアクセスしたとします。海外のネットワークからのリクエストは暗号化されて自宅のVPNサーバに送られます。リクエストを受け取ったVPNサーバは、発信元を国内のネットワークとして国内限定サイトにアクセスします。ここで、サイトに送られるIPアドレスは間違いなく日本のものなので、国内限定サイトからは国内の端末からのアクセスに見えるのです。サイトから応答を受け取ったVPNサーバはそれをさらに暗号化して外部ネットワークの発信元端末に送信します。これでめでたく海外のネットワークからでも国内限定サイトにアクセスすることができました。

このように、VPNに接続している端末は遠隔地にいながら、インターネット上のふるまいは全て自宅LANの中と同様に行えるのです。

NAS(Network Attached Storage)

NASとはネットワークに直接接続ができるストレージ(記憶装置)です。一般ユーザからするとHHDは外付けかPC内蔵が普通ですが、NASの場合は直接LANケーブルに接続が可能です。
NASには外付けHDDと異なりCPU・OS・ストレージ管理用のソフトウェアが内蔵されており、このソフトウェアを使って設定することで簡単に共有フォルダを構築することができます。CPUやOSが載っている分、USB接続などの外付けHDDより高価になりがちですが、常時稼働に特化しているため高耐久です。

難しく考えず、「共有フォルダを実現する器機」「LANケーブルが刺せるHDD」などの認識で良いかと思います。

一般にNASと言えば上記で説明したNASを刺しますが、今回使用するルータ「WXR-1900HDR3」にはUSBでストレージを接続できる機能「簡易NAS」が備わっていたため、これを使います。

PPPoE(PPP over Ethernet)

PPPoEの前に、PPPについて知っておきましょう。
PPPはPoint to Point Protocolの略で、その名の通り2点間を接続するプロトコルです。元々は電話回線を使ったPC間の接続に使われていましたが、扱いやすい・高機能であるといった特徴から、ネット接続がEther-netに置き換わった今でも使用されています。Ether-netで実現するPPPがPPPoE(PPP over Ethernet)です。
また、ここで言う「2点間」とは、1点はVPNを実現したいルータ、もう一点はプロバイダの網終端装置です。ルーターから一歩外に出ればそこはインターネットの海、と思われがちですが、実際はもう1ステップあります。PPPoE通信をするルータであれば、まずは契約しているプロバイダの「網終端装置」という装置に集められます。ここを出て初めて、本当の意味のWWW(World Wide Web)、すなわちインターネットに出ていくのです。

DDNS(Dynamic DNS)

DNSはIPアドレスとホスト名の変換を行ってくれるシステム(サービス)のことですが、DDNSは、IPアドレスが変更されても、それに合わせてホスト名へのアドレス割り当てを自動で変更してくれるサービスです。

必須ではありませんが、これを使うことでVPNに接続する端末の設定を変更しなくてよくなります。
また、同じ目的を果たすためにWAN側IPアドレスを固定するサービスもありますが、こちらはDDNSと比較してかなり高価になります。

参考情報

2021年3月現在、BAFFALOのDDNSサービスは月額330円、biglobeは月額200円です。

これに対し、BUFFALOの固定IPサービスは月額料金が3500円です。個人でIPアドレスを固定するためだけに毎月3500円の出費は非常に痛いです。

DDNSであればドメインを取得できるので、ある程度自由な文字列をサーバ名に指定できます。管理の観点でもIPアドレス固定サービスよりもDDNSが断然オススメです。

VPNサーバの設定

PPPoEの接続設定

WXR-1900DHP3ではIPv4の通信でしかVPNを実現できません。そのため、IPv6オプションに加入していた私の場合はPPPoE通信を有効にし、IPv4での通信に切り替える必要がありました。

ルータのWANとモデムを接続し、AirStationに接続します。初期状態では192.168.11.1でアクセスできます。管理IDとパスワードは初期状態でadmin, passwordです。


初期画面から詳細設定に入ります。


LANタブ→PPPoEをクリックします。
接続先名称は任意です。プロバイダの名前が無難でしょうか。私っはBIGLOBEとしました。接続先ユーザー名、接続先パスワードは契約時の送付資料に記載があります。BIGLOBEの場合、「BIGLOBE会員証」という冊子の表紙に記載がありました。

サービス名はBLANKで構いません。全て入力したら、新規追加をクリックします。

「デフォルトの接続先」と「IP Unnumbered使用時の接続先」が今追加したプロバイダになっていることを確認し、画面右下の「設定」をクリックします。

Internet設定

Internetタブを選択し、Internetをクリックします。

  1. 「IPアドレス取得方法」で、「PPPoEクライアント機能を使用する」にチェックを入れます。
  2. 設定をクリックします。

うまく接続できた場合、ホームボタンの隣にある地球のアイコンの×印が取れます。×が残ったままの場合はその場合はPPPoEの接続設定をよく見直して下さい。


ここまでの設定で、インターネットブラウジングができるか確認しましょう。

VPNサーバの設定

Internetタブ→「VPNサーバー」をクリックします。

  1. 今回のVPN接続端末はiPhoneですので、VPNサーバー機能のプルダウンからL2TP/IPsecを選択します。(Windows PCで接続したい場合はPPTPです。)
  2. 「事前共有キー」はパスワードのようなものです。任意の文字列を入力します。後でiPhoneに入力が必要になるので控えておきましょう。サーバIPアドレス・クライアントIPアドレス・DNSサーバのIPアドレスなどはそのままで大丈夫です。
  3. VPNユーザを追加します。「VPN接続ユーザーの設定」をクリックし、任意のユーザーを追加します。
  4. 最後に設定をクリックします。


これでVPN接続するためのサーバ側設定は完了しました。あとは、iPhoneに設定する際に必要になるWAN側IPアドレス(グローバルIPアドレス)を調べておきます。ホーム画面から「デバイスコントロール」をクリックし、「インターネット」の中に表示されているアドレスが、現在使用しているWAN側IPアドレスになります。後でiPhoneに入力するのでメモっておきましょう。

iPhoneでVPNに接続する

iPhoneでVPN接続を試すとき、Wi-FiはOFFにしておきましょう。4G回線の状態で接続できれば、外部から自宅のVPNに参加できたことが確認できます。

VPN設定は設定アプリから行います。設定アプリを開き、一般→VPNと進み「VPNを追加…」をタップします。

  1. タイプを「L2TP」に変更します。
  2. 説明:任意の文字列。ラベルなので自分が分かり安い名前にしましょう。
  3. サーバ:ルータのWAN側アドレスです。先ほど調べた値を入力します。
  4. アカウント:VPN設定の際に作成したVPNユーザーのユーザー名を入力します。
  5. パスワード:VPN設定の際に作成したユーザーのパスワードを入力します。
  6. シークレット:事前共有キーを入力します。
  7. 入力が完了したら完了をタップし、VPN構成の状況をONにすると接続が始まります。成功すれば、5~20秒程度で接続され、画面右上に「VPN」が表示されます。

NASの設定

続いてNASの設定です。「簡易NAS」という機能を使います。

  • ルーターのUSBポートにストレージメディア接続します。
  • アプリケーション→ディスク管理をクリックします。
     ここで、「デバイスが未接続です」と表示された場合は「USBデバイスの再認識」をクリックします。
  1. メディアがUSB3.0対応であれば、USB動作モードで「USB3.0で動作させる」にチェックを入れます。
    「拡張機能」の下に、接続したメディアの名前が表示されるので、クリックして展開します。
  2. 操作から「フォーマット」をクリックします。ファイルシステムはXFSを指定してフォーマットを実行しましょう。※XFSでフォーマットした後はWindowsPCに直接接続しても認識されなくなります。再度外付けデバイスとして使いたいときはWindowsで使用可能なファイルシステム(FATなど)にフォーマットし直す必要があります。
  3. 設定をクリックします。

フォーマットを行うと、ストレージメディアに入っていたデータすべて削除されてしまいます。大切なデータは別のストレージに移動しておきましょう。


ホーム画面に戻り、「USBストレージ」のパネルに接続したメディアが表示されているか確認します。容量が数十MBしかない場合はうまく認識されていません。接続とフォーマットをもう一度試してみてください。

問題なく残り容量が表示されていれば設定完了です。同じLANに接続しているWindowsPCからアクセスできるか確認してみましょう。
エクスプローラを開き、アドレス欄に\\[エアーステーション名]を入力します。エアーステーション名はシステムタブで確認・変更ができます。disk1_pt1というフォルダが見えればアクセス成功です。

ここで私の場合、「設定は正しいのにアクセスできない」という問題に直面しました。色々と調査したところ、ルーター設定ではなくWindows側の問題であり、エクスプローラでネットワークドライブが表示できないという状態になっていました。

これについてはWindows updateすることで解決することができました。NASにアクセスできない時は、ルーター設定の間違いを疑うだけでなく、接続しようとしているPC側にも問題があるパターンもあることを意識しておくと良いかもしれません。

iPhoneで共有フォルダにアクセス

VPNに入った状態で、この共有フォルダにアクセスできれば目標達成です。あと一息なので、頑張りましょう!

iPhoneでネットワークドライブにアクセスするためにはファイルマネージャーアプリが必要になります。今回は無料アプリの「Documents」を使います。こちらがAppStoreのリンクです。

有料のサービスは一切不要です。

初回起動時に有料プランの初月無料コースに誘導されますので気を付けてください。

本来であれば、このようなファイルブラウジングはiOS標準アプリである「ファイル」が使えるはずでした。しかし、私が試したところ、接続はできてもファイルが一切見えないという不具合に直面。ネットを調べると、同じような症状を経験している人は少なくないことが分かりました。今後のアップデートで改善されるのか定かではありませんが、ここでは私が実際に成功した方法を紹介します。

  1. 先ほど設定したVPNに接続します。
  2. Documentsを起動し、「接続先」→「接続先を追加」→「WIndows SMB」の順でタップします。
  1. 題名は任意の名称を入力します。URLはsmb://[エアーステーション名]を入力します。エアーステーション名は「管理」タブの「システム設定」から変更・確認が可能です。ログインとパスワードには、NAS設定時にユーザーを設定していれば入力が必要です。
  1. 最後に右上の「完了」をタップすれば接続が開始します。先ほどエクスプローラで確認したdisk1_pt1というフォルダが見えれば成功です。

DDNSの必要性について

ここまでの設定でVPN接続からNASの共有フォルダにアクセスすることを実現することができました。しかし、ルータのグローバルIPアドレスは動的なものであるため、何らかの拍子にアドレスが変わってしまう可能性があります。
IPアドレスが変わってしまうタイミングは主に下記の通りです。

  1. ルータを再起動したとき
  2. インターネット接続設定を変更したとき(IPv6→PPPoEに変更したときなど)
  3. 長い時間ルータを介して通信が行われないとき

年間2~3千円でこれらのリスクを排除できるので、VPNを複数人で使用していたり、確実な接続性を確保したい場合はDDNSの申し込みを検討したほうがよさそうですね。

簡易NASの転送速度について

USB3.0の転送速度はUSB2.0と比較すると非常に早く、数GBのデータを転送するとその違いがよく分かります。私の環境ではPCへの直結でUSB3.0で最高150Mbps, USB2.0で45Mbps程度でした。
AirStationの設定項目に「USB3.0を使用する」という項目があるくらいなので最低でもUSB2.0並みの速度は出るだろう、と期待していましたが、実際にやってみると10Mbps出るか出ないか。最高でも11Mbpsを少し超える程度でした。
USB3.0のPC直結と比較すると、なんと十分の一以下の速度です。HDDであるためUSB3.0の速度を活かしきれないのは分かりますが、流石に遅すぎました。
これが”簡易”NASという事でしょうか。LANケーブルはCAT5eなので100Mbpsは出るはずですが、古いものなので怪しいのかもしれません。