【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

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

この記事は外出先から自宅内の NAS や Windows 10 搭載 PC に接続したい方向けに
Android スマホに OpenVPN Client として OpenVPN for Android を設置し
これを自宅内の OpenVPN Server と接続する方法をご紹介します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

この記事を読んで頂くと、外出先の Android スマホからLTE接続、もしくは公衆Wifiサービスを利用して自宅の OpenVPN Server とVPN接続し

セキュアな環境で、自宅のNASからの資料の取り出しWindows 10 搭載PC へのRDP接続ID/パスワード入力が必要なECサイトへのアクセスができるようになります。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
ファイルマネージャによる
自宅NASへのアクセス
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
Remote Desktop による
自宅 Windows 10 搭載PC への

RDP接続
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
Google Chrome による
EC サイト へのアクセス

 

具体的には Android スマホにOpenVPN Client を設置し、OpenVPN Server と接続する方法について以下の項目に沿って紹介します。

  • OpenVPN Client 設置手順
  • 無線ルータ設定手順
  • OpenVPN Server へのVPN接続切断手順
  • OpenVPN Client の自宅LAN環境への接続確認手順
  • VPN接続後の自宅無線LAN環境内アプリケーション動作確認手順
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

ここでは Android スマホとして Android 13 を搭載した SAMSUNG Galaxy Note 20 Ultra 5G を使用して動作検証しています。

この Android スマホには事前にGoogle Playから以下のアプリがインストール済で、無線LAN環境内で既に運用実績があります。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

Android用のOpenVPNアプリには、「OpenVPN for Android」と「OpenVPN Connect」の2種類ありますが、「OpenVPN Connect」は、OpenVPN Technologies 社の商用アプリで、同社の「OpenVPN Access Server」用なので対象外としてしています。

一方「OpenVPN for Android」はオープンソースのアプリで、機能も豊富であり、OpenVPN接続のさまざまなパラメータがカスタマイズ可能です。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

まだ自宅無線LAN環境内に OpenVPN Server を設置されていない方は、以下の関連記事を参照頂き、まず OpenVPN Server を設置しましょう。

【自宅VPN構築】#11 自宅LANにOpenVPNを導入して外出先の Android スマホから自宅のNAS、Windows 10 搭載PCにアクセスしよう
【自宅VPN構築】#12 Windows 2019 Server Essentials 搭載 PC にOpenVPN Serverを設置しよう
【自宅VPN構築】#13 Windows 2019 Server Essentials 搭載 PC で OpenVPN Serverを立ち上げよう
【自宅VPN構築】#14 Windows 10 搭載 PC にOpenVPN Client を設置し、OpenVPN Serverと接続しよう

 

 

OpenVPN Client 設置手順

OpenVPN for Android インストール

まず Android スマホに以下のサイトもしくは Google の プレイストア から

というアプリをインストールします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると以下の画面が現れるので、これで OpenVPN For Android のインストールは終了です。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

 

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

この記事は主に以下の参考図書を参考にして記載しています。
洋書ですが今は ChatGPT などで気軽に翻訳、関連情報が検索できるので、以外に簡単に読めますよ。OpenVPNを極めたい方にはお勧めの一冊です。

コンフィグファイル作成手順

OpenVPN Server 内のコンフィグファイル保存フォルダ

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

それでは、以下のVPN接続図を前提としてVPN2 接続を行うためのコンフィグファイルを作成する方法について紹介します。

以下の図は OpenVPN Client を設置する Android スマホ client_2 OpenVPN Server が設置されている server_1 とのVPN接続図です。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#12 Windows 2019 Server Essentials 搭載 PC にOpenVPN Serverを設置しよう

このOpenVPN for Android 用の設定を行うためには、関連記事#12 中で作成した

server_1 の OpenVPN コンフィグファイル保存フォルダ

C:\Program Files\OpenVPN\config

配下にあるファイルをいくつか利用します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

コンフィグファイルの作成

具体的には、Windows Server 2019 Essentials 搭載の Server_1 上で側で作成した先ほどのフォルダ内の以下のファイル

  • CA.crt (認証局証明書)
  • client_2.crt (client_2用証明書)
  • client_2.key (client_2用秘密鍵)
  • ta.key (TLS認証鍵)

 を取り込む形で以下のような MyHome_Server_1.ovpn コンフィグファイルを作成し、これを Android スマホ内から参照可能な共有フォルダヘ保存します。

proto udp
port 1194
nobind
dev tun

client
remote ドメイン名

remote-cert-tls server
tls-auth [inline] 1

ca       [inline]
cert     [inline]
key      [inline]

cipher AES-256-CBC
auth SHA256

<ca>
-----BEGIN CERTIFICATE-----
MIIEmDCCA4CgAwIBAgIJALiXfT9vNnOBMA0GCSqGSIb3DQEBCwUAMIGOMRcwFQYD
VQQDEw5TaGlyYWthYmFkbyBDQTEUMBIGA1UEChMLU2hpcmFrYWJhZG8xETAPBgNV
                 :
                 :
8C8Z5dWOWv+t2YXIEyb/422Uf+fftMHsyyUTbcWbTnu2kb4t3BO2EeX5TWAEPMEp
p6Jraj3WIJtjAiGZgsYwse3zv2P+/I9URrNz8BVhBnPsNRVeAoPeaRkGmvMkGxAJ
NFMKoA2darkpedEp5nBw1K8qtCFF6LyYYvvZRw==
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
MIIE6DCCA9CgAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBjjEXMBUGA1UEAxMOU2hp
cmFrYWJhZG8gQ0ExFDASBgNVBAoTC1NoaXJha2FiYWRvMREwDwYDVQQHEwhLYW5h
                 :
                 :
5ZMqTzQWOLMs62uB7Uczx1mqw9mvkrblgyDesxdUvCB5SYQJPD90MvibWZEoONlE
GrPDl5JByl0ZUbB3QujCWZiSIOeoJH3C0yZWCwvixFnY6MuRJwzwsNc4mJWA1/CW
AXfvH5mjTl9sCOgJ
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDI0empKTRAHhxV
ZrRykEEQySydP5Ew2dpzf1Clx1F9uQl9CPWhkR0SiDnaj/8de1dqHH+VRdiNNDjn
                 :
                 :
3DeoKCkOgfFZgu3HewbwA0sOM1jfQatf2zWbl4FhB4yY9e+B5T/vOub5U9o58l+8
xFl2kzf7iCbWRVYZZQvBL/evo9oU8ADX1tuj3ZZ2XI1C12AXjVEu6SKm0MOr4mu4
roNAyp3vdLJ4BPLhYyk3b84h
-----END PRIVATE KEY-----
</key>

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
e764ecaf4c35928170e3f2011294cba2
481c06c5948f3b9983785251dd3ffc67
               :
               :
a2f4ec2161ed0bd593e51f81f1e53c5f
133107fc3ea87c0efdcdbf7e303530d2
-----END OpenVPN Static key V1-----
</tls-auth>

 

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

コンフィグレーションファイル中に

  • CA.crt (認証局証明書)
  • client_2.crt (client_2用証明書)
  • client_2.key (client_2用秘密鍵)
  • ta.key (TLS認証鍵)

を取り込むとはどういうことかというと、それぞれ

  • <ca> ~ </ca> タグ
  • <cert> ~ </cert> タグ
  • <key> ~ </key> タグ
  • <tls-auth> ~ </tls-auth> タグ

の間にそれぞれのファイルの内容を差し込むという意味です。

そしてそれらは [inline] というパラメータを使って参照されます。

これらのオプションは次のような意味を持っています。

行番号 オプション 設定値 意味
1 proto udp OpenVPNが使用するプロトコルを指定します。
udp はデフォルトのプロトコルですが、明確化のため明示的に指定します。
2 port 1194 OpenVPNサーバがリッスンするローカルポート番号を指定します。
これもデフォルト値は1194ですが、明確化のため明示的に指定します。
有効なポート番号であればどの番号でも使用可能です。
3 nobind OpenVPNクライアントが port オプションで指定されたポート番号ではなく匿名ポートレンジ(1024~65335)からランダムなポート番号を選択します。
4 dev tun クライアントに使用されるデバイスモードをサーバ同様 tun を指定します。
6 client OpenVPNのクライアントがTLS認証を使用するかどうかを設定するものです。
7 remote  ドメイン名 OpenVPNのサーバー名をドメイン名で指定します。
9 remote-cert-tls server TLS認証鍵 を持つVPNサーバからの接続のみを許可するよう指定します。
10 tls-auth [inline] 1 TLS認証鍵 へのパスを指定します。
パラメータ 1 はキーの方向性を表しており、クライアント側では1を指定します。
12 ca [inline]

このコンフィギュレーションファイル中の<ca> ~ </ca>
タグで囲まれた部分

つまりこの例では
20行目~28行目
認証局証明書として使用します。

13 cert [inline]

このコンフィギュレーションファイル中の<cert> ~ </cert>
タグで囲まれた部分

つまりこの例では
32行目~40行目
をクライアント用証明書 へのパスを指定します。

14 key [inline]

このコンフィギュレーションファイル中の<key> ~ </key>
タグで囲まれた部分

つまりこの例では
44行目~52行目
クライアント用秘密鍵 へのパスを指定します。

16 cipher AES-256-GCM VPN接続に使用する暗号アルゴリズムを指定します。
17 auth SHA256 VPN接続に使用するメッセージダイジェストアルゴリズムを指定します。
19-29 <ca>

</ca>
認証局証明書 の実体を差し込んであるところ。
20行目~28行目は CA.crt
 の内容と同一
31-41 <cert>

</cert>
クライアント用証明書 の実体を差し込んであるところ。
32行目~40行目は client_2.crt
の内容と同一
43-53 <key>

</key>
クライアント用秘密鍵 の実体を差し込んであるところ。
44行目~52行目は client_2.key
 の内容と同一
55-64 <tls-auth>

</tls-auth>
TLS認証鍵 の実体を差し込んであるところ。
56行目~63行目はta.key
の内容と同一
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

この自宅LAN環境内には NASがあり、予めこのNASのフォルダを \\194.168.aaa.14\disk1\ (= Z:\ ドライブ) で参照できるようになっています。

先ほどのコンフィグファイルは

Z:\vpnuxPKI_config\MyHome_Server_1.ovpn

に保存しています。

【Windows環境設定】VBScript とバッチファイルを利用しNASをネットワークドライブに組み込む

このファイルは 無線LAN環境内の Android スマホの ファイルマネージャ から直接参照可能です。

 

コンフィグファイルのインポート手順

コンフィグファイル MyHome_Server_1.ovpn の準備ができたのでこれを OpenVPN for Androd にインポートします。

具体的には OpenVPN for Android の上部右にある + ボタンをタップすると

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


次のようなポップアップ画面が出てくるので INPORT ボタンをタップすると

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


インポートのためのアプリを選択する左の画面が出てくるので ファイルマネージャを選び、順にリモート192.168.aaa.14 ボタンをタップしていき

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


さらに disk1vpnuxPKI_config フォルダを選択していき、最後に MyHome_Server_1.ovpn ファイルを選択して下の選択ボタンをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると 左のProfile Name を入力するフィールド入力の画面が出てきますので、これを記入し、右上の☑ボタンをタップすると、これで入力したProfile Name による OpenVPN for Android のコンフィグファイルが完成し、中央のような画面になります。

今後この画面が自宅LAN環境へのVPN接続をする際のキーとなる画面になります。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

 

コンフィグレーションの確認手順

それではインポートされたコンフィグレーションの内容を確認してみましょう。

この MyHome_Server_1 で定義されたコンフィグレーションの内容を確認、編集するときは右側の鉛筆マークをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると画面上部で8個のタブで区分された、コンフィグレーション内容を確認することが出来ます。

項番 タブ名 概要 備考
1 BASIC VPNコンフィグレーション名、認証局、クライアント証明書、クライアント鍵関連の設定値
2 SERVICE LIST サーバのアドレス/名称、使用プロトコル、ポート番号等の設定値
3 IP AND DNS IPアドレスやルーティングについてサーバ側のpush指定に追従するか否かの設定値 現状サーバ側のpushに従い、ポートのバインディング指定はない(つまり起動側のポートはanomimousポートから選ばれる)設定になっている。
4 ROUTING VPN接続後のルーティングの扱いに対する設定値 VPN設定後は全てのパケットをVPN経由で送信する設定になっている。
5 AUTHENTIFICATION/
ENCRÝPTION
OpenVPN Serverとの通信にTLSを前提とするか否かの設定。 TLSを前提とする設定になっている。
6 ADVANCED 現状特に指定なし
7 ALLOWED APPS OpenVPN接続後に実行可能なAppsを指定する設定。 現状VPN上で全てのAppsの実行が許容状態。 
8 GENERATED CONFIG 全てのコンフィグレーションを可読可能なテキストで確認する画面。 UIで設定された各種コンフィグレーションがOpenVPN のオプションとしてどのように解釈されているかを確認するのに便利。

まず以下の画面が

  • BASIC
  • SERVER LIST
  • IP AND DNS

相当の情報確認画面です。元の画面に戻りたいときは、画面右下の < ボタンをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


次に以下の画面が

  • ROUTING
  • AUTHENTIFICATION/ENCRYPTION
  • ADVANCED

相当の情報確認画面です。元の画面に戻りたいときは、画面右下の < ボタンをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


最後に以下の画面が

  • ALLOWED APPS
  • GENERATED CONFIG

相当の情報確認画面です。元の画面に戻りたいときは、画面右下の < ボタンをタップします。

この GENERATED VONFIG は各タブの設定値をもとに最終的にOpenVPN コンフィグファイルがどんなコンフィグになったのかを確認するうえで非常に重要です。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

無線LANルータ設定手順

ここで改めて

  • OpenVPN Client が設置されている Android  端末 client_2
  • 自宅無線LANルータ
  • OpenVPN Server が設置されている Windows 2019 Server Essentials 搭載の PC server_1

の位置関係を再確認しておきましょう。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

この図で OpenVPN Client OpenVPN Server が互いにパケットをやり取りがするためには無線LANルータの中で次の3点が設定されている必要があります。

項番 設定すべき事柄 前提条件 無線LANルータ上で必要な設定
1 OpenVPN Client が設置されている Android スマホ client_2 から無線LANルータに向けてOpenVPNパケット(UDPの1194番使用)が到達する必要あり 無線LANルータのWAN側IPアドレスがDDNS(Dynamic DNS)サービスにより名前登録されている必要がある DDNS設定
2 無線LANルータに到達したOpenVPNパケット(UDPの1194番使用)が Windows Serever 2019 Essentials 搭載PC server_1 へ到達する必要あり OpenVPNの使用ポートはUDP:1194 UDP:1194 に対する server_1 へのポートフォワード設定
3 LAN側からVPNサブネットへ向かうIPパケットのゲートウエイが Windows Serever 2019 Essentials 搭載PC server_1であることをLAN内に周知する必要あり OpenVPNのサブネットとしては 10.200.0.0 を使用 VPN(10.200.0.0)向けIPルーティング設定


ではそれらの設定について、この環境下にある無線LANルータ Buffalo Air Station WSR-3200AX4S (Version 1.30) を例にご紹介します。

まず、このChrome等のブラウザでこの無線LANルータの ログイン 画面にアクセスし

  • ユーザー名
  • パスワード

を入力します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


そして現れた画面で 詳細設定 をクリックします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

DDNS設定

続いて

Internet > DDNS

を順に選択し、必要に応じて現れた次の画面で DDNS のサービスプロバイダとの契約に基づき

  • ダイナミックDNS機能
  • e-mailアドレス
  • パスワード
  • ホスト名

等を入力します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

DDNSは、Dynamic DNSの略で、動的IPアドレスを使用しているネットワークにおいて、ホスト名とIPアドレスの対応付けを自動的に更新する仕組みです。

DDNSを使用することで、インターネットに接続された機器に対して、簡単に名前解決を行うことができます。

DDNSについては必要に応じて以下の記事も参考にして下さい。

【自宅VPN構築】(その9) 無線LANルータにDDNS設定を追加する

OpenVPN Server 向けポートフォワーディング設定

続いて

ルータセキュリティ > ポート変換

を順に選択し、現れた次の画面で 新規追加 ボタンクリックし

  • 新規追加: OpenVPN (というグループ名)を入力
  • Internet側IPアドレス: エアーステーションのInternet側IPアドレス を選択
  • プロトコル: TCP/UDP を選択
  • 任意のTCP/UDPポート:1194 を入力
  • LAN側IPアドレス: server_1 のIPアドレスを入力
  • LAN側ポート TCP/UDPポート:1194 を入力

し、新規追加 ボタンをクリックすると、ポート変換登録情報 欄に登録した内容が表示されます。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

VPNサブネット向けIPルーティング設定

最後に

LAN > 経路設定

を順に選択し、現れた次の画面以下の項目を設定し 新規追加 ボタンクリックすると 経路情報に設定されたルーティングテーブルが現れます。

項番 宛先アドレス サブネットマスク ゲートウエイ メトリック 意味
1 10.200.0.0 255.255.255.0 192.168.aaa.11 15 全てのVPN 向けのパケット(サブネット 10.200.0.0)のゲートウエイを 192.168.aaa.11 (server_1 のLAN側IPアドレス)に設定
2 192.168.bbb.0 255.255.255.0 192.168.aaa.4 15 client_1 向けのパケットゲートウエイを 192.168.aaa.4 (client_1 向けのルータのIPアドレス)に設定

等を入力します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

この2番目の経路設定はOpenVPNの導入以前からある既存のルーティング設定なので、ここでは参考情報の位置づけになります。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

OpenVPN Server への VPN接続 切断手順

OpenVPN ServerへのVPN接続手順

OpenVPN for Android で OpenVPN Server ヘ VPN 接続をするには

OpenVPN for Android Apps をタップして起動します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

OpenVPN for Android の起動は Android スマホの

設定 > 接続 > その他の接続設定 > VPN > OpenVPN for Android

でも呼び出せます。


すると先ほどの画面が出てくるので MyHome_Server_1 をタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると以下のようにOpenVPN Server への VPN 接続が成功し、VPN 側の IPアドレスとして、10.200.0.3 がアサインされ、最上部のステータスバーにVPN接続を示す鍵マークが現れます。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

OpenVPN ServerとのVPN切断手順

OpenVPN Server への VPN 接続を切断するときは先ほどの画面左上の ← ボタンをタップする

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


OpenVPN Server への VPN 接続を切断するときは先ほどの画面左上の ← ボタンをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると Connected SUCCESS 10.200.0.3 … という状態表示つきの MyHome_Server_1 グループが表示されるのでこれをタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると 切断の確認 ダイアログボックスが表示されますので VPNを切断 をタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


すると No process running という状態表示つきの MyHome_Server_1 グループが表示され、ステータスバーの VPN接続を示す鍵マークが消えます。これでVPN接続は切断されたことが確認できました。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

OpenVPN Client の自宅無線LAN環境への接続確認手順


それでは Windows 10 搭載PC 上の client_1 の時と同様 OpenVPN の接続状態で OpenVPN Server server_1 および自宅LAN内の各ポイントに対する接続を確認してみましょう。

これにはステータスバーの VPN接続を示す鍵マークがついた状態で Termux をタップします。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

 

すると 以下のような Termux 画面が現れるので
ここで Linux のネットワーク関連コマンドを入力していきます。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

Termux は、Android上で動作するオープンソースのターミナル エミュレーターおよび Linux 環境です。

Termux を使用すると、Android スマホやタブレット上で Linuxのコマンドラインツールやパッケージを実行することができます。

なお記事上の見やすさを考慮して以降の Termux 内でのコマンド入出力結果はテキスト表示します。

 

OpenVPN Client の IPアドレス確認

それでは OpenVPN Client を起動することによりClient1のIPアドレスに確認してみましょう。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

具体的にはまず

ifconfig

コマンドを入力し、アダプタの名前を確認します。

$ ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

rmnet_data0: flags=65<UP,RUNNING>  mtu 1500
        inet ccc.ccc.ccc.ccc  netmask 255.255.255.248
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

tun0: flags=81<UP,POINTOPOINT,RUNNING>  mtu 1500
        inet 10.200.0.3  netmask 255.255.255.0  destination 10.200.0.3
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)

$

 

ここからも tun0 というアダプタ配下に

10.200.0.3

というOpenVPN側のIPアドレスが有効になっているのがわかります。

OpenVPN Client への接続確認

まずはOpenVPN Client から OpenVPN サーバに正しく接続できているかを

ping 10.200.0.3 => client_2 のOpenVPN上のIPアドレスヘ接続できるかの確認

$ ping 10.200.0.3
PING 10.200.0.3 (10.200.0.3) 56(84) bytes of data.
64 bytes from 10.200.0.3: icmp_seq=1 ttl=64 time=0.161 ms
64 bytes from 10.200.0.3: icmp_seq=2 ttl=64 time=0.364 ms
64 bytes from 10.200.0.3: icmp_seq=3 ttl=64 time=0.489 ms
64 bytes from 10.200.0.3: icmp_seq=4 ttl=64 time=1.25 ms
64 bytes from 10.200.0.3: icmp_seq=5 ttl=64 time=1.07 ms
^C
--- 10.200.0.3 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11097ms
rtt min/avg/max/mdev = 0.161/0.803/1.741/0.428 ms

 

きちんと応答が返ってきますね。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

Linux 上の ping は無限にECHOパケットを送付し続けるので ^C [CTL+C] で中断しています。

OpenVPN Server への接続確認

続いて

ping 10.200.0.1 => server_1 のOpenVPN上のIPアドレスヘ接続できるかの確認

$ ping 10.200.0.1
PING 10.200.0.1 (10.200.0.1) 56(84) bytes of data.
64 bytes from 10.200.0.1: icmp_seq=1 ttl=128 time=203 ms
64 bytes from 10.200.0.1: icmp_seq=2 ttl=128 time=101 ms
64 bytes from 10.200.0.1: icmp_seq=3 ttl=128 time=99.9 ms
64 bytes from 10.200.0.1: icmp_seq=4 ttl=128 time=81.9 ms
64 bytes from 10.200.0.1: icmp_seq=5 ttl=128 time=79.3 ms

^C
--- 10.200.0.1 ping statistics ---
22 packets transmitted, 22 received, 0% packet loss, time 21021ms
rtt min/avg/max/mdev = 57.256/100.609/203.173/26.484 ms

$


応答時間が少し長くなリますが、こちらもきちんと応答がありますので server_1 へのOpenVPN接続はきちんとできています。

続いて

ping 192. 168.aaa.11 => server_1 のLAN上のIPアドレスヘ接続できるかの確認

$ ping 192.168.aaa.11
PING 192.168.aaa.11 (192.168.aaa.11) 56(84) bytes of data.
64 bytes from 192.168.aaa.11: icmp_seq=1 ttl=127 time=58.7 ms
64 bytes from 192.168.aaa.11: icmp_seq=2 ttl=127 time=11.8 ms
64 bytes from 192.168.aaa.11: icmp_seq=3 ttl=127 time=64.9 ms
64 bytes from 192.168.aaa.11: icmp_seq=4 ttl=127 time=14.7 ms
64 bytes from 192.168.aaa.11: icmp_seq=5 ttl=127 time=63.9 ms
^C
--- 192.168.aaa.11 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11019ms
rtt min/avg/max/mdev = 11.892/39.173/67.455/25.112 ms
$


応答時間が少し長くなリますが、こちらもきちんと応答がありますので server_1 のLAN側のIPアドレスまでの接続もきちんとできています。

この結果から

  • client_2 から server_1 のLAN側ののIPアドレスへ接続出来ている

ことがわかります。

自宅 LAN 内 Windows 10 搭載 PC への接続確認

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

続いて

ping 192. 168.aaa.10 => ターゲットとなっている Windows 10 搭載 PCのLAN上のIPアドレスヘの接続確認

もしてみましょう。

$ ping 192.168.aaa.10
PING 192.168.aaa.10 (192.168.aaa.10) 56(84) bytes of data.
64 bytes from 192.168.aaa.10: icmp_seq=1 ttl=127 time=213 ms
64 bytes from 192.168.aaa.10: icmp_seq=2 ttl=127 time=98.3 ms
64 bytes from 192.168.aaa.10: icmp_seq=3 ttl=127 time=91.4 ms
64 bytes from 192.168.aaa.10: icmp_seq=4 ttl=127 time=82.5 ms
64 bytes from 192.168.aaa.10: icmp_seq=5 ttl=127 time=102 ms

^C
--- 192.168.aaa.10 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8017ms
rtt min/avg/max/mdev = 70.179/101.868/213.113/40.593 ms

$

この結果から

  • client_2 から 192.168.aaa.10 (ターゲットとなっている Windows 10 搭載 PCのLAN上のIPアドレス)へ接続出来ている

ことがわかります。

自宅 LAN 内 NAS への経路確認

同様に

ping 192. 168.aaa.14 => ターゲットとなっている NASのIPアドレスヘ接続できるかの確認

もしてみましょう。

$ ping 192.168.aaa.14
PING 192.168.aaa.14 (192.168.aaa.14) 56(84) bytes of data.
64 bytes from 192.168.aaa.14: icmp_seq=1 ttl=63 time=58.6 ms
64 bytes from 192.168.aaa.14: icmp_seq=2 ttl=63 time=57.4 ms
64 bytes from 192.168.aaa.14: icmp_seq=3 ttl=63 time=83.4 ms
64 bytes from 192.168.aaa.14: icmp_seq=4 ttl=63 time=97.5 ms
64 bytes from 192.168.aaa.14: icmp_seq=5 ttl=63 time=95.3 ms

^C
--- 192.168.aaa.14 ping statistics ---
17 packets transmitted, 17 received, 0% packet loss, time 16035ms
rtt min/avg/max/mdev = 56.641/85.215/97.558/13.409 ms
$

この結果から

  • client_2 から 192.168.aaa.14 (ターゲットとなっているNASのLAN上のIPアドレス)へ接続出来ている

ことがわかります。

VPN 接続後の自宅無線LAN環境内アプリケーション動作確認

NAS 内フォルダの参照

 外出先の Android スマホでVPN接続後にデスクトップから

ファイルマネージャ > リモート > 192.168.aaa.14 (NAS の無線LAN環境内でのIPアドレス)

を順にタップしていくと

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


以下のように NAS 内のフォルダを参照できるので、必要に応じてフォルダ内をたどっていき
必要なファイルを参照します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

 

Windows 10 搭載PC へのRDP接続

次に 自宅 LAN 内 Windows 10 搭載PC へRDP接続してみましょう。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

この Windows 10 搭載 PC は Pro エディションで、あらかじめ RDP接続を許容するよう設定されています。必要に応じて以下の記事も参照してください。

【Windows環境設定】Windows 10 搭載 PC へのリモートデスクトップ設定方法

 外出先の Android スマホでVPN接続後にデスクトップからRD Client をタップします。
そして現れた画面で 192.168.aaa.10(このWindows 10搭載PCの無線LAN環境内でのIPアドレス)の表示されているPADをタップします。

すると

  • User name: ターゲット Windows 10 搭載 PC に存在するアカウント名
  • Password: 指定アカウントのパスワード

を入力し、 CONNECT ボタンをタップすると

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう


これで VPN2 経由で ターゲット Windows 10 搭載 PC に RDP 接続が出来ました。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
しらかば堂

もちろん画面は縦にも横にも出来ます。
画面はスマホ画面の大きさによりますが、Bluetooth のマウス、キーボードを使えば普通に Windows 10 搭載PCとして使用できますよ。

ID/パスワード入力が必要なECサイトへのアクセス

特にAndroid スマホを 通信量を抑える目的で 外出先の Free Wifi スポット経由で使用したいとき、直に Amazon 等のECサイトへログインした際の、個人情報の流出が気になります。

こういったケースでも 外出先の Android スマホでVPN接続後にデスクトップからChrome をタップし、目的のサイトを表示します。

【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう
【自宅VPN構築】#15 Android スマホに OpenVPN Client を設置し OpenVPN Server と接続しよう

 

まとめ


この記事では自宅無線LAN環境内のWindows 10 搭載 PCOpenVPN Client を構築し、OpenVPN Server と接続する方法について以下の項目に沿って紹介しました。

  • OpenVPN Client 設置手順
  • 無線ルータ設定手順
  • OpenVPN Server へのVPN接続切断手順
  • OpenVPN Client の自宅LAN環境への接続確認手順
  • VPN接続後の自宅無線LAN環境内アプリケーション動作確認手順


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

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