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/