Bitwarden

💡 快速導航

Bitwarden 是我 Home Lab 裡最敏感、也最不能亂玩的服務之一。它保存的不是一般 app 設定,而是日常登入、金鑰、備援碼與各種帳號入口的核心資料。

實際部署上,我使用的是 Bitwarden-compatible 的 Vaultwarden server。公開筆記仍以 Bitwarden 稱呼,因為日常使用體驗主要是 Bitwarden App、瀏覽器外掛與 Web Vault。

我使用它的目標不是追求「所有東西都自架」的潔癖,而是讓密碼管理變成一個可控、可備份、可恢復的系統。密碼庫一旦上線,重點就不是能不能登入,而是資料是否安全、恢復流程是否可靠、家人是否知道遇到問題時該怎麼辦。

Important

這篇是公開筆記,所以不會記錄實際網域、管理入口、內網位址、port、使用者名稱、email、資料庫名稱、環境變數、SMTP 設定、TOTP seed、備援碼、emergency access 對象或任何 secret。


🎯 我為什麼用它

密碼需要集中管理,而不是靠記憶和重複使用

帳號越多,靠腦袋記密碼只會導向兩個結果:密碼太簡單,或同一組密碼到處重複。這兩種狀況只要其中一個網站外洩,就可能連帶影響其他服務。

密碼管理器解決的是習慣問題:

  • 每個網站使用不同的高強度密碼
  • 不需要自己記住所有密碼
  • 能逐步檢查弱密碼、重複密碼和舊帳號
  • 可以把登入資料、備援碼和安全筆記集中保存

我把 Bitwarden 視為「日常安全衛生」的一部分。它不是架起來就自動安全,而是讓安全習慣比較容易長期維持。

資料主權和使用便利要一起考慮

完全不用雲端密碼管理器,可以增加心理上的控制感,但如果同步不穩、備份做不好,反而會讓風險更高。Bitwarden 對我來說是折衷點:保留跨裝置使用體驗,同時讓核心資料在自己的基礎設施裡。

真正重要的是把以下事情想清楚:

  • 哪些人需要使用
  • 哪些裝置會同步
  • 密碼庫故障時如何登入關鍵服務
  • 備份是否能真正還原
  • 主密碼、2FA 和恢復方式是否有被妥善保存

🧱 在 Home Lab 裡的角色

flowchart TD
    U[使用者 / 裝置] --> CLIENT[Web Vault / Browser Extension / Mobile App]
    CLIENT --> NPM[Nginx Proxy Manager]
    NPM --> BW[Bitwarden]
    BW --> DB[(Database / Vault Metadata)]
    BW --> DATA[(App Data / Attachments)]

Bitwarden 位在 OMV 的 App Layer。它不像 Immich 那樣需要靠近大量媒體資料,也不像 TrueNAS 那樣屬於儲存層。它更適合放在集中管理 Docker 服務的環境裡,和其他應用一起維護、備份與更新。

瀏覽器外掛、手機 App 和 Web Vault 都使用同一個 HTTPS 入口,先經過 nginx-proxy-manager,再由 NPM 轉發到後端 Bitwarden 服務。

部署摘要

項目目前做法
部署位置OMV / Docker
對外入口經由 nginx-proxy-manager 提供 HTTPS
主要資料密碼庫資料、組織資料、附件、設定狀態
外層保護目前不套 authelia forward-auth,依賴密碼庫本身登入、2FA 與 HTTPS
維運重點備份、還原、升級、2FA、帳號恢復

Warning

密碼庫服務不適合只看「container 有沒有跑」。它需要定期確認登入、同步、瀏覽器外掛、手機 App、備份與還原流程都仍然正常。

Note

目前 Bitwarden / Vaultwarden 這個入口沒有套 Authelia forward-auth。原因是 Bitwarden 的瀏覽器外掛與手機 App 需要直接使用自己的 API、token 與同步流程;在整個服務前面加一層通用 forward-auth,容易讓非瀏覽器登入流程或背景同步變得不穩。


🔐 密碼庫的安全邊界

Bitwarden 是少數我會用更嚴格標準看待的服務,因為它一旦出問題,影響面會往外擴散到其他帳號。

我公開記錄的原則

面向原則
主密碼只存在於使用者記憶與私有恢復流程,不出現在筆記或設定檔
2FA密碼庫本身必須啟用第二因素,恢復流程要事先規劃
管理權限管理員帳號數量越少越好,日常使用不要依賴高權限帳號
外部入口只公開必要入口,管理設定和維運流程不放在公開筆記
更新先備份,後更新,更新後測試登入和同步

我不會公開的內容

  • 實際服務入口或管理入口
  • 使用者清單、email、群組或 family organization 細節
  • 主密碼提示或任何可能幫助猜測的描述
  • TOTP seed、恢復碼、emergency access 對象
  • SMTP、資料庫、環境變數或反向代理完整設定

公開筆記的價值應該是分享架構與維運思路,而不是展示完整配置。密碼庫的設定越完整,越不適合直接公開。


📱 我的實際使用方式

我把 Bitwarden 當成日常登入流程的中心,而不是單純「偶爾查密碼」的地方。

日常使用

  • 瀏覽器外掛負責大多數網站登入
  • 手機 App 用於行動裝置登入與查詢
  • 新帳號建立時直接產生唯一密碼
  • 舊帳號逐步改成高強度隨機密碼
  • 安全筆記只放必要內容,不把它變成雜物箱

我會優先整理的項目

類型優先原因
Email 帳號其他帳號恢復通常依賴 email
金融與付款影響資產與帳務安全
網域與 DNSHome Lab 對外入口依賴這些帳號
雲端與備份服務還原流程常需要先登入這些平台
家庭共用帳號需要清楚權限與交接方式

我不會一次要求所有帳號都整理完。比較實際的做法是每次登入某個舊服務時順手更新密碼,慢慢降低弱密碼和重複密碼的比例。


💾 備份與還原

Bitwarden 的備份不是「有一份資料夾」就算完成。真正要確認的是:資料備份、加密材料、還原步驟和登入能力是否能一起恢復。

需要保護的資料

類型說明
密碼庫資料登入項目、組織資料、collections、metadata
附件如果有使用附件功能,必須納入備份範圍
應用設定註冊策略、邀請、管理設定、郵件相關設定
資料庫狀態若使用外部資料庫,資料庫備份必須和 app data 一起考慮
私有恢復資訊主密碼、2FA 恢復方式與緊急存取流程,必須離線保存

還原後檢查

  1. 服務是否正常啟動
  2. Web 登入是否正常
  3. 瀏覽器外掛是否能同步
  4. 手機 App 是否能同步
  5. 既有 vault item 是否完整
  6. 附件是否能讀取
  7. 2FA 與恢復流程是否仍可用
  8. 反向代理與 HTTPS 入口是否正常

Important

密碼庫備份一定要做還原演練。沒有演練過的備份,遇到真正故障時只能算「可能有用」。


🛡️ 2FA 與恢復流程

密碼庫本身一定要比一般服務更嚴格,但也不能嚴格到把自己鎖死。

我會注意的事

  • 主密碼要足夠長且唯一
  • 密碼庫本身啟用 2FA
  • 2FA 備援碼離線保存
  • 家人或重要帳號要有交接與恢復流程
  • 至少保留一個不依賴密碼庫本身才能完成的恢復路徑

最容易忽略的是「密碼庫壞掉時,要怎麼登入修密碼庫」。如果所有恢復資訊都只放在密碼庫裡,就會形成死循環。

我的恢復設計原則

問題原則
忘記主密碼不期待系統能幫忙找回,必須靠事前保存
2FA 裝置遺失備援碼與替代驗證方式要離線保存
服務無法啟動需要有離線匯出或可還原備份
家人需要存取權限、緊急存取和交接流程要提前說清楚

⚠️ 我踩過的坑

只搬進密碼庫,不代表安全提升

如果只是把原本重複、簡單、老舊的密碼搬進 Bitwarden,安全性其實沒有立刻變好。真正的改善是後續逐步替換密碼、開啟 2FA、移除不用的帳號。

不要把密碼庫當成唯一真相

Bitwarden 很重要,但不能變成唯一救命繩。最少要有:

  • 離線備份或匯出策略
  • 重要帳號的恢復流程
  • 主密碼與 2FA 備援方案
  • 服務故障時的臨時登入方案

不要在公開筆記留下太多部署線索

密碼庫是攻擊者最有興趣的服務之一。即使沒有貼出密碼,完整的 domain、proxy、資料庫、SMTP 和使用者資訊仍然可能降低攻擊成本。


⬆️ 升級與維運原則

Bitwarden 類服務更新時,我會比一般工具更保守。

升級前

  1. 確認最近一次備份成功
  2. 確認可以取得必要的離線恢復資訊
  3. 看 release note,注意資料庫 migration 或登入流程變更
  4. 避免和反向代理、資料庫、身份驗證層同時大改

升級後

  1. 測試 Web 登入
  2. 測試瀏覽器外掛同步
  3. 測試手機 App 同步
  4. 檢查新建、修改、刪除 vault item 是否正常
  5. 確認備份任務仍然成功

日常巡檢

  • 使用者是否仍能正常登入
  • 同步是否有延遲或錯誤
  • 備份是否成功並可還原
  • 2FA 和恢復流程是否仍有效
  • 是否有長期不用但仍保留的高風險帳號

結論

Bitwarden 是 Home Lab 裡很值得自架,但也最需要敬畏感的服務。它帶來的價值不只是「密碼存在自己家」,而是讓密碼管理、弱密碼汰換、跨裝置同步、家人共用和恢復流程變得更有秩序。

但密碼庫本身也會變成高價值目標。公開分享時,我只記錄架構、原則和維運檢查,不公開任何足以定位、登入、恢復或推測部署細節的資訊。

延伸閱讀:Home Lab 總覽、OpenMediaVault、Nginx Proxy Manager、Authelia