AWS 環境に Hailbytes VPN をセットアップする方法

概要

この記事では、ネットワーク上にシンプルで安全な VPN およびファイアウォールである HailBytes VPN をセットアップする方法について説明します。 詳細と具体的な仕様については、リンクされている開発者ドキュメントを参照してください。 こちら.

準備

   1. リソース要件:

  • スケールアップする前に、1 vCPU と 1 GB の RAM から始めることをお勧めします。
  • メモリが 1 GB 未満のサーバー上のオムニバス ベースの展開の場合は、Linux カーネルが Firezone プロセスを予期せず強制終了しないように、スワップをオンにする必要があります。
  • VPN の 1 Gbps リンクを飽和させるには、1 vCPU で十分です。
 

   2.  DNS レコードの作成: Firezone では、運用環境で使用するための適切なドメイン名 (例: firezone.company.com) が必要です。 A、CNAME、AAAA レコードなどの適切な DNS レコードを作成する必要があります。

   3.  SSL のセットアップ: Firezone を運用環境で使用するには、有効な SSL 証明書が必要です。 Firezone は、Docker および Omnibus ベースのインストール用の SSL 証明書の自動プロビジョニングのために ACME をサポートしています。

   4.  ファイアウォール ポートを開く: Firezone は、HTTPS トラフィックと WireGuard トラフィックにそれぞれポート 51820/udp と 443/tcp を使用します。 これらのポートは、後から構成ファイルで変更できます。

Docker へのデプロイ (推奨)

   1. 前提条件:

  • docker-compose バージョン 2 以降がインストールされているサポートされているプラ​​ットフォームを使用していることを確認してください。

 

  • ファイアウォールでポート転送が有効になっていることを確認してください。 デフォルトでは、次のポートが開いている必要があります。

         o 80/tcp (オプション): SSL 証明書の自動発行

         o 443/tcp: Web UI にアクセスします。

         o 51820/udp: VPN トラフィックリッスンポート

  2.  サーバーのインストール オプション I: 自動インストール (推奨)

  • Run installation script: bash <(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh) 1889d1a18e090c-0ec2bae288f1e2-26031d51-144000-1889d1a18e11c6c

 

  • サンプル docker-compose.yml ファイルをダウンロードする前に、初期構成に関するいくつかの質問が表示されます。 応答を使用して設定し、Web UI にアクセスするための手順を印刷します。

 

  • Firezone のデフォルトのアドレス: $HOME/.firezone。
 

  2.  サーバーのインストール オプション II: 手動インストール

  • docker compose テンプレートをローカルの作業ディレクトリにダウンロードします。

          – Linux:curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.prod.yml -o docker-compose.yml

          – macOS または Windows:curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.desktop.yml -o docker-compose.yml

  • 必要なシークレットを生成します: docker run –rm firezone/firezone bin/gen-env > .env

 

  • DEFAULT_ADMIN_EMAIL 変数と EXTERNAL_URL 変数を変更します。 必要に応じて他のシークレットを変更します。

 

  • データベースを移行します: docker compose run –rm firezone bin/merge

 

  • 管理者アカウントを作成します: docker compose run –rm firezone bin/create-or-reset-admin

 

  • サービスを起動します: docker compose up -d

 

  • 上記で定義した EXTERNAL_URL 変数を通じて Firezome UI にアクセスできるはずです。
 

   3. 起動時に有効にする (オプション):

  • 起動時に Docker が有効になっていることを確認します: sudo systemctl enable docker

 

  • Firezone サービスには、docker-compose.yml ファイルで restart: always または restart: until-stopped オプションを指定する必要があります。

   4. IPv6 パブリック ルータビリティを有効にします (オプション):

  • 以下を /etc/docker/daemon.json に追加して、IPv6 NAT を有効にし、Docker コンテナーの IPv6 転送を構成します。

 

  • デフォルトの出力インターフェイスのブート時にルーター通知を有効にします。 egress=`ip Route show default 0.0.0.0/0 | grep -oP '(?<=dev ).*' | カット -f1 -d' ' | tr -d '\n'` sudo bash -c “echo net.ipv6.conf.${egress}.accept_ra=2 >> /etc/sysctl.conf”

 

  • 再起動し、Docker コンテナ内から Google に ping を実行してテストします: docker run –rm -tbusybox ping6 -c 4 google.com

 

  • トンネルトラフィックの IPv6 SNAT/マスカレードを有効にするために iptables ルールを追加する必要はありません。 Firezone がこれを処理します。
 

   5. クライアントアプリをインストールする

        これで、ネットワークにユーザーを追加し、VPN セッションを確立するための手順を構成できるようになりました。

セットアップ後

おめでとうございます。セットアップが完了しました。 追加の構成、セキュリティに関する考慮事項、高度な機能については、開発者向けドキュメントを確認してください: https://www.firezone.dev/docs/