WireGuardベースのオーバーレイネットワークとゼロトラストネットワークアクセスを組み合わせ信頼性が高く安全な接続ができる「NetBird」、オープンソースでセルフホスト可能

リモートワークの普及により、安全な社内ネットワーク構築の重要性が増しています。「スマホ・PC間で安全なネットワークを簡単に構築できる『Tailscale』レビュー」のように簡単にVPNを設定できる製品も登場していますが、Tailscaleはホストサーバーが外部サービスとして提供されているためサービスの継続性やセキュリティ面に懸念があります。そこで、ホストサーバー自体もセルフホスティングが可能で無料で利用できる「NetBird」が公開されています。
https://netbird.io/

netbirdio/netbird: Connect your devices into a secure WireGuard -based overlay network with SSO, MFA and granular access controls.
https://github.com/netbirdio/netbird
◆NetBirdの概要
「安全なVPNネットワークを簡単に構築できる『Tailscale』の仕組みとは」と同じWireGuardベースでPeer-to-peerでデバイス間が接続されたメッシュネットワークを構築できます。管理サーバーが自前のホストサーバーでも構築できる点がTailscaleとの大きな違いです。

アクセスルールを視覚的に確認できます。左側に「ユーザーもしくはデバイスグループ」・中央に「ルール」・右側に「接続されるデバイスの一覧」が表示されることで、ルールが正しく機能しているか、デバイスが正しく接続されているかを確認できます。

デバイス同士はフルアクセスで接続することもできますが、特定のポートに絞って通信を許可するなど柔軟なルール設定が可能です。

・セットアップ手順の目次
◆Windows用クライアントのインストールおよび接続方法
◆iOS用クライアントのインストールおよび接続方法
◆Android用クライアントのインストールおよび接続方法
◆ホストサーバーの構築方法
◆Windows用クライアントのインストールおよび接続方法
公式サイトの右上の「Install」をクリック。

インストールサイトが表示されるので「Windows」が選択されていることを確認し「Download NetBird」をクリックして保存。

ダウンロードしたインストーラーをダブルクリックして実行。

セットアップウィザードが表示されるので「Next」をクリック。

規約が表示されるので「I Agree」をクリック。

インストール先が表示されるので任意のフォルダを選択し「Next」をクリック。

インストールの準備ができたので「Install」をクリック。

「Start Netbird UI」のチェックをオンにして「Finish」をクリック。

しばらく待ってもUIが表示されなければ、タスクトレイのNetBirdのアイコンをクリック。

メニューの「Settings」から「Advanced Settings」をクリック。

ホストサーバーをセルフホストで利用する場合は「Management URL」にホストサーバーのURLを入力し「Save」をクリック。NetBirdが用意しているクラウドサービスを利用する場合はそのままにして「Cancel」をクリック。

接続方法はタスクトレイのアイコンをクリックし「Connect」をクリック。

ブラウザが起動してサインインの画面が表示されるので「Email Address」にメールアドレス、「Password」にパスワードを入力し「Sign in」をクリック。

ログインが成功するとデバイスが登録されます。

ホストサーバーの管理画面でデバイスが接続されていることが確認できました。

◆iOS用クライアントのインストールおよび接続方法
NetBird P2P VPNアプリ - App Store
https://apps.apple.com/jp/app/netbird-p2p-vpn/id6469329339
App Storeの配布ページにアクセスして「入手」をタップ。

確認画面が表示されるので「インストール」をタップ。

インストールが完了したら「開く」をタップ。

ホストサーバーをセルフホストで利用する場合は「Change server」をタップ。NetBirdが用意しているクラウドサービスを利用する場合は「Continue」をタップ。

サーバー変更の確認ダイアログが表示されるので「Confirm」をタップ。

サーバーの登録フォームが表示されるので「SERVER」に用意したホストサーバーのドメイン名を入力して「Change」をタップ。

変更の確認ダイアログが表示されるので「OK」をタップ。

アプリのホーム画面から「接続」アイコンをタップ。

VPN構成の追加の許可ダイアログが表示されるので「許可」をタップ。

Sign in画面が表示されるので「Email Address」にメールアドレス、「Password」にパスワードを入力し「Sign in」をタップ。

ログイン成功画面が表示されたら「完了」をタップ。

アプリの画面に戻るとデバイスに割り当てられた名前やIPアドレスが表示されます。

ホストサーバーの管理画面で確認すると、デバイスが追加されたことが確認できました。

◆Android用クライアントのインストールおよび接続方法
NetBird P2P VPN - Google Play のアプリ
https://play.google.com/store/apps/details?id=io.netbird.client
Google Playの配布ページにアクセスして「インストール」をタップ。

インストールが完了したら「開く」をタップ。

ホストサーバーをセルフホストで利用する場合は「change_server」をタップ。NetBirdが用意しているクラウドサービスを利用する場合は「Continue」をタップ。

サーバー変更の確認ダイアログが表示されるので「Yes」をタップ。

サーバーの登録フォームが表示されるので「Server」に用意したホストサーバーのドメイン名を入力して「Change」をタップ。

変更の確認ダイアログが表示されるので「OK」をタップ。

アプリのホーム画面から「接続」アイコンをタップ。

VPN接続の許可ダイアログが表示されるので「OK」をタップ。

Sign in画面が表示されるので「Email Address」にメールアドレス、「Password」にパスワードを入力し「Sign in」をタップ。

接続が完了するとアプリの画面にデバイスに割り当てられた名前やIPアドレスが表示されます。

ホストサーバーの管理画面で確認すると、デバイスが追加されたことが確認できました。

◆ホストサーバーの構築方法
Google CloudのVMインスタンス上のUbuntuでDockerが利用できる環境に構築します。「Self-Hosting Quickstart Guide」を参考にインストールコマンドを実行。
curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash
ドメイン名の入力や利用するプロキシサーバーの選択などを行います。
Enter the domain you want to use for NetBird (e.g. netbird.my-domain.com): 【用意したドメイン名】
Which reverse proxy will you use?
[0] Traefik (recommended - automatic TLS, included in Docker Compose)
[1] Existing Traefik (labels for external Traefik instance)
[2] Nginx (generates config template)
[3] Nginx Proxy Manager (generates config + instructions)
[4] External Caddy (generates Caddyfile snippet)
[5] Other/Manual (displays setup documentation)
Enter choice [0-5] (default: 0): 0
Enter your email for Let's Encrypt certificate notifications.
Email address: 【管理者のメールアドレス】
Do you want to enable the NetBird Proxy service?
The proxy allows you to selectively expose internal NetBird network resources
to the internet. You control which resources are exposed through the dashboard.
Enable proxy? [y/N]: n
コンテナの起動まで自動で行われ、管理画面のURLが表示されます。
==========================================
NETBIRD SETUP COMPLETE
==========================================
You can access the NetBird dashboard at:
【ドメイン名】
ブラウザで用意したドメインにアクセスすると管理者登録フォームが表示されるので「Name」に任意の名前、「Email」にメールアドレス、「Password」にパスワードを入力し「Create Admin Account」をクリック。

ユーザー登録完了後、サインイン画面が表示されるので「Email Address」にメールアドレス、「Password」にパスワードを入力し「Sign in」をクリック。

セットアップウィザードが表示されるので「Skip to Dashboard」をクリック。

ダッシュボードが表示されればNetBirdのホストサーバーの構築は完了です。

なお、Tailscaleではスマホの写真や動画などファイルの共有がアプリを通じて簡単に行えるのに対し、NetBirdでは同等の機能は未実装でした。しかし、オープンソースでセキュリティに対する検証が行われており、なおかつセルフホストでの運用が可能なので、よりセキュリティに配慮したVPNサービスを検討する場合にはNetBirdがおすすめです。
