はじめに
本記事では、PiKVMへのリモートアクセスを安全に実現する方法としてTailscaleを活用したセットアップ手順を解説します。
従来、外出先から家のネットワークに置いてあるマシンにアクセスするには、ルータでポート開放を設定する必要がありました。しかし、この方法はセキュリティ的に不安があります。PiKVMではTailscaleを使ったリモートアクセスのセットアップ手順が用意されており、これを利用することでポート開放せずにリモートから安全にアクセスが可能になります。
Tailscaleとは
Tailscaleは、WireGuardベースのメッシュネットワークを簡単に構築できるVPNサービスです。
素のWireGuardを使ってVPNを構築しようとするとピア同士での鍵の生成・交換やIPアドレスの割当が必要で色々と面倒なのですが、Tailscaleを使えばその辺を全て任せることが出来ます。
主な特徴は以下のとおりです。
- 設定が簡単:専用ソフトを入れてログインするだけで利用可能
- SSOログイン:GoogleやGitHubアカウントなどによるソーシャルログインに対応
- 高いセキュリティ:WireGuardベースのE2E暗号化通信を利用
- NAT(ルータ)超えが容易:ポート開放や特別なVPNサーバが不要(仕組み)
- 詳細な通信制御:ACLによる細かな設定が可能
Tailscaleには有料プランと無料プランがあります。無料プランは3ユーザまでしか同じネットワークには参加できませんが、最大100デバイスまで接続可能なため個人利用には十分です。
PiKVMの設定
PiKVMにはTailscaleを使うためのパッケージ (tailscale-pikvm
) が用意されています。そのため、以下の手順に従って簡単にセットアップが可能です。
- PiKVMのWebインターフェースにアクセスして、Webターミナルを開きます。
- Tailscaleをインストールします。
# rootユーザに切り替え su - # ファイルシステムを書き込み可能に再マウント rw # パッケージをインストール pacman -S tailscale-pikvm # tailscaledサービスを起動・自動起動有効化 systemctl enable --now tailscaled
- 次のコマンドを実行して表示されたリンクにアクセスし、Tailscaleにログインします。
tailscale up
- (任意)Tailscale SSH機能を有効化します。これにより、SSH鍵を使わずにTailscaleの認証を使ってPiKVMにSSH接続ができるようになります。
tailscale set --ssh
- ファイルシステムを読み込み専用に再マウントします。
ro
- 必要に応じて、TailscaleのAdmin ConsoleからPiKVMマシンのキーの期限切れ (key expiry)を無効化します。これにより、定期的なキーの更新作業(Tailscaleの再認証)が不要になります。
PiKVMへのリモートアクセス
- (前提条件)アクセスに使うマシンにTailscaleをインストールし、PiKVMと同じTailscaleネットワークにログインします。
- PiKVMのTailscale用のアドレスを確認します。確認には2通りのやり方があります。
- タスクバーのTailscaleアイコンを右クリックし、Network Devicesの中からPiKVMをクリック(アドレスが自動的にコピーされる)
- Admin ConsoleからPiKVMのAddressesを確認(Tailscale DNSが有効化されている環境であれば~.ts.netの形式のアドレスが利用でき、そうでなければIPv4かIPv6アドレスを利用)
- ブラウザにTailscale用のアドレスを入力してアクセスします。
実際に外出先からKVM画面を出して操作してみたところ、ディスプレイ表示は54~60 fps出ていて、キーボード入力のラグもほぼ感じません。
以下のスクリーンショットはAndroid端末からアクセスした様子です。スマホの場合でもTailscaleアプリ(Android・iOS)を入れることでVPN経由でPiKVMにアクセスできます。
まとめ
Tailscaleを利用することでPiKVMへのリモートアクセスが簡単に実現できます。ポート開放の必要がないので安全に利用することが可能です。