当前位置:
文章详情

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

2024-02-21 16:50:10 24点赞 242收藏 28评论

前言

Vaultwarden是一款开源密码管理器,通过Rust编写并基于Bitwarden API实现。它可将所有密码存储服务器上,且相较于Bitwarden,它的硬件要求极低(测试过512M搬瓦工的VPS都能轻松跑起来),兼容Bitwarden官方客户端,支持几乎所有密码管理器(1password等)的数据导入导出。

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

一直没部署Bitwarden是因为早先不能自动同步,现如今完全没问题,是时候用起来了!关于该项目的更多特点,请点击这里查看。也可以顺便看看作者的一些声明~

笔者目前两个浏览器分别用来登陆不同服务,各自分工,已经攒了太多账密记录。很多朋友日常使用Edge和Chrome自带工具应该就够用,我部署它的主要原因还是 密码存在自己手里更舒服开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

支付密码及具有较高附加价值的账号密码,强烈建议不要托管在任何地方,尽量记在脑子里!

由于现在的Web浏览器安全限制,需要通过 HTTPS 或 localhost 访问 Web 保管库,说白了通过https访问才能使用完整功能,因此本篇会连同反代一起介绍。

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

本篇搭建平台为威联通的TS-464C2,通过Docker Compose部署,其它平台基本适用开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

部署Vaultwarden

先在文件总管创建目录文件夹

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

官方给的拉取docker镜像命令

docker pull vaultwarden/server:latest docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest

我们改动一下,通过Docker Compose,用YAML代码进行创建。框架如下:

version: "3" services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden ports: - "8000:80" # 左侧端口号自行修改 environment: # 自定义环境变量,见下文 - - - volumes: - "/share/Data/Vaultwarden/data:/data" # 文件总管中创建的文件目录 restart: unless-stopped

environment下的可加选项非常多,可以点击环境变量进行查看(巨多,且大部分是全局变量),根据咱们自己的需求增减(看不懂可以用翻译工具)。

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

一些比较推荐加入的变量:

- DOMAIN=https://vw.domain.tld:8443 # 与Vaultwarden关联的域名,反代非标准443端口,记得端口号也加上 - LOGIN_RATELIMIT_MAX_BURST=10 # 登录/两步验证尝试中的最大请求次数 - LOGIN_RATELIMIT_SECONDS=60 # 在限制登录次数前,同一IP的登录请求间隔(秒) - ADMIN_RATELIMIT_MAX_BURST=5 # 同上,对于admin账户的请求次数限制 - ADMIN_RATELIMIT_SECONDS=60 # 同上,对于admin账户限制请求间隔(秒) - ADMIN_SESSION_LIFETIME=20 # admin账户会话持续时间 - ADMIN_TOKEN=8vshhgPaC------5ejR9ZbPjR # 管理界面令牌,若不设置管理面板将被禁用 - SERVER_ADMIN_EMAIL=xxxx@xx.com # 邮箱 - SENDS_ALLOWED=true # 控制是否允许用户创建Bitwarden sends - SIGNUPS_ALLOWED=true # 控制新用户是否可以未受邀请注册 true/false - SIGNUPS_DOMAINS_WHITELIST=example.com,example.net,example.org # 即使上面设置为false,本条用户仍可注册(域名间以,间隔) - INVITATIONS_ALLOWED=true # 允许邀请注册 - WEBSOCKET_ENABLED=falese # 通知 - WEB_VAULT_ENABLED=true # 创建admin账户后建议修改为false,进行重建以防止未授权访问 - EMERGENCY_ACCESS_ALLOWED=true # 控制用户是否可以启用紧急访问其账户的权限

关于ADMIN_TOKEN打开ssh工具进入后台,输入openssl rand -base64 48敲下回车即可获得。

R/UOsOwoblCljgthWuNwbkPOLaeeIu/3ju4dGgsaytSaC8m/Ez7/94kdFOfDnD4V

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

我最终确定的部署代码如下,咱们可以按需调整

version: '3' services: vaultwarden: container_name: vaultwarden image: vaultwarden/server:latest ports: - "8787:80" environment: - DOMAIN=https://secret.xxx.love:8881 # 这里记得改 - ADMIN_TOKEN=R/UOsOwoblCljgthWuNwbkPOLaeeIu/3ju4dGgsaytSaC8m/Ez7/94kdFOfDnD4V # 密码存好 - LOGIN_RATELIMIT_MAX_BURST=10 - LOGIN_RATELIMIT_SECONDS=60 - ADMIN_RATELIMIT_MAX_BURST=10 - ADMIN_RATELIMIT_SECONDS=60 - ADMIN_SESSION_LIFETIME=20 - SENDS_ALLOWED=true - EMERGENCY_ACCESS_ALLOWED=true - WEB_VAULT_ENABLED=true - SIGNUPS_ALLOWED=true # 后面可改成 false,禁止新用户注册 volumes: - "/share/Data/Vaultwarden/data:/data" restart: unless-stopped

打开Container Station,点击左侧【应用程序】,开始创建

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

启用Vaultwarden

打开Web界面,网址栏先输入:NAS_IP:端口,进入Vaultwarden登录页面,点击创建账户

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

这密码要求也挺硬,不强制同时大小写,但必须够12字符,痛苦啊开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

大红色的失败警示框,咱们还是做反代去吧

反向代理

打开Lucky,进行反代设置,对于操作过程不熟悉的朋友可以先看这篇

有了前面的基础,后续配置新服务,仅需点击左侧菜单的【Web服务】,然后点击右侧的【编辑】,新增一条子规则即可

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

点击【添加Web服务子规则】

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

填写内容如下

  • 子规则名称随意填

  • web服务类型选择反向代理

  • 前端域名/地址填写自定二级域名,与上文部署命令绑定的一致,我这里为 secret.xxx.love

  • 后端地址填写本地NAS服务访问地址,我这里为 http://192.168.xxx.xxx:8787

  • BasicAuth认证,作用是登陆服务前再加一道账户密码验证,看需求开启,个人更建议部署完之后启用两步验证

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

完事儿之后,点击右下角【修改】

搞定之后,就可以正常访问并使用完整功能

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

通过https访问,账户成功创建开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

下面开始登陆看看体验如何!

Vaultwarden使用体验

输入域名:监听端口号,成功登陆进来,和 Bitwarden 没啥太大差别

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

自用的朋友可以直接回头把容器停掉,然后修改环境变量,更新容器

- SIGNUPS_ALLOWED=true # 改为false,禁止注册

操作完毕后点击右上角,选择【获取应用】

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

可以看到支持多系统平台,浏览器插件并且支持移动端,可以说全适配吧开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

先挑个常用的谷歌浏览器进行演示,点击对应的图标,安装好浏览器扩展

点击它,按下图所示,选择【自托管】

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

输入我们的服务器URL,点击【保存】

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

用刚刚创建账户密码登陆即可

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

目前没有导入密码,是空白页面

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

作为演示,访问我的NAS,会看到提示询问是否保存密码,是否启用自动填充,还可以选择保存位置(因为自用所以就不创建文件夹啦,心细的朋友可以自行单独分区);如果是支付密码等高价值密码,建议选择【从不】

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

密码已经保存,无论扩展程序还是后台都会立刻同步

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

我们还可以手动添加项目

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

如果想要完美匹配,很多账密还得我们自定义规则,否则很多二级域名服务都会像下图这样。

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

毕竟www.baidu.com和pan.baidu.com一般来说共用账号;不过Vaultwarden会给出列表,比常规浏览器自带的好用些

另外可以设置验证,谷歌和Edge都有类似防护机制

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

通过docker部署,默认是高级会员啦开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

接下来试试从Edge导出密码文件,转移到Vaultwarden。先导出密码文件

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

按照下面操作,点击【导入数据】

  • 导入目的地默认就好

  • 文件夹创建与否看咱们心情

  • 文件格式,会有很多选项,Edge浏览器可选择Chrome(csv),基于 Chromium 的浏览器,包括 Opera、Microsoft Edge (Chromium)、Brave 和 Vivaldi等都可选择该项

  • 要导入的文件即为刚刚从Edge导出的,导入完毕后建议立即删除

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

导出密码库文件支持三种格式 .json .csv .json(Encrypted)

导入成功,是我多此一举了,容器本身会自动区分创建文件夹

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

移动端操作类似,点击左图的【登陆到】,输入URL并保存,进行登录即可

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

ios稍微多几步,密码选项勾选上,就能在safari或其它浏览器使用,也支持自动填充

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

⚠️最后还有一个,就是填写环境变量的时候,咱们生成过一个长密码

- ADMIN_TOKEN=8vshhgPaC------5ejR9ZbPjR

Web的地址后面加一个admin,然后回车

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

将密码输入并回车即可进入(忘记的话可以查看yml配置),上文提到的关闭注册,也可以在基础设置中更改。个人使用基本很少涉及到下面这些功能,有更进阶需求就请小伙伴们自行研究吧~

开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

总结

Vaultwarden的优点:全平台,超轻量、免费且开源;除了PC在移动端体验也不错,支持多种双重验证、自动填充功能;自带密码泄露检测,适应大部分 APP,支持自定义字段、正则匹配网址、自定义图标,并且会根据网址或 APP 自动获取 ico,语言适配也做得不错。

另外部署过后,通过Vaultwarden把所有平台密码进行汇总,后期继续将Vaultwarden作为主力工具,咱们可定期将密码库导出并备份,就算服务器突然崩溃,仅需重新搭建再导入~崩几个也不怕开源密码管理神器!十分钟Docker快速部署密码管理器:Vaultwarden

本篇到这儿就结束啦,欢迎各位评论区留言交流;后续我也会定期分享NAS使用经验以及好用、好玩的Docker项目,喜欢的朋友记得点赞、收藏、关注NAS外网安全访问!公网IP、端口转发、域名解析、反向代理、https访问全流程记录!咱们下期再见!

展开 收起
28评论

  • 精彩
  • 最新
  • 在华为手机上,需要导入ssl证书才能用,但没试过跟lucky的配合

    校验提示文案

    提交
    我手上也没华为的机器,不然可以试试

    校验提示文案

    提交
    其实在网页端也需要ssl证书,需要反向代理

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 感谢分享,一直在用这个,不过我的威联通登录的时候,它就是不自动填充,不知道是什么鬼

    校验提示文案

    提交
    是不是二级域名太多了,默认规则包括浏览器也基本会这样,要自定义规则

    校验提示文案

    提交
    我就像知道如何定义规则,你还没说。。。。现在有几个二级域名的密码,记住一个,另一个就被覆盖了。

    校验提示文案

    提交
    收起所有回复
  • 最近在Qnap上部署docker应用的时候总是找不到版本,挂梯子,直接拉取镜像,compsose啥的都试了没用,见鬼了

    校验提示文案

    提交
    可能是你网络出问题了,我的NAS就是国内正常网络,提取镜像没怎么失败过

    校验提示文案

    提交
    用ssh客户端连上nas就可以部署,应该不是网络的问题。

    校验提示文案

    提交
    收起所有回复
  • 伸个手 请问一下 ios 除浏览器外支持吗
    就像打开 QQ 等一类软件,现在系统自带的密码管理是可以自动输入账密的

    校验提示文案

    提交
    可以的,按照文中在ios设置的自动填充中选择bitwarden就行

    校验提示文案

    提交
    谢谢大佬!

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 昨天开始这docker报了一个错,如下,咋搞?
    [2024-05-24 00:41:41.940][vaultwarden][ERROR] No persistent volume!
    ########################################################################################
    # It looks like you did not configure a persistent volume! #
    # This will result in permanent data loss when the container is removed true` #
    ########################################################################################

    进SSH,复制上面的设置下么?

    校验提示文案

    提交
    目录没有挂载,得把文件目录映射好

    校验提示文案

    提交
    怎么操作?之前好好的,突然报了这个

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 确实不错,码住等空试试

    校验提示文案

    提交
  • 不知道咋回事,现在布置的,看不到高级会员了。以前好像可以,现在布置出来,看不到了。

    校验提示文案

    提交
  • 按步骤都配置好了,自建的网页端能打开,用谷歌浏览器的插件,登录提示,账户密码不存在,这个问题求解决

    校验提示文案

    提交
  • [2024-05-24 00:41:41.940][vaultwarden][ERROR] No persistent volume!
    ########################################################################################
    # It looks like you did not configure a persistent volume! #
    # This will result in permanent data loss when the container is removed true` #
    ########################################################################################

    校验提示文案

    提交
  • 今天家里的NAS异常重启饿,lucky和vaultwarden都丢了配置,还好之前备份了,恢复过来后vaultwarden网页端没问题了,正常登陆,IOS客户端一直报An error has occurred. 重启docker,重新下载iOS客户端Bitwarden都没用,最后重启手机都解决不了,奇怪了。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

最新文章 热门文章
242
扫一下,分享更方便,购买更轻松