今回は、スマホから自宅ネットワーク内のVPNサーバーに接続して、そこから内部ネットワークのすべてのトラフィックにアクセスできるようにします。
最終的な目標は、外出先からスマホで”みまもりカメラ”を見られるようにすることです。
手順は、前回にやった外部ネットワークからVPNサーバーへ接続する方法の続きになります。
準備
スマホに OpenVPN Connect アプリをインストール
今回はandroidスマホからの接続となります。
Androidスマホでは「システム設定」で OpenVPN の選択項目がないと思うので、OpenVPN アプリを入れることになります。

こちらの OpenVPN Connect は全部が英語表記となっていますが、設定は簡単なので普通に使えると思います。
試しに無料で使える 筑波大学VPN Gate サーバーへつなげてみました。

まずは、筑波大学VPN Gateのwebサイトへアクセスして、設定ファイルをダウンロードします。
openvpn設定ファイルをクリックします。

次にDDNSホスト名が埋め込まれている.ovpnファイルをダウンロードします。(IPアドレスが埋め込まれた.ovpnファイルは主に海外用です。)

.ovpnファイルをダウンロードしたら、openvpnアプリを開いて指示に従い .ovpnファイル を開きます。詳細については OpenVPN Connect の設定手順をお調べ下さい。
これだけでvpn接続はできますが、それを自宅のvpnサーバから接続することを目指します。
クライアント用のopenvpn設定ファイル(client.ovpn)作成
スマホクライアント用の設定ファイル (client.ovpn) は、現在使っている設定ファイル (claient.conf) と各証明書類(ca.crt, client.crt, ta.key, client.key) を元に作成します。
まずは設定ファイル (client.ovpn) を作成するためのシェルスクリプトファイル (mkovpn.sh) を作りますので、現在使用中の証明書類が存在するディレクトリへ移動します。
~/openvpn/client$ vi mkovpn.sh
内容は適当に次のようにしました。
#!/bin/bash
cat client.conf
echo '<ca>'
cat ca.crt
echo '</ca>'
echo '<key>'
cat client.key
echo '</key>'
echo '<cert>'
cat client.crt
echo '</cert>'
echo '<tls-auth>'
cat ta.key
echo '</tls-auth>'
次にコマンドを実行し、出力された内容をclient.ovpnファイルへリダイレクトします。
~/openvpn/client$ sh mkovpn.sh > client.ovpn
このまま client.ovpn をスマホへダウンロードして、アプリへインポートした場合は、おそらくエラーが出るので次の項目を編集します。
~/openvpn/client$ vi client.ovpn
(またはダウンロード先のテキストエディタで編集)
#コメントアウトまたは削除する項目
;ca ca.crt
;cert client.crt
;key client.key
;tls-auth ta.key 1
#追加する項目(tls-authの代わり)
key-direction 1
完成した client.ovpn ファイルは、OpenVPN Connect アプリへインポートします。
スマホアプリからのVPNサーバーへ接続
自宅の OpenVPN サーバーが稼働状態であることを確認したら、スマホのOpenVPN Connect アプリへ先程ダウンロードした client.ovpn ファイルをインポートします。
手順はアプリの指示に従って下さい。
スマホアプリの接続が確認できたら、webブラウザからraspi”みまもりカメラ”サーバーの内部ネットワークアドレス(192.168.0.108:8080など) へアクセスして映像を確認します。
映像が確認できたら完成です。
まとめ
今回は主にスマホアプリのOpenVPNクライアント設定方法についてやってきました。
かなり簡単な説明で申し訳ありませんが、分かりにくいところなどは”ご意見・お問い合わせ”のコメントにて対応させていただきたいと思います。
また、シェルスクリプトで client.ovpnファイル を作成してますが、ca.crtなど証明書部分をコメントアウト(削除)する処理などを加えたほうがもっと楽になると思いますので、機会があったらやろうと思います。