Vaultwarden 1.36.0:升级指南
自托管意味着你就是自己的安全团队。
在云端,公司会在你察觉之前修复漏洞。而使用 Vaultwarden,风险由你承担。如果你跳过更新,就会面临已知漏洞的威胁。
Vaultwarden 1.36.0 修复了两个关键领域: • 管理面板身份验证。 • 会话令牌处理。
管理面板是一个常见的攻击目标。许多用户将其运行在公共子域名上。如果你没有在代理层级拦截 /admin 路径,你将面临风险。
1.36.0 中的主要改进:
• 服务端速率限制:应用程序现在在内部处理速率限制。它不再仅仅依赖于你的 Nginx 或 Caddy 配置。这可以防止攻击者利用伪造的 IP 请求头来绕过限制。
• 更强的会话安全性:服务器现在会在每次 API 调用时检查令牌是否过期。这可以防止被盗令牌的使用时间超过预期。
• 更新依赖项:针对 OpenSSL 和 tower-http 的修复降低了拒绝服务(DoS)攻击的风险。
如何在不丢失数据的情况下进行升级:
正确备份你的数据库。 不要只是简单地复制文件。请使用容器内的 SQLite 备份命令以避免损坏。 运行:
docker exec vaultwarden sqlite3 /data/db.sqlite3 '.backup /data/db_backup.sqlite3'验证备份。 对新文件进行完整性检查。如果结果不是 "ok",请勿继续。
使用原子升级方法。 不要先停止容器,这会导致停机。相反,在旧容器运行时拉取新镜像,然后重新创建服务。 运行:
docker compose pull vaultwardendocker compose up -d vaultwarden设置你的 IP 请求头。 为了确保速率限制生效,请告知 Vaultwarden 你的代理使用了哪个请求头。在环境变量中添加此项:
IP_HEADER=X-Forwarded-For
加固你的设置:
• 停止使用明文 ADMIN_TOKEN。改用 argon2 哈希值。
• 通过反向代理将 /admin 路径限制在你的本地网络内。
• 如果你是唯一用户,请将 SIGNUPS_ALLOWED 设置为 false。
升级仅需五分钟,但充分的准备需要十分钟。切勿跳过备份步骤。
