使用docker搭建vaultwarden密码管理服务
前言
今天介绍一款密码管理软件bitwarden。bitwarden是一款优秀的自由开源密码管理软件,其覆盖多平台且支持自行部署。但由于官方版本过重,使用rust重写的第三方开源版vaultwarden更适合我们搭建使用——它运行更轻量,也能使用许多官方版本需要付费的功能。
服务端搭建流程
使用docker搭建vaultwarden
使用以下命令搭建,注意替换掉【你的ADMIN_TOKEN】
和【数据目录】
。
1 |
|
详细设置参数可以在官方文档找到,参见这里。
设置smtp邮件通知
进入http://【容器ip】/admin
(如容器ip为192.168.10.5
,则为http://192.168.10.5/admin
),输入之前配置的【你的ADMIN_TOKEN】
进入管理页面
点开SMTP Email Settings
模块,勾选Enabled
打开,其余部分填入对应内容即可。此处以QQ邮箱为例。
如上,From Address
和Username
填入邮箱地址,Password
为邮箱密码(或其他凭证,如QQ邮箱使用授权码),From Name
为发信人名称。
设置即时自动同步
vaultwarden默认可以定期自动同步,但间隔期可能导致多设备数据不一致,有时甚至会导致未同步信息被覆盖。好在如今,我们可以通过开启WebSocket来实现实时同步。
创建容器时的WEBSOCKET_ENABLED=true
参数来开启Websocket;如果使用反向代理,则要在反向代理里同步开启。
对服务进行反向代理
因web页面强制要求使用https访问,建议使用反代套一层https,此处使用nginx proxy manager。
填写好ip和端口,打开Websockets Support
和Block Common Exploits
,SSL
选择证书,打开Force SSL
,配置完成。
开始使用
点击Create Account
创建账号,此时的密码为账号的主密码。进入Settings
-Options
,更改Language
为中文即可。
注意!主密码非常重要!!Bitwarden通过帐号和主密码经算法得到一个值,然后用这个值去加密用户的各个密码,最后储存在服务器上。而加密解密都需要在本地进行,也就是说,黑客即使攻破了服务器,仍无法破解密码数据库。这对我们的密码足够安全,但也意味着你一旦忘记主密码,你所有保存的密码将永远无法访问,所以——请谨慎保管主密码!
功能介绍
密码生成器
不论是网页版还是客户端,我们都能很容易找到密码生成器,它可以帮我们生成满足要求的随机密码,这对于账号的安全性有很大的提升。
试试你的密码要多久才能被破解?——How Secure Is My Password
匹配模式
bitwarden匹配模式十分重要,它决定了你的账号密码何时自动填充到网页中,默认是基础域
模式,可以根据自己需求适当调整。各个匹配模式摘录如下:
基础域
选择基础域,当登录项目的 URI 值的顶级域名和第二级名与检测到的资源相匹配时,Bitwarden 将弹出提示以提供自动填充。
例如,URI 的值为https://google.com
,使用基础域匹配检测:
URL | 自动填充? |
---|---|
http://google.com | ✔︎ |
https://accounts.google.com | ✔︎ |
https://google.net | ✘ |
http://yahoo.com | ✘ |
主机
选择主机,当登录项目的 URI 值的主机名和端口(若指定了)与检测到的资源相匹配时,Bitwarden 将弹出提示以提供自动填充。
例如,URI 的值为https://sub.domain.com:4000
,使用主机匹配检测:
URL | 自动填充? |
---|---|
http://sub.domain.com:4000 | ✔︎ |
https://sub.domain.com:4000/page.html | ✔︎ |
https://domain.com | ✘ |
https://sub.domain.com | ✘ |
https://sub2.sub.domain.com:4000 | ✘ |
https://sub.domain.com:5000 | ✘ |
开始于
选择开始于,当检测到的资源以登录项目的 URI 值开头(无论后面跟什么)时,Bitwarden 将弹出提示以提供自动填充。
例如,URI 的值为https://sub.domain.com/path/
,使用开始于匹配检测:
URL | 自动填充? |
---|---|
https://sub.domain.com/path/ | ✔︎ |
https://sub.domain.com/path/page.html | ✔︎ |
https://sub.domain.com | ✘ |
https://sub.domain.com:4000/path/page.html(被端口阻断了) | ✘ |
https://sub.domain.com/path(缺少斜杠) | ✘ |
正则表达式
选择正则表达式,当检测到的资源与一个指定的正则表达式相匹配时,Bitwarden 将弹出提示以提供自动填充。正则表达式始终不区分大小写。
不安全示例
URI 的值为^https://.*google\.com$
,使用正则表达式匹配检测:
URL | 自动填充? |
---|---|
https://google.com | ✔︎ |
https://sub.google.com | ✔︎ |
https://malicious-site.com?q=google.com | ✔︎ |
http://google.com | ✘ |
https://yahoo.com | ✘ |
这可能比预期的要匹配得更多。
安全示例
URI 的值为^https://[a-z]+\.wikipedia\.org/w/index\.php
,使用正则表达式匹配检测:
精确
选择精确,当登录项目的 URI 值与检测到的资源精确匹配时,Bitwarden 将弹出提示以提供自动填充。
例如,URI 的值为https://www.google.com/page.html
,使用精确匹配检测:
URL | 自动填充? |
---|---|
https://www.google.com/page.html | ✔︎ |
http://www.google.com/page.html | ✘ |
https://www.google.com/page.html?query=123 | ✘ |
https://www.google.com | ✘ |
从不
选择从不,Bitwarden 将从不为登录项目弹出以提供自动填充。
客户端配置
接下来就是要自己的所有设备都能连接到密码库,并时刻更新密码了。此处以chrome扩展为例,其他客户端都大同小异,也就不多言了。
chrome扩展设置
在chrome应用商店搜索找到bitwarden,添加并启用。点击左上角设置
,在自托管环境
-服务器URL
处填写自己的反代url,回到主页就能登录了。
点开设置
页,将安全
-密码库超时时间
设置为从不,这样比较方便不需要频繁输入密码解锁。
在设置
页,找到其他
-选项
,点击进入;找到AUTOFILL
,勾选自动填充。
结语
到这里,本篇教程就已基本结束了。Bitwarden是一款很强大的密码管理平台,本文也只简单介绍了部分基础内容。至于剩下更多功能,就留给各位自己发掘了~
参考资料
部署基于 Rust 的第三方 Bitwarden 服务端容器
【保姆级教程】利用宝塔面板+Docker搭建一个优秀的密码管理器——Bitwarden
Bitwarden的安装 – Wenhui’s Rotten Pen
URI 的使用 - Bitwarden 帮助中心中文版
Home · dani-garcia_vaultwarden Wiki
Bitwarden 帮助中心中文版