Vaultwarden:在飞牛上自建密码库,安全怎么把关
密码都放第三方云端不放心?自建一个,但自建意味着安全责任全在自己身上。
主流密码管理器都是云服务,账号密码一次性放在别人服务器上。Vaultwarden(Bitwarden 的轻量兼容实现)可以跑在 NAS 上,数据自己管。
轻是它的优点:单容器,几百兆内存,SQLite 就够。
部署
services:
vaultwarden:
image: vaultwarden/server:latest
ports:
- "8080:80"
volumes:
- /mnt/存储空间/应用数据/vaultwarden:/data
environment:
- SIGNUPS_ALLOWED=false
- ADMIN_TOKEN=换成一串随机字符
restart: unless-stopped
SIGNUPS_ALLOWED=false 是重点:部署完、建好账号之后,把它关掉,否则谁都能注册。
必须上 HTTPS
这是最容易被忽略、也最危险的一点。
密码管理器客户端要求 HTTPS,而且自建服务暴露在公网时,明文 HTTP 等于把主密码摆在马路上。
做法:
- 局域网内可以用自签证书;
- 外网访问必须用正经证书,通过反向代理 + 自动签发;
- 别图省事直接开 HTTP 端口到公网。
客户端怎么连
- 浏览器插件:设置里把服务器地址改成你自己的;
- 手机 App:登录界面点「设置服务器 URL」;
- 桌面端同理。
地址填 https://你的域名 或者局域网 IP(自签证书要信任一下)。
安全清单
- 主密码足够强,别和别处复用;
- 关掉注册;
- 开双重验证(TOTP 也行);
- 定期导出备份,但导出文件本身要加密保存;
- 反向代理只暴露必要端口;
- 容器保持更新,但别在没备份的情况下贸然升级。
备份
数据全在 /data 里:
db.sqlite3:账号和密码条目(加密的);attachments、sends:附件;rsa_key.*:服务端密钥。
停容器复制整个目录最稳。恢复时把目录放回去,容器启动即可。
备份文件泄露也不是末日——里面的密码是用你的主密码加密的。但主密码泄露就是末日。
常见的坑
忘了关注册:公网上被人注册,你的实例成了别人的密码库。
只开了 HTTP:客户端连不上,或者数据明文传输。
主密码丢了:没人能帮你找回,这是设计使然。
没备份 db 就升级:版本升级有时会改表结构,回退困难。
反向代理没传对头信息:客户端提示「服务器地址不安全」。
值不值得自建
- 在意隐私、有 NAS、愿意维护:值得;
- 不熟悉运维、没有 HTTPS 条件:用官方云服务更稳妥;
- 团队用:自建要额外考虑审计和权限。
小结
自建密码库的核心矛盾是:你把控制权拿回来了,也把责任拿回来了。
能保证 HTTPS、强主密码和定期备份,再考虑自建。
留言