Docker系列 搭建密码管理应用bitwarden
本文最后更新于 25 天前,如有失效请评论区留言。

前言

根据Docker系列 两大神器NPM和ddns-go的安装的教程,前面我们已经在VPS中安装好了NPM和(或)ddns-go。所以https网络环境的平台基本上已经搭建好了。现在我们就要开始安装各种酷炫的Docker应用了!

那么,应该先安装哪一个呢?

我觉得应该是bitwarden,它是一个密码管理工具。相信这6个字已经是一个很强大的理由去让你安装它了!

有多少人长期被密码相关问题困扰。比如忘记了自己不常登陆的网站的密码;用了弱密码被泄露;定期改密码的痛苦(有些人直接摆烂了)。

依稀记得当时是看司波图的视频,有一个玩家展示了他所用的docker应用,其中有一个人就用了bitwarden。当时弹幕好多人说这是个密码管理器,所以就有了一点了解。

后来在B站看到优雅地盲目战斗BraveRu大佬的视频https://www.bilibili.com/video/BV12i4y1F7YP,忽然觉得自己很需要一个这样的东西。所以就去了解怎么玩了。不过,本博文安装的方法不像他的那么复杂,因为我们使用NPM嘛!他的方法也是可行的,我已经测试过了。

如果你用了bitwarden之后,你只需要记住1个主密码,其它的密码在登陆时自动填充。另外,可能有人会问:如何安全地生成一个主密码呢?你可以看看这个文章,它描述了一种叫做Diceware的方法,它可以生成随机且方便记忆的密码。有人也整理了Diceware中文密码表。

bitwarden还有一个密码生成器,给你们感受下:

image-20220421171828610

这密码看着就很安全!

最重要的,bitwarden有手机客户端喔!你也可以在手机上使用密码自动填充,不过这需要在系统中进行一些设置。是不是很爽呀 :grinning:

这才是密码管理的终极形态!集安全与方便于一身!

我们去Vaultwarden的GithubRepo上面了解一下它吧!

Vaultwarden is an unofficial Bitwarden server implementation written in Rust. It is compatible with the official Bitwarden clients, and is ideal for self-hosted deployments where running the official resource-heavy service is undesirable.
Vaultwarden is targeted towards individuals, families, and smaller organizations. Development of features that are mainly useful to larger organizations (e.g., single sign-on, directory syncing, etc.) is not a priority, though high-quality PRs that implement such features would be welcome.

原来的bitwarden镜像已经更名为Vaultwarden,也就是本文即将安装的应用。旧的bitwarden镜像还可以用,只是不再更新和维护了。所以它并不是bitwarden的官方镜像。虽然不是bitwarden官方的镜像,但Github上15.6k的Star也让我感觉它的安全性还是有保障的,毕竟其中应该有不少大佬会把关。这个项目还有一个netDada的赞助商!有钱支持的话,软件的维护工作应该会比较顺利。2022年9月6号,开源密码管理器 Bitwarden 宣布完成 1 亿美元融资,PSG 领投、Battery Ventures 参投,似乎有向加密领域发展,感觉势头不错。不管怎样,我已经决定使用它了!

值得一提的是,bitwarden只能在https下使用。这毕竟是一个密码管理工具嘛,怎么能在http下运行!

另外,如果你在意的话,可以选择在自己的NAS而不是VPS上托管bitwarden。不过经过Linux基础 个人VPS安全的相关设置,我们的个人VPS其实也蛮安全了。况且密码的调用是需要主密码的,别人就算获得了你的原始文件,没有主密码还是无法查看。况且,bitwarden还有许多安全措施,比如登陆邮件提醒,甚至是二次验证。总之就是非常安全了!

下面看看怎么安装它吧 :smirk:

测试环境

系统:Linux openmediavault 5.4.174-2-pve #1 SMP PVE 5.4.174-2 (Thu, 10 Mar 2022 15:58:44 +0100) x86_64 GNU/Linux
Docker: Docker version 20.10.14, build a224086
docker-compose: Docker Compose version v2.4.1

准备工作

按需修改工作目录:

work=~/docker/bitwarden && mkdir -p $work && cd $work

按需修改端口,开启防火墙:

sudo ufw allow 3667/tcp comment 'bitwarden' && sudo ufw reload

提前拉取镜像:

docker pull vaultwarden/server:latest

获取随机token:

openssl rand -base64 48 # 生成<token>。要记住。

通过dnss-go或登陆域名托管商的后台完成域名<bitwarden.exampledomain.com>的DNS解析工作。

配置yml文件

我们使用root的权限来运行脚本。如果你用了非root用户,加sudo即可。

修改文件$work/docker-compose.yml的内容如下,参考:Raspberry Pi Home Server Episode 8: BitWardenRS – Password Manager with Remote Access

这种安装方式,bitwarden的注册是邀请制,并不能随意注册。这样感觉更加的安全!

version: "2"

services:
  app:
    image: vaultwarden/server:latest
    environment:
      - SERVER_ADMIN_EMAIL=<[email protected]> # 按需修改
      - SIGNUPS_ALLOWED=false
      - INVITATIONS_ALLOWED=true
      - WEBSOCKET_ENABLED=true
      - ADMIN_TOKEN=<token> # 按需修改
    volumes:
      - ./app:/data/
    ports:
      - 3667:80 # 按需修改
    restart: unless-stopped
    networks:
      - default

networks:
  default:
    name: bitwarden

上线服务:

docker-compose up -d

经过我的测试,如果你外挂了/data/这个文件夹,你是完全可以恢复bitwarden的数据的。你们自己也可以试一下。或者有大佬测试过也可以和我反馈,看是不是可以完全恢复。

另外,我们还可以给/data/文件夹添加root的保护。像这样:

# 将文件夹改为root所有
sudo chown -R root:root $work/app

# 设置只有root用户可以使用。其它用户甚至连看都不行
sudo chmod -R 700 $work/app # 600应该也可以

这样,就可以保证一定的安全。

NPM设置

不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。

访问http://<local.ip>:3667观察应用上线的情况。先不要登陆bitwarden

然后,进入Nginx proxy manager(NPM)的后台。

用NPM申请SSL证书。国内一般要使用DNS challege的方式进行。或者你可以用泛域名的证书,就不用再重复申请。

为域名<bitwarden.exampledomain.com>添加一个反向代理DESTINATION为http://172.17.0.1:3667。强制SSL和接受https/2。如图所示:

image-20220421173212475

多数Docker应用这样设置就可以成功了,bitwarden也不例外。简单吧!

服务端设置

邀请用户

访问https://<bitwarden.exampledomain.com>:<NPM的443端口>/admin,输入token进入后台。如果你用的是443端口,直接不需要端口号也可以访问:https://<bitwarden.exampledomain.com>/admin

General settings中设置URL为(按443的端口不同):https://<bitwarden.exampledomain.com>:<NPM的443端口>或者https://<bitwarden.exampledomain.com>

设置SMTP Email Settings,类似下图:

image-20220410230539434

QQ邮箱也是可以用SMTP的。自己摸索一下。

Users中给自己的邮件(比如<[email protected]>)发送邀请邮件。注册帐号使用。具体有一些邮件验证啥的,我也记不清了,只记得蛮简单的。不懂的话欢迎留言评论了!

image-20220422102541669

下面这个invite User就是可以邀请用户。有玩PT站那味了!

image-20220422102642981

主要页面

进入服务端后,界面大致是这样的:

image-20220421173635826

image-20220421173651669

image-20220421173709288

image-20220421173746814

image-20220422090221865

这些功能都很实用。自己玩一下。有不懂的评论留言吧!

客户端使用

初始化设置

使用时一般用Chrom浏览器插件或者Apple APP的方式使用,而不是用服务器端。

说实话,按bitwarden的默认设置,这个软件是比较难用的。所以要改一些设置。

这里给出我的基本设置:

image-20220421173534661

设置从不就是你使用的时候可以不用经常输入主密码解锁。好像也有1小时之类的选项,不过你退出浏览器后就不生效了。反正个人电脑和手机一般只有自己用嘛!如果你有一段时间不用电脑,并且其它人可能会用到你的帐户,你可以设置更加严格的超时规则。

另外一个比较重要的,就是在其它--选项中,要设置主机的URI匹配检测而不是默认的基础域。不然,像192.168.1.111:1234192.168.1.111:1235这两个地址会被认为是同一个。但实际上,它们通常对应不同的应用。刚刚开始用的时候,着实困扰了一小阵子!

至于两步验证,给大家看一下bitwarden的提示:

启用两步登录可能会将您永久锁定在 Bitwarden 帐户之外。如果您无法使用常规的两步登录提供程序(例如您丢失了设备),则可以使用恢复代码访问您的帐户。如果您失去对您帐户的访问,Bitwarden 支持也无法帮助您。我们建议您记下或打印恢复代码,并将其妥善保管。

其实两步验证+恢复代码也是一个不错的方案!支持的服务有:

image-20220422085815642

不过我觉得也不用搞得这么复杂,简单点就行!实际上,对个人用户而言,定期改密码使用强密码对于大多数情况而言已经足够安全了。

选用Chrome

这里对于Chrome我要多说一些。其实国内很多浏览器,比如360安全浏览器,都是基于chrome的内核。我个人觉得,如果你有一个google帐户的话,使用chrome浏览器是最佳的选择。我们来看一下最新的https://gs.statcounter.com/的数据:

image-20220422081358618

记得选软件的有一个简单而有效的标准是什么吗?就是群众的眼睛是雪亮的。这时你知道要使用什么浏览器了吧!而且我个人使用而言,Chrome的使用体验也是最好的,特别是它的插件拓展。

这里我只演示chrome怎么操作,其它浏览器自己可以摸索一下!

导入Chrome密码

在使用bitwarden之前,相信很多小伙伴和我一样,都是用chrome之类的浏览器来管理自己的密码(这种情况下,一般你已经有一个Google帐户)。现在有了bitwarden,我们就不需要它们啦!下面我就以chrome为例讲一下如何进行密码的迁移。

打开chrome://settings/passwords,界面如下图。我们可以将提示保存密码自动登录都关闭了:

image-20220422075815476

在这个界面,可以导出密码:

image-20220422080536350

或者你也可以访问:https://passwords.google.com/options?ep=1。界面如下。我们可以导出密码。随后输入帐号密码验证后,会下载一个Google Passwords.csv的文件:

image-20220422080059735

我们可以用WPS之类的工具打开Google Passwords.csv文件看一下它都有些啥:

image-20220422080345389

所以你的帐户和密码信息是以明文的方式保存在Google Passwords.csv!所以用完之后一定要彻底删除Google Passwords.csv这个文件喔!

密码导入bitwarden

打开工具--导入数据。你自己看图吧,不懂的评论留言:

image-20220422081732427

导入完成后,我还建议大家去公开密码报告里了解一下自己的帐户密码的泄露情况。已泄露密码是在已知的数据泄露中被发现的密码,这些数据已由黑客公开发布或在暗网上销售。我这里截取一下我自己的某些网站的泄露情况:

image-20220422082403872

我估计大家的情况也是大同小异,哈哈!那些密码越弱的,泄露的次数就越多呢!我觉得在上述网站,如果没有二次验证机制(就是登陆还需要手机验证码)的保护,并且有心人要攻击你,你的帐户基本上已经没有任何安全性可言。大家有什么想法,欢迎评论留言!或者也可以秀一下自己以前的泄露次数。

所以,记得要按需修改密码喔!可以先改一些重要的、关键的、常用的网站的密码,比如google、百度、网盘之类的。其它的不太重要的以后看情况再慢慢地改。慢慢地过渡嘛!

标签页

一般情况下,如果你在bitwarden里保存了一个帐户和密码,访问对应的网站时,bitwarden插件会显示一个数字,像这样:

image-20220422075447595

在标签页中,有一个东西值得一说,就是左上角的符号:

image-20220422085934193

点一下它,它可以打开一个bitwarden专属的小窗口。如果你要编辑一个帐户信息,这个方法会比较方便。不然,它就只能填充而不能修改帐户信息。我也是过了好久才发现这个用法( ̄△ ̄;)

建议通过bitwarden的密码生成器生成新的强密码。这个真的好用!而且它是在你自己的网络里,我觉得应该比在线的密码生成器要安全一些。

image-20220422101103176

假设你现在改好了一个密码,按一下这个标志就可以检查它有没有被泄露过。如图:

image-20220422090539959

还有一个小功能,我觉得也挺有用的,就是安全笔记

image-20220422091220687

可以用来记录一些token之类的非登陆用信息。

还有文件夹功能对密码分类。我觉得是蛮好用的功能了!

其它使用细节,有疑问的评论留言吧!欢迎交流了!

删除chrome保存的密码

建议非常熟悉bitwarden的用法后再去删除原来托管在chrome上的密码。我当时是一开始用bitwarden就已经删除了chrome的密码。不然很容易造成冲突。

做法如下:

  • 打开谷歌浏览器,访问:chrome://settings/clearBrowserData 。 这将打开一个弹出窗口,可让您清除浏览数据。
  • 确保将时间范围设置为“ 时间不限” 。这样才可以删除全部的密码喔!
  • 单击“ 密码”旁边的复选框,以及要删除的所有其他数据。
  • 单击清除数据以删除所有密码和所选数据。

image-20220422100520979

防止Google Chrome浏览器提示保存密码

  • 打开谷歌浏览器,网址框输入:chrome://settings/passwords
  • 单击窗口右上角的三点菜单。
  • 取消提示保存密码检查密码

image-20220422100437795

小结

总之,有了bitwarden,从此密码管理不用愁了!是不是有一种发现新大陆的感觉,哈哈!

bitwarden的安装是比较简单的。难就难在,我们要如何切实地了解、使用和维护。大家需要非常熟悉它的使用。真的,花几个小时甚至是1天时间去了解,我也不觉得浪费。毕竟,bitwarden保存的是你最秘密的东西——你所有的互联网帐户和密码

如果你觉得很难的话,那我建议你先测试一下它,而不是马上让它来托管你的所有密码。一步步来!

老实说,我不知道将bitwarden托管在VPS中是不是足够安全。在Reddit上,类似的问题也有不少:Should I self host bitwarden?。不过一般而言,大家都会强调,如果你的VPS足够安全的话,存放bitwarden也是可行的。

我的bitwarden是放在自己的本地NAS的,通过raidz2的磁盘阵列来保障数据安全。通过duplicati进行加密备份至阿里云和Google Drive

Docker版的duplicati安装我会在下一回讲解!敬请期待!

参考

扩展阅读

版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租:留言板 | 博客VPS |

评论

  1. ROCAN
    Windows Chrome 101.0.0.0
    4月前
    2022-5-26 21:24:19

    test

    • 博主
      ROCAN
      Windows Chrome 100.0.4896.127
      4月前
      2022-5-26 21:27:06

      ok 所以说是正常的嘛!谢谢评论哈ヾ(≧∇≦*)ゝ

      • ROCAN
        Bensz
        Windows Chrome 101.0.0.0
        4月前
        2022-5-26 21:28:27

        哈哈,感谢分享!

  2. 大佬
    Windows Chrome 99.0.4844.51
    6月前
    2022-4-17 7:48:46

    测试评论:这也太帅了吧(~ ̄▽ ̄)~

    • 博主
      大佬
      Windows Chrome 99.0.4844.51
      6月前
      2022-4-17 7:49:30

      谢谢夸奖,我会继续努力嗒(~ ̄▽ ̄)~

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇