自架「密碼管理器」服務

這則一樣是從工作筆記中撈出來的舊筆記,重新整理後釋出在部落格分享。

對於「密碼管理器」觀望了很久,一直在考慮要不要使用它,最後看了這篇《為什麼今天就該開始使用密碼管理器》之後,覺得作者說的很有道理,我們應該用一套正規、有加密、有一定安全防護的「密碼管理器」來管理密碼;同時由於團隊協作的需要,難免會遇到必須共用帳號密碼的情況,故確實需要一個合適的服務來管理密碼。於是當時稍微花了一些時間比較了幾套常見的「密碼管理器」,最後在參考該文章的介紹後,選擇試用了 LessPass 與 Bitwarden 這兩套工具。

LessPass

LessPass 在當時號稱是一個全開源(Fully open source)的軟體,你可以自行架設服務,也可以註冊使用官方維護的雲端服務

實際試用之後,第一時間覺得 LessPass 的運作邏輯跟一般想像中的「密碼管理」不太相同。該怎麼說呢?當下使用的感覺是 LessPass 與其說是幫我們集中儲存與管理密碼的「密碼管理器」,正確來說它更像是一個「密碼產生器」。

也就是根據你輸入的「網址」、「帳號」、「主密碼」、「密碼強度與亂數的設定值」,它會幫你產生出一組「高強度的密碼」,於是你可以使用這一組密碼去註冊其他需要登入密碼的服務。

接著當下次需要輸入密碼登入某個服務時,你只要能在 LessPass 輸入正確的「網址」、「帳號」、「主密碼」、「密碼強度與亂數的設定值」,LessPass 就會再次幫你產生出相同的「高強度密碼」,讓你可以複製貼上,順利登入服務。

看到這裡,你一定會想說「這也太麻煩了,我光是記憶密碼就夠累了,現在還要記憶這麼多組變數!?」,對此 LessPass 的解決辦法即是 LessPass Database。

因此不論是 lesspass.com 提供的雲端服務,或你自行架設的 LessPass Database Server,其實最主要的功能都是用來幫你儲存各個服務的「網址」、「帳號」、「密碼強度與亂數的設定值」,方便你下次要「產生」密碼時,可以免去輸入這些欄位。也就是說 LessPass 並不是直接儲存「密碼」本身,因此我才會說它本質上更像是一個「密碼產生器」。

LessPass 有 Chrome 的擴充套件可以安裝,方便使用者可以快速使用。

目前 LessPass 在 GitHub 上的 Readme 已經沒有直接寫明如何 Self Host your LessPass Database,並且 install-lesspass.sh 這個安裝腳本也已經在這個 Commit 中將其移除了。

因此如果想要自行架設 LessPass Database,可以自己研究一下現行版本的 docker-compose.yml,嘗試用 Docker 架設。

艦長當初是參考舊版本的 Readme,並對照前述的 install-lesspass.shdocker-compose.yml 來架設的。但就如前述這些資訊都已經有些過期,只能做為參考輔助,無法保證照著做還能正常架設。
續上,再提供另一項資訊給各位參考。在上述 LessPass 官方提供的 docker-compose.yml 中,內容記載著會使用 postgres:9.5,但我當時在架設時,曾遇到 backend container 出現無法連上 DB 的錯誤訊息,後來是改用 postgres:9.4 解決的。

Bitwarden

艦長試用的第二套密碼管理器是 bitwarden,這一套就比較吻合我們一般想像中的「密碼管理器」,確實是幫你儲存「密碼」或「私密資訊」。

自行架設的方式非常簡單,因為官方已經準備了安裝懶人包 Shell script,你只要準備好一台擁有超過 2GB RAM 的 Server,並能運行 Docker、Docker Compose,即可輕鬆的架設自己的 bitwarden server。

官方文件也撰寫的非常詳細,艦長按著文件做沒遇到任何障礙,因此想要自行架設者,直接參閱官方文件照著做即可。

curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \
&& chmod +x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start

如果你打算架設 bitwarden 提供給多人使用,在開始架設之前你可以先準備好幾件事:

  • Domain name 網域名稱
  • SSL 憑證(或者讓安裝腳本幫你申請 Let’s Encrypt。)
  • 先向官方註冊取得 Hosting Installation Id & Key。(即便你打算免費使用,依然需要註冊取得 Installation Id 與 Key。)

準備完畢後,再去執行 ./bitwarden.sh install,在過程中 Script 會協助你完成架設。未來如要更新升級 bitwarden 也都是透過這個 bitwarden.sh 即可。

bitwarden 同樣也有 Chrome 與 Firefox 的擴充套件可以安裝,方便使用者可以迅速輸入密碼。

擴充套件可以設定是否要定時鎖定,避免自己離開座位後,被人偷偷打開使用。

除了可以儲存帳號與密碼,也可以儲存其他需要被保護的私密資料。也能針對需要自訂欄位。

已儲存的密碼,也可以與其他人共享,成為家庭或團隊共用的資源。

擴充套件上還有一個「密碼產生器」的功能,當要註冊新的網路服務時,可以使用它產生一組新的高強度密碼。

結語

最終選擇了使用自架 bitwarden 作為密碼管理器。從架設至今已超過一年多,目前尚未遇到任何異常狀況。如果你也在考慮為團隊挑選可共用帳號的密碼管理器,bitwarden 會是一個可以考慮的選項。

參考資料

江湖藝名—艦長,熱衷研究維運及自動化相關技術,目標是未來能像畢凱艦長一樣用嘴巴叫所有主機做事!目前為 GitLab Hero、DevOps Taiwan 社群志工並自稱為 DevOps 傳教士。更多個人經歷 chengweichen.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store