使用bitwarden_rs(vaultwarden)搭建自己的密碼管理器服務

以前一直使用多年lastpass作為我的密碼管理器,使用上來總體說還不錯,但是也還有些小問題,半年多前看到bitwarden,不僅可以使用他們提供的服務也可以自己搭建自己的密碼管理器服務,但是本文教程是bitwarden_rs,bitwarden_rs是Rust語言重寫的比官網的更加輕量級而且更適合個人自己搭建,代碼都是開源的安全性上也算可靠。經過半年的試用bitwarden_rs表現還是不錯的,將該應用推薦給大家,目前bitwarden_rs已經更名為vaultwarden。
bitwarden_rs使用Docker進行安裝,首先我們安裝Docker,已經安裝的可以跳過此部分
1、安裝Docker
然后我們再安裝docker-compose,管理起來更方便些
chmod +x /usr/local/bin/docker-compose
國內安裝docker-composer的話使用下面命令下載會更快些:
chmod +x /usr/local/bin/docker-compose
如果是國內VPS或服務器上使用docker建議將倉庫設置為國內的,這樣拉取鏡像時會更快
cat >/etc/docker/daemon.json<<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.cn"
]
}
EOF
啟動docker并設置為開機啟動:
systemctl enable docker
2、部署bitwarden_rs
2.1 創建bitwarden_rs的運行目錄,這里我們將在當前用戶目錄下運行:
如果是root用戶登陸的,目錄就是 /root/bitwarden,bitwarden_rs的相關文件就會在該目錄下面。
2.2 創建docker-compose配置文件
cat > ~/bitwarden/docker-compose.yml<<EOF
version: "3"
services:
bitwarden:
image: vaultwarden/server
container_name: bitwardenrs
restart: always
ports:
- "127.0.0.1:8087:80" #將宿主機8087端口映射到docker的80端口
- "127.0.0.1:3012:3012"
volumes:
- ./bw-data:/data
environment:
WEBSOCKET_ENABLED: "true" #是否開啟WebSocket
SIGNUPS_ALLOWED: "true" #是否開啟注冊,自用的話自己搭建好注冊后改成false
WEB_VAULT_ENABLED: "true" #是否開啟Web客戶端
#ADMIN_TOKEN: "" #后臺登陸密碼,建議openssl rand -base64 48 生成ADMIN_TOKEN確保安全,當前是沒啟用,如需啟用去掉ADMIN_TOKEN前面的 # ,并生成安全密碼
EOF
2.3 啟動bitwarden_rs服務
docker-compose up -d
運行后會自動拉去鏡像和設置bitwarden_rs,根據網絡等因素拉取鏡像會比較耗時,等一會兒,如果沒有錯誤就會看到提示信息:Starting bitwardenrs ... done 就表示已經運行起來。
關閉重啟服務命令
docker-compose restart #重啟服務
3、Web服務器設置
雖然bitwarden_rs已經運行起來,但是bitwarden_rs是必須要通過https訪問,否則進行無法注冊、登陸等一系列的操作。接下來以LNM一鍵安裝包環境為例創建虛擬主機并添加反向代理配置:
運行:
提前將域名解析到你服務器IP上,再按提示添加域名,其他默認回車默認就行,提示 Add SSL Certificate (y/n) 時,輸入y 回車,再輸入 2 回車,再次回車,將自動添加好該域名。
添加好域名后,使用winscp、nano、vim之類的軟件編輯 /usr/local/nginx/conf/vhost/域名.conf 文件。
查找include enable-php.conf; 在第二個 include enable-php.conf; 下面添加(也就是該域名的https虛擬主機部分配置里),如下配置:
location / {
proxy_pass http://127.0.0.1:8087;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8087;
}
location /admin {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8087;
}
添加完成后,刪掉下面這幾行:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
保存。
重載nginx配置文件:/etc/init.d/nginx reload
然后在瀏覽器輸入: https://域名
就會看到如下界面:

點擊”創建賬號“,填寫好郵箱、密碼等信息,登陸后,后臺如下圖:

如果之前有使用lastpass、1password、keepass或瀏覽器等之類的都可以使用原密碼管理軟件導出的數據導入到bitwarden_rs里。

4、瀏覽器設置
瀏覽器上需要安裝好bitwarden的插件,chrome store、firefox Add-ons里搜索:bitwarden
安裝好后,在瀏覽器點擊bitwarden插件的圖標,如下圖:

在服務器URL欄添加上你服務器的域名,其他選項不用填寫。

填寫好后保存,然后用之前注冊的賬號和密碼,在瀏覽器bitwarden插件登陸頁面上登陸。
這樣bitwarden_rs就已經可以使用了,但是可以修改一下設置更加好用些,點擊bitwarden圖標->設置->選項,在""選項后面打勾,并且"默認的 URI 匹配檢測方式"選項可以選擇"基礎域"。
5、處理小尾巴關閉注冊
如果是個人自用建議關閉掉注冊,修改前需要先停掉bitwarden_rs
docker-compose down
修改 ~/bitwarden/docker-compose.yml 文件,將SIGNUPS_ALLOWED: "true" 改成 SIGNUPS_ALLOWED: "false" 保存,然后 docker-compose up -d 再啟動服務。
6、bitwarden_rs升級
bitwarden_rs更新是很頻繁的,建議隔段時間升級一下,升級方法也很簡單:
docker-compose down
docker pull bitwardenrs/server:latest
docker-compose up -d
7、bitwarden_rs數據備份
bitwarden_rs的數據都在 ~/bitwarden/bw-data/ 目錄下,db.sqlite3 為密碼的數據庫文件,該文件為加密的。
如果已經安裝了sqlite3,可以直接使用命令:
sqlite3 ~/bitwarden/bw-data/db.sqlite3 ".backup '/path/to/backup/bitwarden-backup.sqlite3'"
將數據備份導出,也有必要配合crontab定時備份并保存到其他安全的地方存儲。
至此bitwarden_rs安裝設置完整教程結束,可以自己再使用中摸索,使用密碼管理器管理密碼相對來說更加方便和安全是個不錯的選擇。如果有問題可以本文留言。
>>轉載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/build/bitwarden_rs-install.html










論壇貼出完整配置文件
請問有朋友會根據這個教程出一個青龍面板反向代理設置嗎?
復制了 location /{...} 修改端口后,一直在轉圈。
sqlite是直接讀取文件的,沒有連接賬號和密碼
如何修改數據庫帳號 連接密碼