云服务器通过 vaultwarden 自建 Bitwarden 开源密码管理软件

软件简介

我们的日常生活中,会使用到成百上千种软件以及网站,由此,也会产生无数对应的密码。很多人在设置密码的时候,为了选择省事,都会选择使用相同的密码。但这往往会产生很严重的安全问题:一些安全系数较低的网站往往有密码泄露的风险,这会导致使用相同密码的其他平台的信息得不到安全保证。为不同的网站设置不同类别的密码,要么是弱密码很容易被破解,较为复杂的密码往往又会产生许久不用以后,忘记密码的尴尬情况。

因此,在此种情形之下,使用密码管理工具,就是一个可行的,且门槛较低地创建和管理登录账号密码的有效方法。

现有的密码管理工具主要分为三大类,一类是浏览器自带的密码保存功能,一类是系统自带的密码管理功能(iCloud钥匙串、各家安卓系统内置的密码管理功能),最后一类则是第三方的密码管理软件(1password、endpass、keepass、lastpass、bitwarden等)。

但是前两种解决方案或多或少有一些缺憾,如iCloud钥匙串对PC用户不友好,Edge和Chrome等浏览器密码管理使用场景受限(无法保存app的密码),1Password好用,但要钱。因此,需求不高的普通人,最适合使用的就是剩下的免费密码管理软件,通过对密码管理软件设置一个密码,对自己的无数密码进行管理。

在这其中,开源、跨平台做的比较好的主要为lastpass以及bitwarden。但综合考虑使用体验,bitwarden较为推荐。

综合了密码管理软件的特性以及推荐的bitwarden使用上个人觉得很方面的地方进行介绍。

首先是便捷的密码输入能力,不管是浏览器网站的密码输入还是app上的密码输入,通过密码管理软件都能实现很简单的一键输入。方便省事,让自己从绞尽脑汁记忆以及输入密码中解放出来。bitwarden支持在同一个密码记录中输入多个登录界面网络链接,实现all in one,让该平台的所有密码选项用一个来代替,界面会更清爽整洁。

网站

官网:https://bitwarden.com/

Github:https://github.com/bitwarden/server

vaultwarden:https://github.com/dani-garcia/vaultwarden

安装

bitwarden的密码默认是储存在官方有服务器上,当然是加密存储的。官方为了方便用户,也提供docker方式在自己的服务器安装该密码管理服务。要想自己安装使用bitwarden,需要先安装docker,安装官方的镜像对服务器的要求高,由于官方使用的是mssql,内存必需大于2G,对于小内存机器来说是跑不起来的。

不过在github上有vaultwarden(为了便于与官方区别,bitwarden_rs已更名为vaultwarden),这个是用rust写的docker镜像,对服务器要求较低,小内存照样能用。具体详见:https://github.com/dani-garcia/vaultwarden/

按照提示,两行命令即可拉取docker镜像,进行默认安装:

docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest

默认是80端口,如果80端口被占用则可更换其他自定义端口,如8001:

docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 8001:80 vaultwarden/server:latest

然后访问即可!初次设置需要创建一个账号。

优化

关闭和重启

docker stop bitwarden   //关闭
docker start vaultwarden   //启动

禁止新用户注册

为了保证bitwarden服务器的稳定,你可以禁止bitwarden注册新用户(这一项可以放在最后,否则你自己都无法注册了)。禁止新用户注册:

# 停止、删除原容器
docker stop vaultwarden
docker rm vaultwarden
# 重新运行 docker run 命令
docker run -d --name vaultwarden \
  -e SIGNUPS_ALLOWED=false \
  -e WEBSOCKET_ENABLED=true \
  -v /vw-data/:/data/ \
  -p 80:80 \
  --restart=always \
  vaultwarden/server:latest

配置邮件

某些情况下需要配置smtp发送邮件功能,例如多用户或邀请注册的情况下,可以通过如下命令配置smtp服务器信息。

docker run -d --name bitwarden \
  -e SMTP_HOST=<smtp.domain.tld> \
  -e SMTP_FROM=<bitwarden@domain.tld> \
  -e SMTP_PORT=587 \
  -e SMTP_SSL=true \
  -e SMTP_USERNAME=<username> \
  -e SMTP_PASSWORD=<password> \
  -v /bw-data/:/data/ \
  -p 80:80 \
 vaultwarden/web-vault:latest

开启管理员权限

bitwarden可以开启管理员权限/admin页面,此页面允许服务器管理员查看所有注册用户并删除它们,它还允许邀请新用户,即使注册被禁用。

当然为了用户隐私安全,管理员只能查看用户和删除用户,并不能读取用户存储的密码信息。

# 停止、删除原容器
docker stop vaultwarden
docker rm vaultwarden
# 重新运行 docker run 命令
docker run -d --name vaultwarden \
  -e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
  -v /vw-data/:/data/ \
  -p 80:80 \
  vaultwarden/server:latest

数据备份

bitwarden备份最关键的就是sqlite3数据库文件了,你可以直接进入到bw-data目录下,将sqlite3数据库保存下来。当然你也可以将bw-data目录下所有的包括附件文件夹、图标缓存文件夹、密钥等文件备份下来。