保护自己的密码安全,自托管或免费部署 Bitwarden。

数字玩具 2022年03月11日 23:18

你确定自己的密码足够安全吗?

我猜测蛮多人都是 “一个密码走天下” 的状态吧?🤨,要知道这样真的很危险。Password Strength Meter 可以测试你的密码是否足够安全。

密码检测

可以看到,一个常用的常规密码想要破解只需要短短三个小时。更不用想网站服务器大量流出的常用密码。如果你所有服务全部使用一个密码,只需要有一个你常用的网站或 APP 被黑客攻破,你的密码自然而然被全部泄露。

常用的弱密码,如:

  • 123456 - 连续密码
  • password - 简单英文
  • qwerty - 键盘连续字母

这些密码甚至不需要攻破,因为使用率太高已经被保存于密码字典中。

而且大多数人十分习惯采用 “生日 + 姓名” 的组合,这也是被破解的高发区。😢

我该怎么样保证我密码的安全嘞

  • 保证自己的密码大于 15 位以上

密码位数的增加随之增长的就是破解难度的提升。

  • 尽量采用字母大小写、数字和符号混用的模式

字符混用提高破解的门槛。

  • 不使用弱密码和生日等常见组合

这些密码都已经被记录你确定还在使用?

我记不住欸,而且使用同一个密码为什么还是错的

好多人大概是因为记不住所以被迫使用一个密码。这样是很危险的!😡而且,因为虽然你不在乎密码的安全,但是很多互联网公司会为了用户的账户安全在设置密码时设置各种门槛,而且方式千奇百怪。如果使用不符合复杂度的密码将无法创建账户。

在很早以前密码使用任意数字或字母就可以注册成功,尤其点名 QQ。记得零几年注册的 QQ 账号密码采用全部数字竟然没有任何提示密码危险信息。随着网络安全意识的提高,逐渐开始在注册层面强制使用 “数字 + 密码” 的组合,接着是 “密码中必须有大小写字母和数字” 的组合。

这样直接导致虽然你认为你记录的是一个密码,但是随着网站和应用的逐渐变迁,导致你一直在填写密码时 “一时兴起” 多加了几个字母和数字,以为自己能记住,其实这是不可能的。😞

怎么办嘞?

最简单的办法就是使用密码管理工具咯

例如 Edge 上有自带的密码管理软件,还可以扫描到可能泄露的密码。

Edge密码管理

现在绝大多数浏览器都提供有密码保存功能,在输入密码时自动帮你生成一个十几位的强密码,但是应该绝大多数人不会使用。为什么呢?因为它只能在 PC 浏览器上使用呀!!而且只能记录网站密码,APP 使用的密码无能为力。

推荐使用 Bitwarden!

所以用 Biwarden 多好

对比一系列密码管理软件,在众多收费的产品中,它免费又开源。完全不需要担心软件本身有后门或者漏洞。

有两种方式,一种是直接去 Bitwarden 官网注册账号使用,缺点是如果想要全功能需要购买高级会员。

第二种方式是直接在自己服务器上搭建一个。😚优点是完全掌握在自己手中,而且自己搭建的服务器默认开通高级会员。下面就是搭建的内容咯~

Bitwarden高级会员

推荐使用 docker compose 方式搭建

部署方式

@2022 年 10 月 3 日 重新编辑,新增 Railway 免费部署方式。

自托管 Docker 部署

此步骤需要有一台服务器,但是应该支持 Dockerfile 的 PAAS 平台应该也行,但是没有试过。

安装 docker

在文章命令记录 #docker 安装中有写,直接根据文章安装 docker 和 docker compose。

在安装完成后,输入命令获取 Bitwarden:

docker pull vaultwarden/server:latest

编写 docker compose 与启动

然后在 VPS 中选一个看得比较顺眼的地方编写 docker compose.yml 文件。我一般在网站根目录下创建这个文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
    - WEBSOCKET_ENABLED=true
    - SIGNUPS_ALLOWED=false
    volumes:
      - /data/docker/bitwarden/data:/data
    ports:
      - 7006:80  # Needed for the ACME HTTP-01 challenge.
      - 7007:443
      - 3012:3012

Copy

⚠️注意:

  1. ports 是下的切片,前面表示服务器端口号,这个可以修改为任意值,后面代表 docker 容器中的端口号,不能修改。
  2. environment 下的 SIGNUPS_ALLOWED 先设置为 true,在自己注册后再 docker compose down 关闭修改文件,再次启动。

在文件目录下运行一下查看是否启动:

docker compose up -d

然后在浏览器中打开 ip:port

Bitwarden登陆界面

显示登陆界面代表安装成功。😎

添加 nginx 反向代理

不要直接使用端口进行访问!在检测完端口确定可以访问后把端口的外部访问关闭。

修改 nginx 文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
server
    {
        client_max_body_size 128M;
        location / {
        proxy_pass http://127.0.0.1:7006;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        }
  
        location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
  
        location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:7006;
        }
    }

Copy

这是 server 中新添加的内容,注意原先内容不要删除。

困惑

我为什么不能登陆

可能是因为网站不是 https 的问题,因为 Bitwarden 在很早的一次升级中将 http 访问移除,必须使用 https 才能登陆访问以提高安全性。

我使用的是 lnmp,所以直接输入命令

lnmp ssl add 进行添加 https 访问即可。

Railway 免费部署

这一章节介绍如何使用 Railway 免费部署。但是注意:使用 Github 进行单点登录或链接的账户,必须注册够 180 天,否则会拒绝申请。

还需要注意

  1. Railway 每月只有 5 刀免费额度,注意用量。(使用量取决于你项目中使用的服务数量,主要分为 CPU 使用时间与内存用量)
  2. 本质上是免费提供的一个 VPS,但是严禁部署各种 VPN 隧道服务。

打开 Railway 仪表板后点击右上方的新建项目在模板中找到 Vaultwarden 并使用。

部署

在模板配置页面中 Repository details 为部署在 Github 上的新存储库名字,选择下面的 Private repository 会设置为私有仓库。我原本以为设置私有仓库后可以在仓库中添加.env 文件设置变量,但是发现并没有什么用。

vault

下方的 Environment variables 为环境变量调整项。ADMIN_TOKEN 并不是随便输入的字符串,而是需要使用:

1
openssl rand -base64 48

Copy

此命令获取的随机字符串。如果当前没有 Linux 环境的朋友或小白可以直接在在线 Bash 中输入此命令获取。剩下在下拉菜单中的 DOMAIN 与 PORT 变量请保持默认。点击 Deploy 后稍作等待后会在仪表板显示出你部署的应用。在项目中打开 Variables,重新添加环境变量 I_REALLY_WANT_VOLATILE_STORAGE=true,点击确定后会自动重新部署。

添加环境变量

等一分钟就部署完咯🥰。这时打开 Deployments 标签栏,最新的部署上应该会显示有项目域名。打开后注册登录就能使用咯。如果是自己使用,在自己注册后可以再次添加环境变量 SIGNUPS_ALLOWED=false 关闭注册。如果想要完全自己配置,还可以查看环境变量调整。

如果有自己域名就更棒了!可以直接在 Settings 中的 Domains 选项中用 CNAME 方式添加二级域名,直接使用其他域名访问。

Bitwarden 使用体验

不得不说真的舒服很多🥳。所有网站与 APP 全部设置为唯一的强密码,在 Android 端登陆 APP 时,可以直接在 Gboard 中提供密码:

Discord-Bitwarden密码

直接点击上栏填入密码即可。

而在 iPhone 中,因为 faceID 的引入,使得输入密码更为方便:

iPhone-Bitwarden密码

在任意网站或 APP 登陆,甚至不需要任何感知,faceID 自动帮你填入密码。

在网页端也极为方便,打开任何网页会自动搜索该域中所有密码,登陆界面中点一下自动填充。值得注意的是一定不要取消锁定!💔不然任何人使用你的电脑都有可能获取你的密码。

PC-Bitwarden密码

插件可以在 Edge 插件商店中找到。

⚠️注意:

  • 使用个人搭建服务要在设置中填入自己的域名。
  • 使用任何密码软件来预防都防不住自己要告诉他人的密码
  • 定期 docker pull vaultwarden/server:latest 来更新最新的服务端

完结撒花🎉🎉🎉

标签

吕楪

博主.本博客的所有者,一切的开始。