基于Docker搭建bitwarden密码管理服务器

2021-01-06 19:47:20 40点赞 310收藏 39评论

0 什么是密码管理

在这个数字化、信息化的时代,我们的日常生活中充斥着大量的账户信息,有银行的账户密码、手机卡的服务密码、各种社交软件的登录密码。各种密码如果设置成不一样的我们很难记住,而设置为一样的则很不安全。虽然各种服务商都在尽可能地方便用户登录,比如设置扫码登录、手机验证码登录,但这些登陆方式都无法彻底取代密码。这个时候就需要我们通过一些手段辅助我们管理密码。

其实密码管理这个服务我们日常生活中已经是经常用到了。比如苹果家的钥匙串服务可以保存我们日常生活中的密码,又比如各种浏览器的记住密码功能。在我们需要登陆的时候可以自动的为我们填充密码。但是这些密码管理器也有一些问题,这些问题不是技术上的,而是商业上的。比如苹果的钥匙串无法在Windows平台使用。尤其是某些行业还是无法脱离Windows平台。这个时候一些跨平台的密码管理服务就可以很好的弥补这个问题。

1 搭建密码管理服务器

1.1 自己搭建密码服务器的优点

自行搭建密码管理服务器自然是有一些优点的。
① 数据存储在自有服务器中。
② 无使用费用(服务器费用除外)。
③ 完全免费,没有密码条目数量的限制。
④ 项目开源。

1.2 Bitwarden_rs

Bitwarden是一款开源密码管理软件,和Keepass、LastPass相似,支持全平台客户端,支持自建服务。

bitwarden_rs 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。

bitwarden_rs 用 Rust 编写,与官方 Bitwarden 客户端兼容,并改用 SQLite 数据库,相对于官方版使用 MSSQL 数据库要求至少 2GB 内存,可以说 bitwarden_rs 对硬件基本没有要求。

bitwarden_rs 除不支持官方企业版的部分功能(如群组控制、日志审核、目录同步、以及基于企业组织层面的 DUO Security 两步登录)外,其他所有功能均免费支持。并跟随官方版本保持及时更新。

bitwardenbitwarden

1.3 通过docker安装Bitwarden_rs

在上一篇中,我在NUC5PPYH中安装宝塔面板进行基本的管理。在宝塔面板中有docker管理器,我们可以比较方便的使用它管理Docker。但是需要注意的是该管理器启动的docker无法自动重启。我们需要通过命令行来修改。

接下来我们一步步的安装。
① 点击【镜像管理】进入该页面。

基于Docker搭建bitwarden密码管理服务器

② 点击【获取镜像】按钮,并在框中输入【bitwarden_rs】,而后点击【获取镜像】按钮。

基于Docker搭建bitwarden密码管理服务器

获取镜像完毕后,管理器的列表中会出现镜像。

③ 进入【容器列表】页面

基于Docker搭建bitwarden密码管理服务器

④ 点击【创建容器】,选择镜像【bitwardenrs_server:latest】;端口映射第一个是容器端口,填写为80,第二个是映射到主机上的端口,可以随便写一个可用的端口; 【目录映射】则是让容器把数据存到一个指定的目录。设置完这两个之后一定要点击蓝色框中的加号才能有效。

基于Docker搭建bitwarden密码管理服务器

⑤ 点击【提交】,完成容器创建。创建完成之后容器会自动运行。此时需要在宝塔面板的安全界面,放行我们刚刚映射的主机端口。

完成之后就可以访问http://主机IP:映射端口进入登录界面。
然而,此时我们会发现无法登录,甚至无法注册。这是因为bitwarden_rs强制要求开启https。

接下来我们通过nginx设置反向代理,为bitwarden_rs开启https。

1.3 Nginx反代理

bitwarden_rs docker可以通过添加环境变量配置SSL证书。但是官方不推荐通过该方法开启SSL。因此我们通过Nginx反代理完成。Nginx反代理可以非常方便的实现域名绑定。

① 点击宝塔面板的【网站】选项(已提前安装好LNMP环境);点击【添加站点】。

基于Docker搭建bitwarden密码管理服务器

② 在域名框中输入你想绑定的域名。例如bitwarden.docker.com。由于我们这个站点只用于反代理,因此【PHP版本】可以选择【纯静态】。

③ 点击【提交】按钮,完成站点创建。

基于Docker搭建bitwarden密码管理服务器

④ 选择【SLL】,配置证书。由于我使用的是阿里云的域名。阿里云可以很方便的为二级域名申请单个的CA证书。因此选择【其他证书】,而后将对应的私钥和公钥通过记事本打开,把内容复制到两个输入框中,点击【保存】开启SSL。

基于Docker搭建bitwarden密码管理服务器

⑤ 打开强制HTTPS,不允许HTTP访问。

⑥ 点击【反向代理】,添加反向代理。代理名称自拟;目标URL填写为127.0.0.1(本机):映射端口。其他默认即可。点击【提交】完成创建。

基于Docker搭建bitwarden密码管理服务器

至此即完成了SSL反向代理设置。此时用户可以通过https://ip:443 访问bitwarden_rs。(绑定了域名请使用https://域名访问。)

通过添加多个站点,绑定不同的二级域名,可以实现访问不同的端口服务。

2 使用bitwarden

2.1 使用两步验证提高安全性

在注册好初始账户之后,即可登录。在这个时候只需要【账户】和【密码】就可以登录系统了。然而这还是不安全,因为如果我们的主密码泄漏之后,其他人就可以登录,我们系统中所存储的个人密码就会泄漏出去。那有没有什么方法可以进一步提高安全性呢?答案是开启【两步登录】。

大家都知道国内很多网络服务 (如淘宝、银行),除了正确的帐号密码之外,常常还需要额外给你发一条手机短信验证码,以此进一步确认你是帐号的真正主人。

这其实就是「两步验证」或者叫做「双因素验证」的一种实现方式,它这里第二步验证是靠手机短信来发送验证码的。
还有一种两步登录就如同我们经常使用的QQ一样,通过诸如【QQ安全中心】中的动态验证码来确认身份。

基于Docker搭建bitwarden密码管理服务器

在bitwarden中我们同样可以实现类似的功能。

① 在设置页面中,选择【两步登录】选项。

基于Docker搭建bitwarden密码管理服务器

② 我们使用第一种程序【验证器应用】,手机端下载【Authy】应用。

基于Docker搭建bitwarden密码管理服务器

基于Docker搭建bitwarden密码管理服务器

③ 点击【管理】后,输入【主密码】继续设置。

基于Docker搭建bitwarden密码管理服务器

④ 手机端扫码添加。添加完成后,网页端会要求输入手机上是数字以确认添加。

基于Docker搭建bitwarden密码管理服务器

完成添加后,我们再登录系统时就需要输入手机上的验证码了。这个验证码是根据时间与密钥变化的,因此只要手机的时间准确,不联网也可以生成验证码。

建议在另外一个设备上登录authy账号,避免日常使用的设备丢失后无法进入系统。

2.2 使用其他客户端

bitwarden支持windows客户端、Microsoft edge插件、Google chrome插件、iOS客户端、安卓客户端。在这里以Windows客户端为例进行说明。其他客户端操作类似。

bitwarden Windows客户端可以在Microsoft应用商店中下载。

基于Docker搭建bitwarden密码管理服务器

也可以从官网下载。

安装完成之后打开客户端。
① 点击左上角的齿轮按钮,设置服务器地址

基于Docker搭建bitwarden密码管理服务器

② 输入服务器URL。

基于Docker搭建bitwarden密码管理服务器

③ 输入【账号】和【主密码】。

基于Docker搭建bitwarden密码管理服务器

④ 点击【登录】,此时会提示输入【身份验证器应用】中的6位数验证码。打开手机上的【authy】应用,输入验证码。

基于Docker搭建bitwarden密码管理服务器

⑤ 登录完毕后即可看到密码列表。

基于Docker搭建bitwarden密码管理服务器

2.3 设置docker自动重启容器

前面讲到宝塔的docker管理器无法实现自动重启容器。因此如果服务器意外关机之后就需要我们手动启动容器,这很不方便。因此我们需要设置其自动重启。

① 通过putty连接服务器。

② 查看dockers容器列表。记录下容器ID

docker ps

基于Docker搭建bitwarden密码管理服务器


③ 通过指令更新容器,使其具备–restart=always

docker update --restart=always 容器ID(或者容器名)

以上,完毕。

展开 收起
39评论

  • 精彩
  • 最新
  • 宝塔前几天又爆出大漏洞了……

    校验提示文案

    提交
    [喜极而泣] [喜极而泣] [喜极而泣] 我去瞅瞅,不行就禁掉外网端口 [大囧]

    校验提示文案

    提交
    收起所有回复
  • 以前搭了一台,不好用,最大的问题是服务器必须在线,如果服务器不在线就无法使用。

    校验提示文案

    提交
    我测试了,没网的话各终端还是可以用的,就是不能同步数据

    校验提示文案

    提交
    收起所有回复
  • 赶在LASTPASS变天之前,跟着本文在群晖上装了BITWARDEN。
    随后一鼓作气,Mac-Chrome,iPhone,iPad上全部替换lastpass,使用下来,丝般顺滑 [哼小曲] [哼小曲] [哼小曲] [哦耶]

    校验提示文案

    提交
    哈哈,还是挺好用的

    校验提示文案

    提交
    收起所有回复
  • 收藏了,但是还是感觉不太放心,1pass用了很多年,感觉还挺好的。

    校验提示文案

    提交
    也是,目前我也还在测试阶段。

    校验提示文案

    提交
    这个不花钱不是更好,部署在自己的服务器,安全也有保证

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 在nas上搭一个,安逸,密码可以导出。

    校验提示文案

    提交
    对,我之前就是在nas上安装的,导出之后又在这台上面恢复了

    校验提示文案

    提交
    收起所有回复
  • 是时候搞一下这个了,lastpass已经不能跨平台同步了

    校验提示文案

    提交
    bitwarden这段时间我一直在用,用着还可以

    校验提示文案

    提交
    收起所有回复
  • 请问一个比较关心的问题,假如作为Bitwarden服务器的VPS被人攻破了,那所有的账号是不是就不安全了?还是说他服务器里面已经考虑过这种问题,已经做了加密处理?哪怕拖库也不怕?

    校验提示文案

    提交
    bitwarden会通过设定的主密码对数据加密。如果你的主密码忘记了那么所有数据也都无法找回

    校验提示文案

    提交
    收起所有回复
  • 调教好了keepass,感觉还是keepass好

    校验提示文案

    提交
  • 这软件最大问题是自动填充功能逻辑欠缺
    浏览器插件还行,但要右键自动填充,不能想浏览器保保存的那种自动化傻瓜操作。
    手机app更***,APP密码有的能检测到,有的不行,手机浏览器直接报废,找不到插件而且app也不能关联,全靠多任务切换和复制粘贴
    这玩意用的最多就是自动生成密码去注册各类小网站,并保存

    校验提示文案

    提交
  • 照着大佬的方式配置了 这段时间使用稳定

    校验提示文案

    提交
  • 請問可以用keepass的匯入到這嗎?

    校验提示文案

    提交
  • 我是nginx反代frp,docker跑服务,换域名也比较方便。 [高兴]

    校验提示文案

    提交
    老哥,你frp用的哪家的vps [高兴]

    校验提示文案

    提交
    我这边是学校的宿舍。自带公网IP。只需要自己写个脚本,在IP变化之后修改阿里云的dns解析

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • keepass不香吗

    校验提示文案

    提交
  • 用了快两年了,好用,网上的暴库新闻现在不关心了。

    校验提示文案

    提交
  • 用了一年了。挺好

    校验提示文案

    提交
  • 买了enpass,webdav同步到nas

    校验提示文案

    提交
  • 用的开源keepass多年

    校验提示文案

    提交
  • 想在群晖上整一个,其他应该差不多都懂,就是反向代理不太理解

    校验提示文案

    提交
  • keepass可以在本地存储密码,开启启动在本地用还是可以,多平台就不折腾了

    校验提示文案

    提交
  • 这软件有bug,有时候想录入一个网站账号密码,如果密码输入错误到你提交了,想改的话会修改不成功几次。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
310
扫一下,分享更方便,购买更轻松