【自宅VPN構築】#11 自宅LANにOpenVPNを導入して外出先の Android スマホから自宅のNAS、Windows 10 搭載PCにアクセスしよう

自宅LANにOpenVPNを導入して外出先の Android スマホから自宅のNAS、Windows 10 搭載PCにアクセスしよう

しらかば堂

こんにちは!しらかば堂(@shirakabado)です。

本記事では自宅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サイトへのアクセスができるようになります。

ファイルマネージャによる
自宅NASへのアクセス
Remote Desktop による
自宅 Windows 10 搭載 PC への RDP接続
Google Chrome による
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 を使って
server_1用秘密鍵/証明書を作成します。

⑦

クライアント用秘密鍵/証明書の作成

vpnux PKI Manager を使って
client_1、client_2、galaxy_tab
用秘密鍵/証明書を作成します。

⑧ 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導入前後のパフォーマンス評価

この記事が読者の方に少しでもお役にたてると幸いです。