互联网时代,我们的账号数量也不断增多,每使用一家服务就需要注册一个账户。偷懒的人会在几乎所有平台使用同一套用户名、邮箱和密码,这对于账户的安全非常不利。当其中一个服务的账户信息被泄露,黑客可使用泄漏的账号密码去各个平台进行尝试,导致其他平台的数据丢失。然而,在不同平台使用不同的账号或者密码虽然安全,但是用户记忆的成本就会大大增加,因此密码管理类软件应运而生。
常见的这类软件有1Password、Lastpass等,但这里介绍一款可以部署在自己服务器上的工具–bitwarden。Bitwarden本身就提供免费的服务可以供大家使用,但是自己部署可以体验到付费版才拥有的功能。详情可见Bitwarden官网:https://bitwarden.com/。
宝塔国际版安装
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
安装Docker
官方安装指南
https://docs.docker.com/engine/install
根据自己的系统选择合适的安装教程。
安装完成后输入以下代码以设置docker开机启动:
systemctl enable docker #设置docker开机自动启动
systemctl status docker #查看docker状态
安装bitwarden
初次部署
docker run -d --name bitwardenrs \
--restart unless-stopped \
-e WEBSOCKET_ENABLED=true \
-v /www/wwwroot/demo/:/data/ \
-p 6666:80 \
-p 3012:3012 \
vaultwarden/server:latest
其中,/www/wwwroot/demo/
为挂载目录,为数据存放的位置,可按需更改。(平时应多备份该文件夹)
6666
为选择的服务器端口,也可按需更改(记得在宝塔防火墙中放行相应端口)。
安装完成后,可以通过http://ip:6666
访问bitwarden界面。
设置方向代理
- 解析一个域名到服务器。
- 进入宝塔,添加一个网站,FTP、Database不需要,PHP为静态即可。
- 修改网站文件夹路径为
/www/wwwroot/demo/
,与前面保持一致。 - 修改网站的Config,将52–64行注释掉并添加:
location / {
proxy_pass http://127.0.0.1:6666/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
- 完成后重载nginx,此时可以通过域名访问网站并注册账号进行使用。
- 如果需要设置自动同步数据,可以直接参考后面步骤设置自动同步
优化配置
关闭新用户注册
作为私人使用的密码管理工具,自己注册完成即可关闭新用户注册。
首先停止该容器 docker stop bitwardenrs
并删除该容器 docker rm -f bitwardenrs
(放心,数据还保存在设置的目录里)
然后运行以下代码:
docker run -d --name bitwardenrs \
--restart unless-stopped \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-v /www/wwwroot/demo/:/data/ \
-p 6666:80 \
-p 3012:3012 \
vaultwarden/server:latest
设置自动同步
同前面设置反向代理相同,打开宝塔网页的Config,用以下代码替换掉反向代理的代码,即可打开自动更新。
location / {
proxy_pass http://127.0.0.1:6666;
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;
}
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:6666;
}
数据迁移
有时可能遇到重装服务器或者迁移服务器的情况,此时需要涉及数据迁移的问题。
- 首先将bitwarden存放数据的文件夹里的文件(即前面的
/www/wwwroot/demo/
)压缩并下载到本地。 - 上传到新的服务器相应的位置,比如还是
/www/wwwroot/demo/
,解压缩。 - 同前面一样添加网站,并把路径改为
/www/wwwroot/demo/
。 - SSH登录然后同前面一样运行docker的代码:
docker run -d --name bitwardenrs \
--restart unless-stopped \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-v /www/wwwroot/demo/:/data/ \
-p 6666:80 \
-p 3012:3012 \
vaultwarden/server:latest
- 然后依然按照上面优化配置,即可重新登录bitwarden,且与之前账户密码等信息保持一致。
- 本质就是备份好bitwarden存放数据的文件夹,在新服务器上运行docker时,将挂载目录指向备份的数据即可。