侧边栏壁纸
博主头像
v林羽博主等级

行动起来,活在当下

  • 累计撰写 171 篇文章
  • 累计创建 34 个标签
  • 累计收到 14 条评论

目 录CONTENT

文章目录

【Docker项目】之–Bitwarden密码管理器-搭建并启用两步验证

v林羽
2022-10-21 / 0 评论 / 0 点赞 / 1873 阅读 / 11844 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-11-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

【Docker项目】之–Bitwarden密码管理器-搭建并启用两步验证

#教程 #Linux #Docker #Docker-compose #Ubuntu #工具

使用网络服务很难绕开的就是需要记忆账号密码,网络服务越来越多单凭记忆已经难以招架,加之安全的考虑一套简单的账号密码策略肯定是不行的。很多浏览器也已经附带账号密码的记忆、自动填充功能,却很难解决浏览器和一些APP之间的互通。今天我们就利用Docker在自己的服务器上搭建一个简单实用的账号密码管理工具Bitwarden。

安装官方版本对服务器硬件有一定的要求,官方使用的是MSSQL数据库,要求内存至少2G以上,GitHub已经有开发者通过Rust实现了Bitwarden的API替代,对服务器要求较低,数据库使用SQLite,该项目名为vaultwarden

Bitwarden官网:https://bitwarden.com

GitHub - Vaultwarden:https://github.com/dani-garcia/vaultwarden

Bitwarden 帮助中心中文版:https://help.ppgg.in

下面是搭建过程,以及如何关闭用户注册、开启两步验证等操作。

1. 安装准备

系统:ubuntu 20.4
工具:docker和docker-compose

2. 搭建

2.1. 创建数据存放位置

mkdir -p /home/ubuntu/docker_data/bitwarden   ## 创建文件夹

cd /home/ubuntu/docker_data/bitwarden   ## 进入文件夹

vim docker-compose.yml   ## 创建docker-compose

2.2. 编辑docker-compose.yml

  1. 简化版
version: '3'
services:
  bitwarden:
    image: vaultwarden/server:latest
    container_name: bitwarden
    restart: always
    volumes:
      - /home/ubuntu/docker_data/bitwarden:/data
    env_file:
      - config.env    # 使用环境变量文件方便配置
    ports:
      - "7890:80"     # 映射外部访问端口7890,根据自己需要修改
  1. 需要与已有网络通信

这次要安装的服务器上已经有一个Nginx Proxy Manager作为反向代理,所以这里直接连接一个公用的docker网络。可以参看:【Docker项目】之–Docker、Docker-compose的安装、更新和卸载

version: '3'
services:
  bitwarden:
    image: vaultwarden/server:latest
    container_name: bitwarden
    restart: always
    volumes:
      - /home/ubuntu/docker_data/bitwarden:/data
    env_file:
      - config.env    # 使用环境变量文件方便配置
    ports:
      - "8978:80"     # 映射外部访问端口8978,根据自己需要修改
    networks:
      - mynet

networks:             # 方便与已有的nginx网络通信。
  mynet:
    external: true

2.3. 配置环境变量文件和创建Docker网络

2.3.1. 配置环境变量文件

vim config.env
# 是否开放用户注册
SIGNUPS_ALLOWED=true

# Bitwarden 服务使用的域名
DOMAIN=https://xxxx.xxx

# 数据库在容器内的路径
DATABASE_URL=/data/bitwarden.db

# 设置日志路径
LOG_FILE=data/access.log

# 日志级别选项:trace、debug、info、warn、error 以及 off
LOG_LEVEL=warn
EXTENDED_LOGGING=true

# 修改线程,默认为10,若用户多可修改为更大,一般默认不需要设置
ROCKET_WORKERS=10

# 是否开启 Web 客户端
WEB_VAULT_ENABLED=true

详细配置说明:Home · dani-garcia/vaultwarden Wiki · GitHub

环境配置:vaultwarden/.env.template at main · dani-garcia/vaultwarden · GitHub

2.3.2. 创建Docker网络

已经创建的略过。

# 创建一个公用的docker网络
docker network create mynet

# 查看docker网络情况
docker network ls

# 显示如下信息
NETWORK ID     NAME      DRIVER    SCOPE
0134ad30defd   bridge    bridge    local
29474e75ede0   host      host      local
33bc01a2e0d0   mynet     bridge    local    # 刚刚新建的网络

2.4. 拉去镜像开始安装

docker-compose up -d

3. 使用及展示

3.1. 网页端登录

如果无法创建账号,需要ssl证书开启访问https。

3.2. 浏览器插件

安装后,填入自己的服务器域名,保存登录。

Send功能,可以做一些临时的记录,多端同步。

随机密码生成器

3.3. Windows客户端

3.4. Android客户端

Android客户端截屏时,提示涉及隐私没有成功,操作没有什么特殊的内容。

3.5. 其他客户端

Install and Sync All of Your Devices | Bitwarden

4. 其他

4.1. 关闭用户注册

注册完用户后,不希望其他人登录注册,可以关闭用户注册。通过修改config.env中的SIGNUPS_ALLOWED=false 重新安装。

Docker-compose.yml文件中我们已经对数据进行了持久化映射- /home/ubuntu/docker_data/bitwarden:/data,在环境变量中设置了数据库位置DATABASE_URL=/data/bitwarden.db,下面我们删除docker容器,使用原有数据重新安装。

# 进入存放docker-compose.yml文件夹,停止容器
docker-compose stop

# 防止意外,先备份数据
cp -r ~/docker_data/bitwarden bitwarden.archive

# 删除原容器
docker-compose down

# 修改config.env文件SIGNUPS_ALLOWED=false
vim config.env

# 重新运行
docker-compose up -d   #完成

4.2. 开启两步验证

4.2.1. 开启邮件功能

首先编辑环境配置文件config.env,配置SMTP服务功能。在最后面增加如下内容

# 启用管理后台并设置token,默认为空不启用,设置token后则启用,这里是一个例子
ADMIN_TOKEN=SDcWJuiL5eTysdcbnigcFEskgv9mu76GvTgUEqpoA3f92Uvj

# 是否启用WebSocket通知,实时同步:true启用,false禁用
WEBSOCKET_ENABLED=true

# 显示密码提示:true启用,false禁用
SHOW_PASSWORD_HINT=false

# 设置SMTP
SMTP_HOST=smtp.163.com
SMTP_FROM=xxxxx@163.com
SMTP_PORT=465

# 邮箱账号,密码
SMTP_USERNAME=xxxxx
SMTP_PASSWORD=XXXXXXXX
# 自v1.25.0起,不再设置SMTP_SSL和SMTP_EXPLICIT_TLS,使用SMTP_SECURITY替代,它有以下选项:starttls、force_tls和off。
# 465端口使用force_tls,587端口使用starttls,25端口使用off。
SMTP_SECURITY=force_tls

# 启用或禁用邀请:true启用,false禁用
INVITATIONS_ALLOWED=false

# 启用或禁用分享发送功能,默认开启,启用true,禁用false
SENDS_ALLOWED=true

ADMIN_TOKEN为管理面板密码,可以使用密码生成器生成。开启邮箱的SMTP服务,这里推荐163的邮箱服务。打开邮箱进入设置->POP3/SMTP/IMAP->开启IMAP/SMTP服务->新增授权密码 ,一定要记好授权密码(只显示一次,以后无法查询,只能重新获取)。

设置完后重新安装容器。

登录后会发现多了一个 验证电子邮件 的提示。

按照提示我们验证一下。

4.2.2. 开启两步验证

进入账户设置->安全->两步验证->电子邮箱 管理,按下面提示操作。

这样就开启成功了。

4.2.3. 获取恢复代码

这里依赖邮箱发送验证码,验证登录。为了防止邮箱服务出现问题,我们还需要获取并记住恢复代码,防止意外发生,操作如下

4.2.4. 测试两步验证

以上工作完成后,注销账户,我们使用两步验证重新登录一下。

开启两步验证后,如果有其他人登录你的账号,未通过两步验证,会得到如下的邮件提醒。

baidu翻译:

有人试图使用正确的主密码登录到您的帐户,但没有提供在首次登录尝试后3分钟内完成两步登录过程所需的正确令牌或操作。

日期:2022年10月16日星期日上午10:33:05+00:00

IP地址:xxxx

设备类型:xxxx

如果这不是您或您授权的人,那么您应该尽快更改主密码,因为它可能会被泄露。

4.2.5. 通过恢复代码登录

点击参看官方介绍:https://bitwarden.com/help/lost-two-step-device/

有恢复代码:https://bitwarden.com/help/two-step-recovery-code/#use-your-recovery-code

恢复账号两步登录地址:https://your.domain.com/#/recover-2fa/

需要将your.domain.com修改为自己的域名地址。

4.3. 忘记主密码怎么办(官方答复:删号重建)

我忘记了主密码 - Bitwarden 帮助中心中文版

4.4. 系统管理

当设置了ADMIN_TOKEN=后,可以登录系统管理 https://your.domain.com/admin。链接在登录后的 15 分钟内有效。可以通过删除ADMIN_TOKEN=或者DISABLE_ADMIN_TOKEN=false方式关闭系统管理员功能。

这里也可以配置SMTP服务

0

评论区