使用bitwarden_rs搭建自己的密码管理器服务
以前一直使用多年lastpass作为我的密码管理器,使用上来总体说还不错,但是也还有些小问题,半年多前看到bitwarden,不仅可以使用他们提供的服务也可以自己搭建自己的密码管理器服务,但是本文教程是bitwarden_rs,bitwarden_rs是Rust语言重写的比官网的更加轻量级而且更适合个人自己搭建,代码都是开源的安全性上也算可靠。经过半年的试用bitwarden_rs表现还是不错的,将该应用推荐给大家。
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://hub-mirror.c.163.com", "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] } 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: bitwardenrs/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侦探 本文链接地址:https://www.vpser.net/build/bitwarden_rs-install.html
论坛贴出完整配置文件
请问有朋友会根据这个教程出一个青龙面板反向代理设置吗?
复制了 location /{...} 修改端口后,一直在转圈。
sqlite是直接读取文件的,没有连接账号和密码
如何修改数据库帐号 连接密码