Raspberry Pi400をVPN接続で、外出先でも操作できるようにする(Wireguard)
通常利用でのセキュリティ、外出時にスマホやiPadでラズパイを遠隔操作したい場合に、VPN(Wireguard)経由で通信したいと思います。
メンテナンスがしやすいように、できるだけGUIで設定することを目指しましたが、面倒になってしまいコマンドで済ませてしまいました。
事前準備
ラズパイ本体をVPNサーバーにすることも可能ですが、安定運用のため、VPNサーバーをクラウドで運用しています。
VPNサーバー(Wireguard):OracleにVPNサーバーを構築済みです。(Oracle Linux8.5)
※VPNサーバーの構築については後日、記事を書きたいと思います。
ラズパイの設定
クライアント側としてラズパイにwireguardをインストールします。
sudo apt install wireguard
カーネルモジュールをロード、起動、有効化します。
sudo modprobe wireguard
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
秘密鍵、公開鍵の作成
wg genkey | sudo tee client.key | wg pubkey > client.pub
鍵の確認
cat client.key
cat client.pub
上記は設定時に必要なので、どこかにコピーをしておきます。
VPNサーバーの設定
GUIで、と思ったのですが、結局コマンドで追加しました。
sudo vi /etc/wireguard/wg0.conf
Interface側に先ほど作成した秘密鍵を設定、PeerはVPNサーバーの公開鍵を設定します。
[Interface]
PrivateKey = クライアントの秘密鍵
Address = 192.168.0.1/32
DNS = 1.1.1.1
[Peer]
PublicKey = サーバー側の公開鍵(サーバー側のInterfaceのPrivatekeyと同じ)
AllowedIPs = 0.0.0.0/0,::/0
VPNに接続するコマンド
wg-quick up wg0
で接続ができます。切断時は
wg-quick down wg0
を実行します。
外出先からの接続
無事VPNに接続できましたので、これを利用して外出時からでもVPN経由でラズパイの操作をするため、iPadのVNC Viewerで新規の接続設定を行います。
IPアドレスを先ほど設定した「AllowedIPs」の/32を除いた部分(上記画像では10.10.10.9)を入力し、接続するとデスクトップ画面が出てきます。
これでVPNサーバーを経由してリモートデスクトップが完成しました。
数日利用して
有線接続でもそれなりに遅いと感じていましたが、VPN接続だとさらに動作が遅く、なかなかストレスがたまる動作状況です。
GASの緊急メンテ等で使えると思いましたが、スマホ、iPadでもスプレッドシートをWeb版で開くことで、GASも使えました。
通常はSurfaceでWindowsを利用するので、外出時にパソコンを使わないといけないという状況でもない限り、リモートデスクトップの出番はしばらくなさそうです。