- Vaultwarden 是用 Rust 编写的 Bitwarden 的轻量级实现,允许完全自托管凭证。
- 通过使用带有 HTTPS 的反向代理、哈希管理员令牌和暴力破解保护来增强安全性。
- 该系统提供免费的高级功能,例如组织管理、内部 TOTP 和紧急访问。
- 通过使用 AGE 非对称加密技术加密的 SQLite 备份,确保数据完整性。
我相信你肯定遇到过这种情况:你尝试登录某个网站,结果它提示你的密码太短、缺少汉字,或者不能包含你的生日。这真是让人头疼,也让我们忍不住去做世界上最危险的事情…… 所有账户都使用同一个密码。 或者把访问密码写在笔记本上,这样即使我们的包被偷了,任何人都能找到。
为了避免这种压力,理想的解决方案是改用密码管理器。它就像一个数字保险箱,你只需要…… 记住万能钥匙 剩下的事情就交给程序来处理了。虽然也有云端选项,但我们这些不想把数据存储在第三方服务器上的人会选择自托管,而Vaultwarden正是为此而生的。
Vaultwarden究竟是什么?为什么要选择它?

Vaultwarden 是一个 Bitwarden兼容服务器的替代实现该服务器使用 Rust 编写,专为个人、家庭和小团队的自托管安装而设计,提供最常用的功能,资源消耗更少,但并未复制官方服务器上的所有功能。
它的主要优势之一是与 Bitwarden 官方应用程序的兼容性。您可以通过指定自己的服务器地址,使用浏览器扩展程序、移动应用或桌面客户端。这样,您既可以掌控基础设施和数据,也需要承担更新服务、保障服务安全以及维护有效备份的责任。
使用 Docker Compose 进行分步安装
部署此服务最简洁、最现代的方式是通过容器。首先,您需要在机器上安装 Docker 和 Docker Compose。理想情况下,您应该创建一个特定的目录,例如: /opt/vaultwarden保持一切井然有序,并方便备份。
文件 compose.yaml 基本要素必须定义图像 vaultwarden/server:latest 并映射一个卷,以确保容器重启时数据不会被擦除。配置此变量至关重要。 包含完整公共 URL 的域名包括 https:// 以及使用的任何端口或子目录。如果此地址与实例的实际 URL 不匹配,则附件、邀请和某些服务器生成的链接等功能可能无法正常工作。
在生产环境中,建议在更新容器之前记录已部署的版本并创建备份。下载新镜像后,检查已发布的更改,并验证访问权限、附件、电子邮件和客户端应用程序是否仍然正常运行。
服务器安全与加固

启动容器很容易;重要的是防止它以不安全的方式暴露出来。将 Vaultwarden 的 HTTP 端口限制在 Docker 内部网络或本地接口,并使用以下方式发布服务: 使用 HTTPS 的反向代理例如 Caddy、Nginx 或 Traefik。Web 界面需要安全的上下文才能正确使用浏览器的加密功能。
另一个关键点是面板的可用性 /admin只有在配置后才能启用 管理员令牌它不会将此密钥以明文形式存储,而是使用以下命令生成 PHC 格式的 Argon2 字符串。 /vaultwarden hash 并将其用作令牌值。尽可能使用 VPN、允许的地址列表或反向代理规则来限制对面板的访问。
创建帐户后,进行配置 SIGNUPS_ALLOWED=false 关闭公共注册表。请注意,组织所有者和管理员仍然可以邀请新用户。 INVITATIONS_ALLOWED 保持启用状态。如果您还想阻止此功能,请设置 INVITATIONS_ALLOWED=false 并在管理面板中执行必要的注册。
通知和 SMTP 设置
要让服务器能够向您发送安全警报、双因素身份验证码或邀请函,您需要设置一个 SMTP 邮件服务器。您可以使用 Gmail 或任何专业的邮件服务提供商,并配置主机、端口(通常为 587,并启用 STARTTLS)和身份验证凭据。
这并非只是表面功夫;它对……至关重要。 紧急通道此功能允许您信任的联系人(例如家人)在您无法访问您的保险库时请求访问权限。经过您设置的等待时间后,该联系人即可登录并检索重要信息。
抵御蛮力攻击

将服务暴露给全世界会吸引机器人尝试猜测你的密码。为了应对这种情况, Fail2Ban 是你最好的盟友通过配置 Vaultwarden 将日志写入物理文件,Fail2Ban 可以监控失败的登录尝试,并在 Docker 的 iptables 链中阻止攻击者的 IP 地址。
创建专用筛选器很重要:一个用于普通用户,另一个用于管理员面板。限制为 三次尝试失败 这通常足以清除机器人程序,而不会意外屏蔽因拼写错误而误封的合法用户。
备份和灾难恢复策略
如果你丢失了密码管理器的数据库,那就麻烦大了。仅仅在服务器运行时复制数据文件夹是不够的,因为 SQLite 可能会损坏文件。正确的方法是使用以下命令: SQLite .backup 生成系统的一致快照。
为了进一步提升安全性,建议使用该工具对备份进行加密。 AGE(高级加密标准)这样可以确保,即使备份存储在 Google Drive 或 S3 等公共云中(通过 rclone),没有你的非对称私钥,任何人都无法读取它。
一个稳健的恢复工作流程包括:停止容器、清理临时 WAL 和 SHM 数据库文件以及恢复文件。 db.sqlite3 并恢复服务。定期执行恢复测试是确保数据真正安全的唯一方法。
Vaultwarden 中提供的高级功能
通过自行托管 Vaultwarden,您可以解锁一些在官方 Bitwarden 上需要付费才能使用的工具。例如: 内部 TOTP它可以直接在应用程序中生成六位数的代码,避免您为每个网站使用 Authy 等外部应用程序。
您还可以访问 无限组织这对家庭或工作团队来说简直是无价之宝,因为它允许 在 Vaultwarden 中共享家庭密码 创建具有不同权限级别(只读或编辑)的共享集合,全部进行端到端加密。
最后,该系统还包含审计报告,会在您的任何密码被泄露到网上(使用 Have I Been Pwned API)或您的密码过于简单时发出警报,提醒您尽快更改以避免风险。如果您是从其他浏览器访问,请记住您可以…… 将 Chrome 中的密码导入 Vaultwarden 快速集中管理所有事务。
对于追求数字主权的人来说,拥有自己的 Vaultwarden 实例是最佳选择,它可以让您管理数千个复杂的密钥,并让您安心地将绝对控制权掌握在您的硬件上,受到多层现代加密和自动备份的保护。
我是一名技术爱好者,已将自己的“极客”兴趣变成了职业。出于纯粹的好奇心,我花了 10 多年的时间使用尖端技术并修改各种程序。现在我专攻计算机技术和视频游戏。这是因为 5 年多来,我一直在为各种技术和视频游戏网站撰写文章,旨在以每个人都能理解的语言为您提供所需的信息。
如果您有任何疑问,我的知识范围涵盖与 Windows 操作系统以及手机 Android 相关的所有内容。我对您的承诺是,我总是愿意花几分钟帮助您解决在这个互联网世界中可能遇到的任何问题。