目次
自宅LANにOpenVPNを導入して外出先の Android スマホから自宅のNAS、Windows 10 搭載PCにアクセスしよう
本記事では自宅LAN環境、および Android スマホにOpenVPN を導入した経験をもとに
- OpenVPN導入前の前提条件
- OpenVPN導入後の自宅LAN環境
- OpenVPN導入手順の概要
- OpenVPN導入前後のパフォーマンス評価
について紹介します。
もし読者が自宅にVPNを導入し、外出先の Android スマホから自宅内のNASやWindows パソコンへのリモートデスクトップ接続がしたいとお考えでしたら
この記事をご覧頂くことで、OpenVPNのサーバ側、クライアント側、無線LANルータ、ファイアウォールを含めた設定の全てについてその概要を簡単に理解することが出来ます。
そして関連記事を最後まで読んで頂くと、外出先の Android スマホからLTE接続、もしくは公衆Wifiサービスを利用して自宅の OpenVPN Server とVPN接続し、セキュアな環境で、自宅のNASからの資料の取り出し、 Windows 10 搭載 PC へのRDP接続、ID/パスワード入力が必要なECサイトへのアクセスができるようになります。
OpenVPN導入前の前提条件
初めて自宅へVPNを導入する方は以下の作業が事前に必要となります。
- 外出先から自宅内無線LANルータへの疎通確認
- 無線LANルータへのVPNポート設定(OpenVPNはUDPポート1194を使用)
- 無線LANルータへのDDNS設定
これらの方法については以下に関連情報を紹介していますので必要に応じて参照ください。
また OpenVPN接続後に 外出先の Android スマホ・タブレットから自宅内 Windows 10 搭載 PC にRDP接続を行いたい方は、以下に関連情報を紹介していますのでこちらも必要に応じて参照ください。
また、ここでご紹介している Galaxy Note 20 Ultra 5G / Android 13 には事前にGoogle Playから以下の Apps がインストール、運用されています。
OpenVPNとは何か
OpenVPNは、オープンソースで開発された、リモートアクセスやサイト間の安全な通信を提供するソフトウェアで、TCPまたはUDPプロトコル上のTLS(Transport Layer Security)プロトコルを使用して暗号化されたトンネルを作成し、これらのサービスを提供します。
OpenVPNは、クロスプラットフォームで動作し、Linux、Windows、macOS、Android、iOSなどのさまざまなオペレーティングシステムで利用することができます。また、多くのセキュリティ機能を備えており、認証、暗号化、アクセス制御などの機能を提供します。
OpenVPN については OpenVPN.JP サイトにインストール方法も含めた詳細な情報が掲載されています。
OpenVPN導入後の自宅LAN環境
OpenVPN導入後の自宅LAN環境は次の通りです。
OpenVPN 関連ソフトウエアがインストールされている端末にはOpenVPNのアイコンを付加表示しています。
また、OpenVPNのアイコンが付加されていないNAS、Windows10 PC は自宅外の Galaxy Note 20 Ultra 5G からアクセスしたい自宅LAN内のターゲット装置、端末を示しています。
項番 | 役割 | OS | CPU | マシン名 | 備考 |
---|---|---|---|---|---|
① | OpenVPN Server | Microsoft Windows Server 2019 Essentials | Intel(R) Core(TM)i7-10510U CPU @ 1.80GHz | server_1 | 自宅内でActive Directory用に使用している常時起動PC |
② | OpenVPN Client |
Microsoft Windows 10 | Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz 1.99 GHz | client_1 | OpenVPN Server の正常性を確認するための 試験用 PC |
③ | Android 13 | Qualcomm Snapdragon 865 Plus/オクタコア | client_2 | OpenVPN Client として使用するモバイル端末 |
OpenVPN導入手順の概要
自宅LANヘのOpenVPN 導入手順の概要は以下の通りです。
なお、導入準備段階において server_1 から client_1、client_2へサーバー用秘密鍵/証明書、クライアント用秘密鍵/証明書を転送する必要があることから、これらは無線/有線LANで接続され、下記のファイルマネージャ等を利用して相互にファイル転送可能となっている必要があります。
項番 | マシン名 | 作業概要 | 作業詳細 | 備考 |
---|---|---|---|---|
① | server_1 |
OpenVPN Server設置 |
OpenSSL インストール |
Windows用のOpenSSLをインストールし、実行PATHを設定します |
② | OpenVPN インストール |
Windows用のOpenVPNをインストールし、実行PATHを設定します | ||
③ |
TLS認証鍵作成 |
OpenVPN がTLS認証で使用するTLS認証鍵を作成します。 | ||
④ |
認証局設置/秘密鍵/証明書作成 |
vpnux PKI Manager |
vpnux PKI Manager – 証明書管理ツールをインストールします。 |
|
⑤ |
認証局設置 |
vpnux PKI Manager を使って |
||
⑥ |
サーバー用秘密鍵/証明書の作成 |
vpnux PKI Manager を使って |
||
⑦ |
クライアント用秘密鍵/証明書の作成 |
vpnux PKI Manager を使って |
||
⑧ | OpenVPN Server有効化 |
コンフィグファイル作成 |
OpenVPN用のコンフィグファイルを作成します。 |
|
⑨ |
ファイアウォール設定 |
Windows Defender ファイアーウォールを起動しOpenVPNの利用ポート(TCP/UDPの1194番)をドメイン、プライベート、パブリックの全てを受信可能にします。 |
||
⑩ |
OpenVPN Server 起動 |
⑧で作成したコンフィグレーションファイルを使用してOpenVPN Serverを起動します。 |
||
⑪ | IPパケット転送設定 |
client_1 等LAN側から来たIPパケットをVPN側へフォワード(転送)する設定をします。 |
||
⑫ | client_1 |
OpenVPN Client設置 |
OpenSSL インストール |
Windows用のOpenSSLをインストールし、実行PATHを設定します |
⑬ | OpenVPN インストール |
Windows用のOpenVPNをインストールし、実行PATHを設定します | ||
⑭ | コンフィグファイル‘作成 | ③で作成したTLS認証鍵、⑤で作成した認証局鍵、⑦で作成したclient_1用秘密鍵/証明書をコンフィグファイル保存フォルダにコピーし、コンフィグファイルを作成します。 | ||
⑮ | OpenVPN Client 起動 | 作成したコンフィグファイルを参照しながらOpenVPN Client を起動し server_1へVPN接続します。 | ||
⑯ | OpenVPN Client 動作確認 | 管理者権限でコマンドプロンプトを起動しipconfig、ping コマンド‘等を使って各IPアドレスへの導通確認、経路確認を行います。また、VPN1 経由で、Windows 10 搭載 PC への RDP 接続、NASへのアクセスの動作確認もします。 | ||
⑰ | client_2 | OpenVPN Client設置 |
OpenVPN for Androidインストール | Android用のOpenVPN for Android をインストールします |
⑱ | server_1 | OpenVPN for Android用コンフィグファイル編集 | ③で作成したTLS認証鍵、⑤で作成した認証局鍵、⑦で作成したclient_2用秘密鍵/証明書を使ってOpenVPN for Android用コンフィグファイルを編集します。 | |
⑲ | client_2 | client_2用秘密鍵/証明書インポート | ⑰で作成したコンフィグファイルをclient_2(galaxy_tab)に転送し、OpenVPN for Androidヘインポートします。 | |
⑳ | 無線LANルータ |
無線LANルータ向けDDNS設定 | WAN側から無線LANルータへ到達できるようにDDNSを設定する。 | |
㉑ | VPN向けポートフォワーディング設定 | WAN側から来たIPパケット(UDPの1194番)をserver_1へ転送する設定を行います。 | ||
㉒ | VPN向けIPルーティング設定 | LAN側から来たVPNサブネットへのIPパケットのデフォルトGWをserver_1に設定します。 | ||
㉓ |
client_2
|
OpenVPN Server との接続確認 |
OpenVPN Client 接続 |
OpenVPN for Androidを起動し、server_1へVPN接続します。 |
㉔ | Termuxによる接続確認 |
Termuxを起動し、ifconfig、ping コマンドを使ってIPアドレス確認、OpenVPN Server との導通確認をします。 |
||
㉕ | 各種Android Apps 動作確認 |
ファイルマネージャーの動作確認 |
ファイルマネージャーを起動して自宅LAN内のNAS内のファイルが参照できることを確認 |
|
㉖ | Remote Desktopの動作確認 |
Remote Desktopを起動して自宅LAN内のWindows 10 搭載 PC にRDP接続内できることを確認 |
||
㉗ | Google Chrome の動作確認 |
Google Chrome を起動して自宅LAN環境でWEB閲覧ができることを確認 |
具体的な手順については以下の関連記事を参照ください。
この記事は主に以下の参考図書を参考にして記載しています。
洋書ですが今は ChatGPT などで気軽に翻訳、関連情報が検索できるので、以外に簡単に読めますよ。OpenVPNを極めたい方にはお勧めの一冊です。
OpenVPN導入前後のパフォーマンス評価
今回導入した OpenVPN 環境下での各種パフォーマンス変化は以下のようになりました。
通信のセキュリティ確保、外出先で自宅LAN環境にアクセス可能となる利便性と引き換えに通信パフォーマンスはそれなりに低下していますが
パケット毎に暗号化/復号化をしているので、いたし方ない所ではあります。
OpenVPN 未使用時 |
OpenVPN 使用時 |
OpenVPN 未使用:使用比 |
|
---|---|---|---|
インターネット速度(ダウンロード) | 45Mbps | 8.3Mbps | 未使用時の18% |
インターネット速度(アップロード) | 4.7Mbps | 3.8Mbps | 未使用時の80% |
アンロード済レイテンシ(遅延時間) | 66ms | 78ms | 未使用時の118% |
アンロード済レイテンシ(遅延時間) | 78ms | 524ms | 未使用時672% |
レイテンシ(遅延時間)とは、データがユーザーのデバイスからサーバーに送られた後、ユーザーのデバイスに戻ってくるまでの時間を指す言葉で、アンロード済みとロード済みの両方の接続速度の計測値です。
NETFLIX
- アンロード済みレイテンシ(遅延時間)とは、ネットワークに他のトラフィックが存在しない際に、要求が出されてから応答が帰ってくるまでのデータの往復時間です。
- ロード済レイテンシ(遅延時間)は、ネットワーク上でデータ使用量の多いアプリケーションを使用中の場合における、データの往復時間を意味します。
まとめ
本記事では自宅LAN環境にOpenVPNによるVPN環境を構築した経験をもとに以下のポイントについて紹介しました。
- OpenVPN導入前の前提条件
- OpenVPN導入後の自宅LAN環境
- OpenVPN導入手順の概要
- OpenVPN導入前後のパフォーマンス評価
この記事が読者の方に少しでもお役にたてると幸いです。
こんにちは!しらかば堂(@shirakabado)です。