跳到主要内容

利用Vaultwarden搭建自己的密码库

· 阅读需 6 分钟

你有多少个账号呢,有多少个不同的密码捏?

Bitwarden是一个安全,开源,跨平台的密码管理器。提供免费/付费个人计划,团队计划,商业计划等等。详见:https://bitwarden.com/pricing/

Bitwarden也提供了服务端用于自行部署。不过官方服务端性能要求高,所以我使用了用rust编写的非官方服务端vaultwarden(原名bitwarden_rs)。

在使用bitwarden之前,窝总共有四五个密码。最最开始所有账号用的都是同一个密码,后来害怕密码泄露,又想了三四个密码,小网站/小APP使用最简单的密码,即使泄露也无伤大雅,比较重要的账户使用中等复杂的密码,重要的账号/涉及支付的账号使用最复杂的密码。

但是这样还是会有一些小问题,比如1. 一些小网站就要求大小写字母加符号。而有一些APP竟然不允许密码中包含符号。。。绝了 2. 有时候我也不知道某个账号用的是哪个密码,只好所有密码都试一遍。3. 有时候我记不住账号(┬┬﹏┬┬),因为我有多个邮箱和用户名。

所以我开始使用密码管理器,如果你没有自己的服务器,域名,和比较富裕的时间,我建议使用官方服务,官方免费服务足够个人使用(需要有一定科学上网能力,来接收Google reCAPTCHA)。

Bitwarden提供优秀的自动填充服务,并且可以利用系统的生物识别(指纹,人脸等)进行认证。

同时Bitwarden不止可以用来存储密码,还可以存储文件/文本/银行卡/个人信息。并且提供安全分享功能(seed)。

搭建教程

需要有一台vps,一个域名,如果服务器位于国内则需备案。 我使用的是腾讯云1h 2g 5m, Debian 10系统

(一) 安装Docker和Caddy

1. 安装必要软件

sudo apt update
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release

2. 添加官方密钥

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3. 添加仓库

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 安装Docker

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

5. 安装Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

(二) 部署Vaultwarden

1. 拉取镜像

docker pull vaultwarden/server

2. 启动容器

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

这将创建一个名字叫vaultwarden,将容器的/data/目录映射到机器的/vm-data/目录,将容器的80端口映射到机器的8080端口,使用的镜像为vaultwarden/server:latest.

3. 配置Caddy

mkdir /etc/caddy
touch /etc/caddy/Caddyfile
vi /etc/caddy/Caddyfile

按i进入编辑模式,输入

password.example.com {
reverse_proxy localhost:8080
}

之后输入sudo systemctl reload caddy重启Caddy。 去DNS服务商那里把域名解析到vps, 浏览器访问password.example.com,出现bitwarden的界面就ok.

4. 注册

点击创建账号,填写电子邮件,设置主密码. 主密码一定不能太简单. 只有知道主密码才能访问密码库,即使别人盗取了你的数据库,在不知道你主密码的情况下依然无法访问你的密码库,所以主密码一定要设置复杂一点.

(三) 设置Vaultwarden

1. 禁止新用户注册并开启WebSocket

为了防止他人注册,需要禁止新用户注册.

docker rm vaultwarden
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-v /vw-data/:/data/ \
-p 8081:80 \
-p 30122:3012 \
vaultwarden/server:latest

之后去修改Caddyfile, 添加

reverse_proxy localhost:30122

(四) 获取Bitwarden应用

访问 https://bitwarden.com/download/ 获取各平台应用

请选择你的英雄

Windows
Linux 移动端

Chrome Edge Firefox Tor

后记

密码

二次验证


2022-04-06 因为服务器上部署着另一个服务,并且我也担心自己没有能力保证数据安全,最后还是换成了官方服务。🤣