密码管理系统很久前已经在用了,主要用来记录一些不太重要的论坛、不涉及资金的网络账号密码。一直使用LastPass,一开始还有中文的。后来更新着突然就没了中文了。主要也是生成密码和自动填充,英文用着也不碍事。只是虽然那些账号都无关紧要,但是总感觉自己的敏感数据在别人手上总是不太自在。加上有闲置的服务器。因此走上了搭建私有化的路上。选用了衍生版本Bitwarden_rs。
VPS准备
- VPS一台,需安装Docker,内存不低于512m (实际内存占用相当小)
- 域名(如使用国内服务器,请先备案)
参考资料
Docker
- 官方教程:Centos7 Docker安装文档
Bitwarden_rs 安装
#获取镜像 docker pull bitwardenrs/server:latest #生成管理员Token openssl rand -base64 48
保存好生成的Token。开始搭建bitwardenrs。
docker run -d --name bitwarden -e ADMIN_TOKEN=[生成的Token] -v [数据存放的目录]:/data/ -p [外网端口]:80 bitwardenrs/server:latest
构建完成后,通过[服务器ip:外网端口],如127.0.0.1:8080/admin。访问bitwardenrs后台,并在设置中将网址设置为你的域名保存后关闭。
因bitwardenrs安全性要求,需为HTTPS才能正常登录,需要使用Nginx的反向代理,请自行搭建Nginx或使用宝塔完成该项。
然后通过[域名:外网端口]访问bitwardenrs前台,并注册一个账号。登录账号后,如之前有使用其他密码管理系统,可以在此时通过web管理页面导入到bitwardenrs。后续为保证安全会关闭web访问,导入就不太方便了。
完成上述步骤,回到服务器,执行以下命令
# 停止容器 docker stop bitwarden # 删除容器 (此时用户数据和设置数据在数据存放目录中,删除容器并不影响) docker rm bitwarden
完成后使用以下命令构建正式版环境
docker run -d --name bitwarden \ -e SIGNUPS_ALLOWED=false \ (这个实际在文件夹配置文件里,已禁止) -e INVITATiONS_ALLOWED=false \ (禁止web端访问) -e WEB_VAULT_ENABLED=false \ -v [数据存放目录]:/data/ \ -p [外网端口]:80 \ bitwardenrs/server:latest
实际操作下来,反向docker命令中的SIGNUPS_ALLOWED=false(即关闭注册功能),命令无任何效果。依旧可以注册。因此需要到[数据存放目录],找到config.json文件,找到配置项SIGNUPS_ALLOWED改为false,重启docker容器,可以实际关闭用户注册。
至此,搭建完成。
备份
只需要将数据存放目录,一般是叫bw-data文件夹整个备份下来即可。一般来说都是字节数据,并不会很大。
迁移
由于是使用Docker部署的,迁移非常简单。
在新环境中,搭建Docker环境,并重新下载bitwardenrs的Docker image。
#获取镜像 docker pull bitwardenrs/server:latest
将之前备份的数据存放目录,一般是叫bw-data文件夹,放到服务器上,执行Docker命令。
docker run -d --name bitwarden \ -e SIGNUPS_ALLOWED=false \ (这个实际在文件夹配置文件里,已禁止) -e INVITATiONS_ALLOWED=false \ (禁止web端访问) -e WEB_VAULT_ENABLED=false \ -v [数据存放目录]:/data/ \ -p [外网端口]:80 \ bitwardenrs/server:latest
服务便重新运行起来。接着去改反向代理的IP,即可把服务完全迁移了。