過去にQiitaに投稿した内容のアーカイブです。
ポートの開放することなく、Respberry Piに外からアクセスする、ポートの開放することなく、Respberry Piに外からアクセスする(2020年 AWS編) に続く第3段です。
今回はOpenVPNのクラウドサービス「OpenVPN Cloud」を使います。
OpenVPN Cloud | The Next-Generation Cloud VPN Solution https://openvpn.net/cloud-vpn/
公式サイトから引用すると
A managed service that provides secure networking, over the Internet, between an enterprise’s private networks and remote users in the form of a “VPN in the Cloud”.
DeepLによる翻訳
企業のプライベートネットワークとリモートユーザーの間で、インターネットを介して安全なネットワークを提供するマネージドサービスです。
とのことです。
OpenVPNのサーバー機能をサービス提供してくれますので、Raspberry Piはサーバーではなくクライアントとしてセットアップします。そのため、ポートの開放は不要です。
2020/11時点で3接続までは無料です。10台接続の場合は、$7.50/接続のようです。 https://openvpn.net/cloud-vpn/pricing/
OpenVPN Cloudの作成と設定
https://cloud.openvpn.net/ にアクセスし、アカウントを作成しましょう。アカウント作成までに必要なものはメールアドレスのみで、クレジットカードなどは必要ありませんでした。
アカウントが作成されたら、管理画面が表示されます。
メニューの「Users」を選択しましょう。
初期状態では、Userは1つ(OpenVPN Cloudアカウントと同じもの)だけですが、プラスボタンでUserが追加できます。 Groupの設定はとりあえず「Default」でも良さそうです。
アカウントが作成できたら、「User Portal URL」に記載のあるURLにアクセスします。(OpenVPN Cloudアカウント作成時に指定したドメインです)
ここに、先程自分で作成したUserでログインします。
ログイン後、クライアントアプリのインストール方法が表示されいます。 WindowsやMac、iOS、AndroidをOpenVPNに接続する方法はこの内容に従ってインストールしましょう。
Linux向けのクライアント設定方法もリンクがあるのですが、armアーキテクチャには対応してなかったので、以下の方法でRaspberry Piの設定をしましょう
Raspberry PiのOpenVPN Client設定
もう少しブラウザでの設定が続きます。
ブラウザ上部の「MY DEVICES」を選択します。
作成したデバイスの「Download profile」ボタン(ダウンロードっぽいやつ)を押し、.ovpnファイルをダウンロードします。リージョンはお好きなところを選択してください。
さて、いよいよRaspberry Pi上での設定です。
OpenVPNのインストール OpenVPNのクライアントだけのインストール方法はわからなかったので、サーバーも一緒にインストールしちゃいます。
sudo apt install openvpn -y
OpenVPNのサーバーが起動する設定なので止めます。
sudo systemctl disable openvpn.service
先程ブラウザで入手した.ovpnファイルを/etc/openvpn/client.conf
として保存します。
拡張子も変えてしまいます。
OpenVPNのクライアントだけサービス起動するように設定し、起動します。
sudo systemctl enable [email protected]
sudo systemctl start [email protected]
トンネルインターフェイスが作成されます
pi@raspberrypi:~ $ ip addr show tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 100.96.1.4/28 brd 100.96.1.15 scope global tun0
valid_lft forever preferred_lft forever
inet6 fd:0:0:8100::4/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::a644:7126:6232:c17b/64 scope link stable-privacy
valid_lft forever preferred_lft forever
pi@raspberrypi:~ $
これで、もう一つOpenVPNのクライアントをインストールした環境から接続ができるようになります。