無聊時問問ChatGPT有什麼實用的Docker 項目,發現有這個Vaultwarden 私人密碼庫,正好可以利用它整理我那雜亂的密碼,因為我的密碼就放在NAS硬碟中的某個角落,也沒有加密XD(實在夠不安全的),每次找密碼都是連回NAS查看這個txt檔,而且每次在Google登入某些網站時,都會跳出「密碼已外洩」,實在看得很不順眼,想要藉由這次機會重設那些外洩的密碼,然後把密碼都交給Vaultwarden來保管。
Vaultwarden介紹
Vaultwarden是一個用Rust語言編寫的非官方(Bitwarden)軟體,但它完全相容於Bitwarden客戶端,它們的API是相通的,主打輕量化運行、非常適合跑在NAS上。Vaultwarden 的安全原理主要靠端到端加密(E2EE),用戶的密碼資料在本地先被加密後才傳到伺服器,伺服器根本看不到明文資料。此外,它透過多因素認證和硬體安全金鑰防止帳號被盜,搭配失敗登錄封鎖機制(如 Fail2ban)減少暴力破解風險,保障整體安全。
儲存在Sever的資料是透過主密碼加密的,所以除非主密碼外洩,不然整個資料庫是非常難以被破解的。

在Synology NAS上架設
透過Docker我們可以很方便快速部署,這邊以Synology NAS透過Container Manager(在舊版DSM為Docker)來管理,先確保Container Manerger已經有安裝:

開啟後在倉儲庫搜尋 “Vaultwarden” 並下載:

在映像檔中等待下載完成後執行:

開始設置,我這邊限制CPU低,記憶體給128~256就差不多了,真的是很輕量化:

接下來:
- Port 設置一個沒被佔用的
- 掛載NAS資料夾給容器中的/data
- 增加環境設定
- DOMAIN: Vaultwarden的域名
(可以在控制台>>登入入口>>進階>>反向代理服務器新增反向代理,NAS會幫你申請子域名並反向代理) - ACCESS_TOKEN: 有設定就會開啟Vaultwarden管理頁面
這個Token就是管理頁面的密碼,所以安全性要非常高,可以隨機生成或使用超長的容易記的字串 - SIGNUPS_ALLOWED: 填寫false可以禁止帳號註冊,因為還沒啟動容器這邊就先不設定
- DOMAIN: Vaultwarden的域名
- 網路用host就可以了



設定完就可以下一步完成建立容器並啟動容器
然後就可以在瀏覽器連接並建立帳戶: https://vaultwarden.eample.com

進入後他會提示你可以安裝瀏覽器插件,跟著他的指示進行安裝,插件裡可以設定自動填入密碼、逾時鎖定等功能。它還可以搭配桌面版來啟用指紋登入,但是我覺得不是很好用,另外,他也有手機App,IOS和Android平台都有,是下載Bitwarden不是Vaultwarden。
注意: Vaultwarden強制使用https連線,所以你的NAS也要先申請一個網域,Synology一台NAS可以申請一個,需要先申請這個才能用反向代理。
我們非常輕鬆的架設好一個強大的密碼管理庫,如果覺得這個開源軟體很讚不妨可以贊助Vaultwarden開發團隊,讓這個專案得以延續並持續更新提升安全性。
參考資料
Vaultwarden Wiki 中文版: https://rs.ppgg.in
ChatGPT