8
0
0
如何自行搭建Vaultwarden密码管理器并进行配置
文章摘要
|
前言:
以前用过 1Password, 虽然功能强大,但每年的订阅费用确实也吃不消。刚好最近看到了这个项目
听说是用 Rust 写的,在内存占用上非常友好,因此打算部署一下试试看。
准备
我这里使用的是 Docker Compose 部署,因此首先确保你的服务器上已经安装了 Docker Compose。
为了数据持久化映射,因此强烈建议建立单独的文件夹保存数据。
mkdir vaultwarden && cd vaultwarden
新建docker-compose.yml
来到这个文件夹之后,使用文本编辑器(例如 vi,nano)新建docker-compose.yml,并填入以下内容:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
# DOMAIN: "https://vaultwarden.example.com" # 使用反向代理时必填;您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
SIGNUPS_ALLOWED: "true" # 创建账户后,使用 "false" 停用此选项,这样就不会有陌生人注册了
volumes:
- ./vw-data:/data # : 前面的路径可以修改
ports:
- 11001:80 # 您可以将 11001 替换为您喜欢的端口
注意如果你的服务器采用了 Nginx 之类的反向代理,需要取消DOMAIN的注释。
接下来只需要运行容器:
docker compose up -d && docker compose logs -f
接下来访问你配置好的域名或 IP 地址,此刻你应该可以看到注册界面。
配置Vaultwarden
Vaultwarden 具有三种配置方法:
- 设置环境变量
- 使用 ENV_FILE
- 通过 config.json
第三种方法不需要手动管理,只需要通过管理面板即可。
开启管理面板
管理面板的入口对外是不可见的,你需要在直接访问/admin路由。但此时你无法访问此面板,因为缺少了ADMIN_TOKEN这个环境变量。
更改之前的 docker 文件:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
# DOMAIN: "https://vaultwarden.example.com" # 使用反向代理时必填;您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
SIGNUPS_ALLOWED: "true" # 创建账户后,使用 "false" 停用此选项,这样就不会有陌生人注册了
ADMIN_TOKEN: "XXX" #这里的配置在后面会进行修改
volumes:
- ./vw-data:/data # : 前面的路径可以修改
ports:
- 11001:80 # 您可以将 11001 替换为您喜欢的端口
然后重新创建容器:
docker compose up -d && docker compose logs -f
这时直接访问/admin应该就能看到管理面板了。
通过PHC字符串保护ADMIN_TOKEN
Vaultwarden 支持使用 PHC 字符串保护 Token,你可以使用argon2来处理:
# 使用 Bitwarden 默认
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
# 输出:$argon2id$v=19$m=65540,t=3,p=4$bXBGMENBZUVzT3VUSFErTzQzK25Jck1BN2Z0amFuWjdSdVlIQVZqYzAzYz0$T9m73OdD2mz9+aJKLuOAdbvoARdaKxtOZ+jZcSL9/N0
# 使用 OWASP 最低的推荐设置
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1
# 输出:$argon2id$v=19$m=19456,t=2,p=1$cXpKdUxHSWhlaUs1QVVsSStkbTRPQVFPSmdpamFCMHdvYjVkWTVKaDdpYz0$E1UgBKjUCD2Roy0jdHAJvXihugpG+N9WcAaR8P6Qn/8
得到的字符串你可以直接填入 docker 文件中,但要注意需要使用两个美元符号 $$ 来转义已生成的 argon2 PHC 字符串中出现的所有五个美元符号 $以防止变量插值,也可以填入到管理面板的 Admin token/Argon2 PHC 字段(在 General settings 中)。
自此你就得到了一个可用的 Vaultwarden 密码管理器了。
如何自行搭建Vaultwarden密码管理器并进行配置
/archives/ru-he-zi-xing-da-jian-vaultwardenmi-ma-guan-li-qi-bing-jin-xing-pei-zhi