メインコンテンツまでスキップ

ポートの開放することなく、Respberry Piに外からアクセスする(OpenVPN Cloud編)

· 約5分
moritalous
お知らせ

過去に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/ にアクセスし、アカウントを作成しましょう。アカウント作成までに必要なものはメールアドレスのみで、クレジットカードなどは必要ありませんでした。

image.png

アカウントが作成されたら、管理画面が表示されます。

image.png

メニューの「Users」を選択しましょう。

image.png

初期状態では、Userは1つ(OpenVPN Cloudアカウントと同じもの)だけですが、プラスボタンでUserが追加できます。 Groupの設定はとりあえず「Default」でも良さそうです。

アカウントが作成できたら、「User Portal URL」に記載のあるURLにアクセスします。(OpenVPN Cloudアカウント作成時に指定したドメインです)

image.png

ここに、先程自分で作成したUserでログインします。

ログイン後、クライアントアプリのインストール方法が表示されいます。 WindowsやMac、iOS、AndroidをOpenVPNに接続する方法はこの内容に従ってインストールしましょう。

image.png

Linux向けのクライアント設定方法もリンクがあるのですが、armアーキテクチャには対応してなかったので、以下の方法でRaspberry Piの設定をしましょう

Raspberry PiのOpenVPN Client設定

もう少しブラウザでの設定が続きます。

ブラウザ上部の「MY DEVICES」を選択します。

image.png

作成したデバイスの「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 openvpn@client.service
sudo systemctl start openvpn@client.service

トンネルインターフェイスが作成されます

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のクライアントをインストールした環境から接続ができるようになります。