1、介绍
注意:本文所提到的Bitwarden皆为BitWarden_RS,现已更名为Vaultwarden,原因参考:https://github.com/dani-garcia/vaultwarden/discussions/1642
Bitwarden是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登入凭据)。
Bitwarden平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。
Bitwarden提供云端托管服务,并支持自行部署解决方案。
——维基百科
所有的安全科普、讲座都在告诉我们:
- 不要在所有网站上使用同样的密码
- 不要使用生日、姓名、电话等容易被猜出的要素作为密码
然而,我们生活中要使用的网站没有一百个,也有八十个,设置了不同的密码,都记住显然不太现实。因此,我们可以使用密码管理器软件。
著名的密码管理器有:1Password,OneSafe,LastPass,大部分浏览器(Chrome,edge,FireFox)也自带了密码保存功能,但是这些工具部分需要收费,并且密码存储在其提供的服务器上。
引用网友的一句话:无论软件的安全性宣传得再好,把密码交给别人管理,就无所谓什么安不安全了。
因此,我们选择使用Bitwarden自己搭建密码管理器。
Bitwarden具有如下优势:
- Bitwarden是一款免费且开源的密码管理工具
- Bitwarden有Windows,Linux,Mac,iPhone,Android以及Chrome等多种主流浏览器的客户端
- Bitwarden允许使用自建的服务器,并且提供了详细的部署教程
2、部署
执行:
Bash
docker run -d \
--rm \
--name bitwarden \
-p 8080:80 \
-p 3012:3012 \
-e SIGNUPS_ALLOWED=true \
-e WEB_VAULT_ENABLED=true \
-e DOMAIN=https://mydomain.cn \
-v ~/bitwarden:/data \
bitwardenrs/server:latest
上面命令的各个参数含义如下:
- -d 在后台运行
- --rm 容器停止运行后,自动删除容器文件
- --name bitwarden容器的名字为bitwarden
- -p 8080:80 容器的端口80映射到8080,在Nginx配置
- -p 3012:3012 容器的端口3012映射到3012
- -e SIGNUPS_ALLOWED=true 设置环境变量SIGNUPS_ALLOWED=true允许用户注册
- -e WBE_VAULT_ENABLE=true 设置环境变量WBE_VAULT_ENABLE=true
- -e DOMAIN=https://mydomain.cn设置域名,需要替换成自己申请的域名
- -v /data/bitwarden:/data 容器的/data/目录映射到宿主机的/data/bitwarden目录
3、配置
按照老方法,添加反向代理。
注意:需要修改反向代理配置文件为如下!
Bash
#配置反向代理,请求代理发送到8080端口
location / {
proxy_pass http://127.0.0.1:8080;
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;
root /usr/share/nginx/html;
index index.html index.htm;
}
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:8080;
}
}
因为Bitwarden部分服务使用了WebSocket,需要单独配置反代。
4、使用
访问我们的域名就可以访问Bitwarden的主页,接下来我们来介绍一下如何使用自己Bitwarden管理我们各个平台与各个终端上的密码。
4.1、注册
访问反代的网站:
使用自己的电子邮件地址注册一个账号。
点击提交后,即表示注册成功。接下来会返回到登录页面,输入电子邮件地址,和主密码即可登录。下图显示注册账号后为空的密码库。
4.2、禁止其他人注册
由于这个bitwarden服务器是供个人使用,我们在注册完账号后,要关闭注册功能,防止他人注册。
执行:
Bash
# 先停止bitwarden容器
docker stop bitwarden
# 设置环境变量不允许注册用户-e SIGNUPS_ALLOWED=false,再启动bitwarden容器
docker run -d \
--rm \
--name bitwarden \
-p 8080:80 \
-p 3012:3012 \
-e SIGNUPS_ALLOWED=false \
-e WEB_VAULT_ENABLED=true \
-e DOMAIN=https://mydomain \
-v ~/bitwarden:/data \
bitwardenrs/server:latest
此时再注册账号时,会提示Registration not allowed or user already exists.
这样的错误。
4.3、各客户端配置
Bitwarden基本上支持了所有客户端:
Chrome
下载浏览器插件:
设置我们自建bitwarden服务器URL的地址。
接下来我们就体验一下,bitwarden自动保存密码的功能。在chrome浏览器中,我们登录果壳网,bitwarden会自动检测需要保存的用户名和密码。点击“是的,现在保存”即可。
再次访问网站,密码用户名和密码就会自动填充好。
iOS
在AppStore上搜索bitwarden,下载Bitwarden密码管理器。
打开APP,点击设置图标,设置我们搭建的bitwarden服务器域名。
点击“登录”,用注册的bitwarden账号登录到我们搭建的服务器上。
Docker建站(六)Bitwarden:安全私密的个人密码管理器
https://blog.tsinbei.com/archives/731/
Author
Hsukqi Lee
Posted on
2022-08-28
Licensed under
CC BY-NC-ND 4.0
未经允许不得转载:便宜VPS » Docker建站(六)Bitwarden:安全私密的个人密码管理器