Vaultwarden Wiki 中文版
⮐ Vaultwarden Wiki个人主页联系我
  • 关于
  • 首页
  • FAQ
    • 1.FAQ
    • 2.审计
    • 故障排除
      • 1.Bitwarden Android 故障排除
  • 容器镜像的使用
    • 1.容器镜像的选择
    • 2.启动容器
    • 3.更新 Vaultwarden 镜像
    • 4.使用 Docker Compose
    • 5.使用 Podman
  • 部署
    • 1.构建您自己的镜像
    • 2.构建二进制
    • 3.预构建二进制
    • 4.第三方包
    • 5.部署示例
    • 6.代理示例
    • 7.转储示例
    • HTTPS
      • 1.启用 HTTPS
      • 2.使用 Let's Encrypt 证书运行私有 Vaultwarden 实例
  • 配置
    • 1.配置概述
    • 2.禁用新用户注册
    • 3.禁用邀请
    • 4.启用管理页面
    • 5.禁用管理令牌
    • 6.启用 WebSocket 通知
    • 7.启用移动客户端推送通知
    • 8.启用 U2F 和 FIDO2 WebAuthn 身份验证
    • 9.启用 YubiKey OTP 身份验证
    • 10.更改持久性数据位置
    • 11.更改 API 请求大小限制
    • 12.更改 worker 数量
    • 13.SMTP 配置
    • 14.显示密码提示
    • 15.禁用或覆盖密码库接口托管
    • 16.日志记录
    • 17.设置为 systemd 服务
    • 18.从 LDAP 同步用户
    • 19.使用备用基本目录(子目录/子路径)
    • 20.其他配置
    • *使用 systemd docker 运行
    • 数据库
      • 1.使用 MariaDB (MySQL) 后端
      • 2.使用 PostgreSQL 后端
      • 3.在未启用 WAL 的情况下运行
      • 4.从 MariaDB (MySQL) 迁移到 SQLite
    • 安全
      • 1.强化指南
      • 2.Fail2ban 设置
      • 3.Docker Traefik ModSecurity 设置
    • 其他
      • 1.翻译电子邮件模板
      • 2.翻译管理页面
      • 3.自定义 Vaultwarden CSS
  • 备份
    • 1.通用(非 docker)
  • 其他
    • 1.从 Keepass 或 KeepassX 导入数据
    • 2.备份您的密码库
    • 3.与上游 API 实现的区别
    • 4.支持上游的发展
    • 5.使用 Cloudflare DNS 的 Caddy 2.x
    • 6.Git hooks
    • *使用非 root 用户运行 docker 容器
    • *使私有 CA 和自签名证书兼容 Chrome
    • *测试 SSO
由 GitBook 提供支持
在本页
  • 禁用管理页面
  • 保护 ADMIN_TOKEN
  • 使用 vaultwarden hash
  • 使用 argon2
  • 如何防止 docker-compose.yml 中的变量插值
  1. 配置

4.启用管理页面

上一页3.禁用邀请下一页5.禁用管理令牌

最后更新于1个月前

对应的

强烈建议在启用此功能之前激活 HTTPS,以避免潜在的 攻击。

该页面允许服务器管理员查看并删除所有已注册的用户。它也允许邀请新用户,即使禁用了注册功能。

要启用管理页面,您需要设置一组身份验证令牌。该令牌可以是任何字符,但建议使用随机生成的长字符串,比如运行 openssl rand -base64 48 命令生成。

此令牌是您访问服务器管理区域的密码!请确保其安全性。您该如何。

要设置令牌,请使用 ADMIN_TOKEN 变量:

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

此后,管理页面将在 /admin 子目录中可用。

在管理页面首次保存设置时,将自动在 DATA_FOLDER 文件夹中生成 config.json 文件。该文件中的值优先于环境变量值。

需要注意的是,在您点击 Save 按钮之前,管理页面中的配置更改是不会生效的。例如,如果您正在测试 SMTP 设置,您更改了 SMTP Auth mechanism 设置,然后点击 Send test email 来测试更改,这将不会像预期的那样工作 -- 因为您没有点击 Save,SMTP Auth mechanism 的更改不会生效。

注意:更改 ADMIN_TOKEN 后,当前已登录的任何管理员仍可以使用他们现有的登录会话直到到期。管理会话生命周期是,默认为 20 分钟。

禁用管理页面

要禁用管理页面,您必须取消设置 ADMIN_TOKEN 并重新启动 Vaultwarden。

注意:如果环境变量 ADMIN_TOKEN 的值持续保留在上述的 config.json 文件中,则移除环境变量 ADMIN_TOKEN 并不会禁用管理页面。要禁用管理页面,请确保没有设置 ADMIN_TOKEN 环境变量,并且 config.json(如果该文件存在)中不存在 "admin_token" 键。

保护 ADMIN_TOKEN

最好是使用环境变量。但如果您通过管理界面更新了设置,则需要通过相同的网页界面更新管理令牌!

请不要手动编辑 config.json 文件,因为如果操作不当可能会引起故障!

要在保护令牌后登录管理页面,您需要使用令牌创建期间提供的密码(而不是令牌本身)。

如果您一直收到 You are using a plain text ADMIN_TOKEN which is insecure. 消息,则说明您要么已经通过管理界面保存了设置,环境变量将不会被使用,要么您需要确认使用了正确的格式。请仔细阅读下面的如何防止 docker-compose.yml 中的变量插值部分。

有关如何生成 Argon2id PHC 哈希的一些示例。

使用 vaultwarden hash

Vaultwarden 中内置了一个 PHC 生成器,您可以通过 CLI vaultwarden hash 运行它。这可以通过已经运行的实例上的 docker exec 来完成,或者通过在您自己的系统上的 docker 在本地运行它。

下面使用 vwcontainer 作为容器名称,请将其替换为您的实例的实际容器名称。Vaultwarden CLI 会要求输入两次密码,如果两次相同,它将输出生成的 PHC 字符串。

示例:

# 使用 Bitwarden 默认(默认的预设值)
# Via docker on a running container
docker exec -it vwcontainer /vaultwarden hash

# 通过 docker 并创建一个临时容器
docker run --rm -it vaultwarden/server /vaultwarden hash

# 直接使用 vaultwarden 二进制文件
./vaultwarden hash

# 使用 OWASP 最低的推荐设置
# Via docker on a running container
docker exec -it vwcontainer /vaultwarden hash --preset owasp

# 通过 docker 并创建一个临时容器
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp

# 直接使用 vaultwarden 二进制文件
./vaultwarden hash --preset owasp

使用 argon2

您还可以使用大多数 Linux 发行版上提供的 argon2 CLI。

# 使用 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/podman CLI 命令中使用这些字符串。对于 docker-compose.yml 文件,请按照以下说明操作。如果您使用的是已有的设置,请不要忘记通过管理界面更新您的密码/令牌。

如何防止 docker-compose.yml 中的变量插值

  environment:
    ADMIN_TOKEN: $$argon2id$$v=19$$m=19456,t=2,p=1$$UUZxK1FZMkZoRHFQRlVrTXZvS0E3bHpNQW55c2dBN2NORzdsa0Nxd1JhND0$$cUoId+JBUsJutlG4rfDZayExfjq4TCt48aBc9qsc3UI

这可以自动完成,例如通过添加 | sed 's#$#$$#g' 到上面的 argon2 命令行的末尾。

否则您将收到警告消息并且变量将无法正确设置:

WARNING: The argon2id variable is not set. Defaulting to a blank string.
WARNING: The v variable is not set. Defaulting to a blank string.
WARNING: The m variable is not set. Defaulting to a blank string.
...

为 docker-compose.yaml 使用 .env 文件时情况并非如此。如下所示。在这种情况下,只需使用单个 $ 变量。与使用 -e ADMIN_TOKEN 的 docker/podman cli 相同。

/docker-data
├── .env
├── docker-compose.yaml
├── vaultwarden/data

.env:

确保在 docker-compose 所使用的 env 文件中使用单引号。

VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$MmeK.....'

docker-compose.yaml:

services:
  vaultwarden:
    image: ghcr.io/dani-garcia/vaultwarden
    container_name: vaultwarden
    restart: unless-stopped
    volumes:
      - /path/to/vaultwarden/data/:/data/
    environment:
      - ADMIN_TOKEN=${VAULTWARDEN_ADMIN_TOKEN}

您可以通过调用 docker compose config 来检查您的配置,您应该会看到 $ 符号转义成了两个 $$。

此功能自 后可用。

以前 ADMIN_TOKEN 只能是纯文本格式。您现在可以使用 Argon2 通过生成 来对 ADMIN_TOKEN 进行哈希处理。这可以通过使用 Vaultwarden 中的内置 hash 命令或使用 argon2 CLI 工具生成。在 Vaultwarden 应用程序中,有两个预设,一个是使用 的,一个是使用 的。

当 并通过 environment 指令配置 ADMIN_TOKEN 时,您需要使用两个美元符号 $$ 来转义已生成的 argon2 PHC 字符串中出现的所有五个美元符号 $ 以防止,例如:

1.28.0+
PHC 字符串
Bitwarden 默认
OWASP 推荐
使用 Docker Compose
变量插值
官方页面地址
MITM
可配置的
确保管理令牌的安全