前言
根据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
还有一个密码生成器,给你们感受下:
这密码看着就很安全!
最重要的,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
在后面的演示中,我经常会出现<XXX>
这种演示写法。实际使用时,尖括号是不需要写的!另外,我使用的bitwarden.exampledomain.com
、[email protected]
都是演示用的,实际使用时要改为自己的网址。切记切记!
准备工作
按需修改工作目录:
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文件
不了解docker的小伙伴请先看:《Docker系列 配置Docker全局环境》;《Docker系列 了解Docker Compose的配置文件》。
我们使用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应该也可以
这样,就可以保证一定的安全。
此外,我在实际使用的时候,我会将docker-compose.yml的内容放在其它隐秘之处,然后运行完docker-compose up -d
后就删除docker-compose.yml。这样可以最大限度地保护ADMIN_TOKEN
不被窃取。但不推荐大家用(主要是怕你们把内容搞丢了)。
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。如图所示:
多数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,类似下图(演示用的是139邮箱):
QQ邮箱也是可以的,类似这样:
在Users
中给自己的邮件(比如<[email protected]>
)发送邀请邮件。注册帐号使用。具体有一些邮件验证啥的,我也记不清了,只记得蛮简单的。不懂的话欢迎留言评论了!
下面这个invite User
就是可以邀请用户。有玩PT站那味了!
主要页面
进入服务端后,界面大致是这样的:
这些功能都很实用。自己玩一下。有不懂的评论留言吧!
客户端使用
初始化设置
使用时一般用Chrom浏览器插件或者Apple APP的方式使用,而不是用服务器端。
说实话,按bitwarden
的默认设置,这个软件是比较难用的。所以要改一些设置。
这里给出我的基本设置:
设置从不
就是你使用的时候可以不用经常输入主密码解锁。好像也有1小时之类的选项,不过你退出浏览器后就不生效了。反正个人电脑和手机一般只有自己用嘛!如果你有一段时间不用电脑,并且其它人可能会用到你的帐户,你可以设置更加严格的超时规则。
另外一个比较重要的,就是在其它--选项
中,要设置主机
的URI匹配检测而不是默认的基础域
。不然,像192.168.1.111:1234
、192.168.1.111:1235
这两个地址会被认为是同一个。但实际上,它们通常对应不同的应用。刚刚开始用的时候,着实困扰了一小阵子!
至于两步验证,给大家看一下bitwarden的提示:
启用两步登录可能会将您永久锁定在 Bitwarden 帐户之外。如果您无法使用常规的两步登录提供程序(例如您丢失了设备),则可以使用恢复代码访问您的帐户。如果您失去对您帐户的访问,Bitwarden 支持也无法帮助您。我们建议您记下或打印恢复代码,并将其妥善保管。
其实两步验证+恢复代码也是一个不错的方案!支持的服务有:
不过我觉得也不用搞得这么复杂,简单点就行!实际上,对个人用户而言,定期改密码和使用强密码对于大多数情况而言已经足够安全了。
选用Chrome
Microsoft Edge浏览器也不错,可以直接使用Chrome插件。
这里对于Chrome我要多说一些。其实国内很多浏览器,比如360安全浏览器,都是基于chrome的内核。我个人觉得,如果你有一个google帐户的话,使用chrome浏览器是最佳的选择。我们来看一下最新的https://gs.statcounter.com/的数据:
记得选软件的有一个简单而有效的标准是什么吗?就是群众的眼睛是雪亮的
。这时你知道要使用什么浏览器了吧!而且我个人使用而言,Chrome的使用体验也是最好的,特别是它的插件拓展。
这里我只演示chrome怎么操作,其它浏览器自己可以摸索一下!
导入Chrome密码
在使用bitwarden之前,相信很多小伙伴和我一样,都是用chrome之类的浏览器来管理自己的密码(这种情况下,一般你已经有一个Google帐户)。现在有了bitwarden
,我们就不需要它们啦!下面我就以chrome为例讲一下如何进行密码的迁移。
打开chrome://settings/passwords
,界面如下图。我们可以将提示保存密码
和自动登录
都关闭了:
在这个界面,可以导出密码:
或者你也可以访问:https://passwords.google.com/options?ep=1。界面如下。我们可以导出密码
。随后输入帐号密码验证后,会下载一个Google Passwords.csv
的文件:
我们可以用WPS之类的工具打开Google Passwords.csv
文件看一下它都有些啥:
所以你的帐户和密码信息是以明文的方式保存在Google Passwords.csv
!所以用完之后一定要彻底删除Google Passwords.csv
这个文件喔!
密码导入bitwarden
打开工具--导入数据
。你自己看图吧,不懂的评论留言:
导入完成后,我还建议大家去公开密码报告
里了解一下自己的帐户密码的泄露情况。已泄露密码是在已知的数据泄露中被发现的密码,这些数据已由黑客公开发布或在暗网上销售。我这里截取一下我自己的某些网站的泄露情况:
我估计大家的情况也是大同小异,哈哈!那些密码越弱的,泄露的次数就越多呢!我觉得在上述网站,如果没有二次验证机制(就是登陆还需要手机验证码)的保护,并且有心人要攻击你,你的帐户基本上已经没有任何安全性可言。大家有什么想法,欢迎评论留言!或者也可以秀一下自己以前的泄露次数。
所以,记得要按需修改密码喔!可以先改一些重要的、关键的、常用的网站的密码,比如google、百度、网盘之类的。其它的不太重要的以后看情况再慢慢地改。慢慢地过渡嘛!
标签页
一般情况下,如果你在bitwarden里保存了一个帐户和密码,访问对应的网站时,bitwarden插件会显示一个数字,像这样:
在标签页中,有一个东西值得一说,就是左上角的符号:
点一下它,它可以打开一个bitwarden专属的小窗口。如果你要编辑一个帐户信息,这个方法会比较方便。不然,它就只能填充而不能修改帐户信息。我也是过了好久才发现这个用法( ̄△ ̄;)
建议通过bitwarden的密码生成器生成新的强密码。这个真的好用!而且它是在你自己的网络里,我觉得应该比在线的密码生成器要安全一些。
假设你现在改好了一个密码,按一下√
这个标志就可以检查它有没有被泄露过。如图:
还有一个小功能,我觉得也挺有用的,就是安全笔记
:
可以用来记录一些token之类的非登陆用信息。
还有文件夹功能对密码分类。我觉得是蛮好用的功能了!
其它使用细节,有疑问的评论留言吧!欢迎交流了!
删除chrome保存的密码
建议非常熟悉bitwarden的用法后再去删除原来托管在chrome上的密码。我当时是一开始用bitwarden就已经删除了chrome的密码。不然很容易造成冲突。
做法如下:
- 打开谷歌浏览器,访问:
chrome://settings/clearBrowserData
。 这将打开一个弹出窗口,可让您清除浏览数据。 - 确保将时间范围设置为“ 时间不限” 。这样才可以删除全部的密码喔!
- 单击“ 密码”旁边的复选框,以及要删除的所有其他数据。
- 单击清除数据以删除所有密码和所选数据。
防止Google Chrome浏览器提示保存密码
- 打开谷歌浏览器,网址框输入:
chrome://settings/passwords
- 单击窗口右上角的三点菜单。
- 取消
提示保存密码
和检查密码
。
注意事项
如果你曾经为bitwarden更换域名,记得去后台更新URL为新域名,否则bitwardent保存的附件将无法正常下载!
小结
总之,有了bitwarden
,从此密码管理不用愁了!是不是有一种发现新大陆的感觉,哈哈!
bitwarden的安装是比较简单的。难就难在,我们要如何切实地了解、使用和维护。大家需要非常熟悉它的使用。真的,花几个小时甚至是1天时间去了解,我也不觉得浪费。毕竟,bitwarden保存的是你最秘密的东西——你所有的互联网帐户和密码!
如果你觉得很难的话,那我建议你先测试一下它,而不是马上让它来托管你的所有密码。一步步来!
老实说,我不知道将bitwarden托管在VPS中是不是足够安全。在Reddit上,类似的问题也有不少:Should I self host bitwarden?。不过一般而言,大家都会强调,如果你的VPS足够安全的话,存放bitwarden也是可行的。
我的bitwarden是放在自己的本地NAS的,通过raidz2的磁盘阵列来保障数据安全。通过duplicati进行加密备份至阿里云和Google Drive。(后来嫌麻烦放VPS里了)
Docker版的duplicati安装我会在下一回讲解!敬请期待!
参考
- 使用方法:https://github.com/dani-garcia/vaultwarden/wiki
- vaultwarden+caddy: https://github.com/dani-garcia/vaultwarden/wiki/Using-Docker-Compose
- 大佬的B站教学视频:https://www.bilibili.com/video/BV12i4y1F7YP
扩展阅读
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
感觉没必要删除docker-compose.yml,因为app文件夹里的config.json里一样明文储存admin_token
学习了,有空我了解下 (~ ̄▽ ̄)~
我也按照这个文档在nas自建了服务器,但是安卓的bitwarden很奇怪,使用浏览器登陆网站时,选择了主机URI检测不生效(设置和项目里都设置了),只能选基础域才能匹配到
安卓没测试过。其实IOS我也没怎么测试过,我一般都是在PC浏览器里使用。 手机只是偶尔用一下,都是直接copy。
很详细。因为必须https,当时免费的frp经常问题。放弃不用了。用的lastpass,lastpass之前可以台式机移动端切换。今年过年。回老家。想着密码可能会用,像之前一样登陆了lastpass的移动端。过完年回来,发现台式机无法登陆了。一查,lastpass官方说登陆移动端后就不能在登陆台式机。移动端不能导出密码。台式机可以登陆。导出的密码是csv不完整版本。不能一键导入到新的lastpass里面。郁闷。然后开始keepass enpass 重启bitwarden,发现还是lastpass最好用。最后重新注册了lastpass账号,固定台式机用。定期导出密码备份到keepass enpass bitwarden 用了官方的。不用维护了。支持坚果云的webdav 群晖webdav
bitwarden只是比较流行的方案中的一种吧,个人觉得还行。 至于其它应用还没尝试过。 这种东西固定一种就好了,只要稳定、可备份、安全即可
test
ok 所以说是正常的嘛!谢谢评论哈ヾ(≧∇≦*)ゝ
哈哈,感谢分享!
测试评论:这也太帅了吧(~ ̄▽ ̄)~
谢谢夸奖,我会继续努力嗒(~ ̄▽ ̄)~