プライベート VPS でパスワード保管庫をホストする
Bitwarden または Vaultwarden を選び、HTTPS エンドポイントを保護し、最も重要なアカウントのためにテスト済みのバックアップ手順を構築する。
概要
セルフホスト型パスワード保管庫には、保護された転送、制限された登録、安全な管理、テスト済みの復旧プロセスが必要である。Bitwarden とコミュニティの Vaultwarden 実装では、ドキュメントとサポートのモデルが異なる。選択したプロジェクトの要件に従い、バックアップが保管庫の復元に必要な情報を保持していることを検証する。
運用上の責任を負うかどうかを決める
パスワード保管庫は他の多くのアカウントを解錠し得るため、その可用性とセキュリティには意図的な計画が必要である。Bitwarden クライアントは同期前に保管庫データを暗号化する。バックエンドを自分でホストすると、暗号化されたデータとサービスのメタデータの所在が変わるが、強力なマスターパスワードと安全なクライアント端末の重要性は失われない。
デプロイ、保持、アクセスポリシーを制御できる一方で、パッチ、バックアップ、復旧の責任を負う。小規模なプライベートインスタンスは大規模な共有サービスよりも広く注目されにくいかもしれないが、設定ミスによってかえって露出が増えることもある。すべてのセルフホストシステムが自動的に安全というわけではなく、維持できるからこそセルフホストを選ぶべきである。
バックエンドを選び、互換性を確認する
Bitwarden は、さまざまなデプロイ形式を含む、文書化された要件を備えた公式のセルフホストオプションを提供している。すべての公式インストールが同じ大規模なスタックを必要とすると仮定せず、現在のリソース要件と機能要件を比較する。
Vaultwarden は Bitwarden クライアントと互換性のある、別個の非公式実装である。その軽量な設計は個人用または家族用インスタンスに魅力的だが、機能の互換性とリリース時期は異なることがある。公式製品のセキュリティ上の主張や監査は、自動的にこの独立したバックエンドに当てはまるものではない。
サーバー、名前、アクセス経路を準備する
Linux VPS と 1 vCPU、および 2 GB RAM は、控えめな Vaultwarden インスタンスの出発点になり得る。添付ファイルやその他の作業負荷がストレージ要件を決める。完全な root アクセスがあれば設定は可能だが、ハイパーバイザーはホスティング事業者の管理下に残る。
専用のホスト名を、適切な A レコード、および対応・テスト済みであれば AAAA レコードでサーバーに向ける。有効な HTTPS、保護された管理、復旧経路を計画する。ドメイン登録、証明書の連絡先情報、ユーザーのメールアドレスは、ホスティングの申し込み以外のつながりを明らかにすることがある。
永続ストレージとローカルバックエンドでデプロイする
保管庫を追加する前に、オペレーティングシステムを更新し、鍵ベースの管理を確立する。Vaultwarden プロジェクトが保守するイメージ、またはプロジェクトが文書化したインストール方法を使う。コンテナを交換してもサービスが消去されないよう、データの場所を永続的にマウントする。
アプリケーションのバックエンドを localhost またはプライベートなコンテナネットワークに置き、その前段に Caddy または Nginx を配置して HTTPS を提供する。コンテナのポートが Docker のネットワーク規則によって意図せず公開されていないことを確認する。ユーザー、証明書、選択した管理経路に必要なサービスだけを開放する。
登録を閉じ、すべてのアカウントを保護する
管理されたオンボーディングプロセスを使って目的のアカウントを作成し、その後 SIGNUPS_ALLOWED=false を設定する。追加ユーザーは明示的な招待または保護された管理ワークフローを通じて管理する。クライアントとリンクが意図した HTTPS エンドポイントを使うよう、サービス URL を正しく設定する。
管理トークンは別途保護し、その安全な表現についてプロジェクトのガイダンスに従う。強力なマスターパスワードを使い、各アカウントで適切な二要素認証を有効にする。復旧コードは保管庫自体の外に保管する。利用できない保管庫を復旧に必要とすると、循環依存が生じる。
この例の URL は意図的に運用不可としている。設定したホスト名と証明書に置き換えること。
DOMAIN=https://vault.example.invalid
SIGNUPS_ALLOWED=false一貫性のあるデータセットをバックアップする
バックアップには、稼働中の SQLite ファイルを気軽にコピーするだけでは不十分である。サポートされたオンラインバックアップ方法、またはサービスを停止して制御された手順を使う。選択したインストールに必要な添付ファイルと設定または鍵を含め、データベースにすべてのファイルが含まれると仮定しない。
アーカイブをサーバー外へ転送する前に暗号化する。特に設定に SMTP の資格情報や管理トークンが含まれる場合は重要である。サーバー外のコピーとバックアップ復号鍵は別々に保管する。PostgreSQL などのデータベース代替には、独自の一貫したダンプ手順が必要である。
- サポートされた一貫性のある方法でデータベースをバックアップする。
- 添付ファイルと関連する永続サービスファイルを含めてください。
- アーカイブがVPSを離れる前に暗号化してください。
- 少なくとも一つの独立したオフボックスコピーを保持してください。
- 隔離された環境で復元とクライアント同期をテストしてください。
ソフトウェアを維持し、不必要な露出を制限する
Vaultwardenのリリースと使用しているクライアントのバージョンを追跡してください。ホストのセキュリティ更新を適用し、展開前にアプリケーションの変更を確認してください。盲目的なコンテナの置き換えは、テスト済みのアップグレードと復旧計画の乏しい代替にすぎません。各変更後に健全性とバックアップを検証してください。
レート制限、安全なプロキシヘッダー、および適切な監視は、不要なログイン試行の検出に役立ちます。家庭用サービスは、すべてのクライアントがその方法で確実に到達できる場合、VPNに制限されることがあります。パブリックな到達性を削除する前に、モバイルアクセスと復旧をテストしてください。すべての診断を犠牲にするのではなく、限られたログ記録を意図的に選択してください。
アプリケーションのプライバシーをホスティングのプライバシーに結びつける
最小限のアカウントデータは、VPSプロファイルに付随する情報を減らすことができます。公開台帳の支払い、自分自身と関連付けるドメイン、およびアプリケーションのユーザー記録は、依然として識別可能なリンクを作成する可能性があります。スタック全体を調査し、一つの層が他のすべての層を保護できるという約束は避けてください。
適切に運営されたプライベートボールトは、クライアント側の暗号化、検証済みのHTTPS、制限された管理、保護されたアカウント、およびテスト済みの復旧を組み合わせています。サーバーが利用できない場合に備えて、重要な認証情報のための独立した計画を保持してください。それが、失う余裕のない情報を保持するのに十分な信頼性を展開に与えるものです。