使用Bitwarden自建开源密码存储系统

老黑 教程文档使用Bitwarden自建开源密码存储系统已关闭评论191阅读模式

Bitwarden是一款免费且开源的支付卡、密码、秘钥及关键文本存储方案,其最大的亮点就是这全平台支持,提供有浏览器、移动、桌面应用程序支持,可以一键填入密码。

使用Bitwarden自建开源密码存储系统

老彭我使用了一段时间bitwarden官方的服务,总体感觉良好,但是近期联通和移动网络非常不稳定,经常无法登录bitwarden官方服务器,今天就来分享一下自建bitwarden服务器的操作步骤。

运行环境准备

Bitwarden官方推荐使用Docker镜像安装,而官方使用.net构建,docker镜像体积有点大,这里推荐使用第三方构建的Vaultwarden,支持使用SQlite3、MySQL、PostgreSQL进行数据存储(默认使用SQlite3)。

准备vps服务器

默认会用SQlite3作为数据库,对服务器没有什么特殊要求,一般的1核512Mb内存就足够使用了,老彭我使用的是阿里云的1核2GB内存1MB宽带的配置。

准备一个域名

bitwarden推荐所有请求都是安全的https访问,当然可以使用子域名进行访问。

安装nginx反代服务

bitwarden需要使用nginx作为前端反代,当然你也可以使用其他反代服务器。推荐使用lnmp或者oneinstack等一键环境部署。

Bitwarden安装

安装docker环境

官方一键docker-ce和docker compose环境安装脚本:

#通用网络环境安装脚本
curl -fsSL https://get.docker.com | bash -s docker
#国内网络安装脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

#验证安装是否正确,输出有Pull complete字符表示安装正确
docker run hello-world

#启动docker服务并设置开机启动
systemctl start docker
sustemctl enable docker

#拉取镜像
docker pull vaultwarden/web-vault:v2022.05.0
反向代理服务配置

直接在nginx中加入下面内容即可:

    location / {
        proxy_set_header  Host  'pwd.ixmu.net';
        proxy_pass http://127.0.0.1:8980;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
    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:8980;
    }

Bitwarden服务运行

第一次运行bitwarden
docker run -d --name bitwarden \
  -e SIGNUPS_ALLOWED=true \
  -e WEBSOCKET_ENABLED=true \
  -e LOG_FILE=/data/bitwarden.log \
  -p 8980:80 \
  -p 3012:3012 \
  -v /bw-data/:/data/ \
  vaultwarden/web-vault:latest

使用以下命令可以停止和重启Bitwarden运行:

docker stop bitwarden
docker start bitwarden
Bitwarden禁止注册

为了保证bitwarden服务器的稳定,你可以在自己注册完成后禁用注册功能。

docker stop bitwarden
docker rm bitwarden
docker run -d --name bitwarden \
  -e SIGNUPS_ALLOWED=false \
  -e WEBSOCKET_ENABLED=true \
  -e LOG_FILE=/data/bitwarden.log \
  -p 8980:80 \
  -p 3012:3012 \
  -v /bw-data/:/data/ \
  vaultwarden/web-vault:latest
Bitwarden发送邮件

某些情况下需要配置smtp发送邮件功能,例如多用户或邀请注册的情况下,可以通过如下命令配置smtp服务器信息。

docker run -d --name bitwarden \
  -e SMTP_HOST=<smtp.domain.tld> \
  -e SMTP_FROM=<[email protected]> \
  -e SMTP_PORT=587 \
  -e SMTP_SSL=true \
  -e SMTP_USERNAME=<username> \
  -e SMTP_PASSWORD=<password> \
  -v /bw-data/:/data/ \
  -p 8980:80 \
 vaultwarden/web-vault:latest
Bitwarden开启管理员权限

bitwarden可以开启管理员权限/admin页面,此页面允许服务器管理员查看所有注册用户并删除它们,它还允许邀请新用户,即使注册被禁用。

当然为了用户隐私安全,管理员只能查看用户和删除用户,并不能读取用户存储的密码信息。

docker run -d --name vaultwarden \
  -e ADMIN_TOKEN=some_random_token_as_per_above_explanation \
  -v /vw-data/:/data/ \
  -p 8980:80 \
  vaultwarden/server:latest

Bitwarden使用

电脑、移动设备、浏览器插件

https://bitwarden.com/download/

bitwarden密码管理系统支持客户端和浏览器插件,只需要在登录器点击设置输入服务器地址即可,例如https://pwd.ixmu.net

使用Bitwarden自建开源密码存储系统
浏览器插件配置实例

Bitwarden数据备份

bitwarden备份最关键的就是sqlite3数据库文件了,你可以直接进入到bw-data目录下,将sqlite3数据库保存下来。当然你也可以将bw-data目录下所有的包括附件文件夹、图标缓存文件夹、密钥等文件备份下来。

总结

bitwarden是一款非常优秀的密码管理系统软件,为了可以让手机APP和浏览器扩展能够正常使用Bitwarden自建密码存储系统,我们需要用到反代域名,如果这些都不需要直接执行启动命令使用IP登录即可。

bitwarden运行命令相关的参数还有如下:

# 运行 bitwarden_rs 容器
docker run -d --name bitwarden \
    -e SIGNUPS_ALLOWED=false \
    -e INVITATIONS_ALLOWED=false \
    -e ADMIN_TOKEN=step2_generated_token \
    -e ROCKET_TLS='{certs="/data/xxx.crt",key="/data/xxx.key"}' \
    -e DOMAIN=https://bwh.vioe.cc/ \
    -e LOG_FILE=/path/to/log \
    -e LOG_LEVEL=warn -e EXTENDED_LOGGING=true \
    -e DATA_FOLDER=/path/to/data/folder \
    -p 443:80 \
    -v /path/to/host/ssl/:/path/to/docker/ssl/
    -v /path/to/host/data/folder:/path/to/docker/data/folder \
    vaultwarden/server:latest

说明如下:

SIGNUP_ALLOWED:是否允许注册
INVITATIONS_ALLOWED:是否允许组织邀请注册
ADMIN_TOKEN:用户管理界面 (/admin),可用于删除用户及邀请用户注册
ROCKET_TLS:ssl 证书信息,同时需要配置 -v /path/to/host/ssl/:/path/to/docker/ssl/ 卷,前者为宿主机 ssl 证书的位置,后者为容器证书位置
DOMAIN:域名
LOG_FILE、LOG_LEVEL、EXTENDED_LOGGING:日志保存文件路径以及日志等级定义
DATA_FOLDER:docker 容器数据保存文件夹(默认为 /data),除了定义这个文件夹之外,还可以定义附件、图标缓存、数据库等参数
DATABASE_URL:数据库路径
ATTACHMENT_FOLDER:附件路径
ICON_CACHE_FOLDER:图标缓存路径

老黑
  • 本文由 发表于 2022年6月26日 23:34:42
  • 转载请务必保留本文链接:https://www.ixmu.net/article/434.html
pve7.2-7控制cpu频率实现降频降温省电 教程文档

pve7.2-7控制cpu频率实现降频降温省电

修改启动项 [email protected]:~# nano /etc/default/grub 找到quiet那个位置,后面加空格,再加intel_pstate=disable 加上参数后保存,并更新grub ro...
使用HiCA免费签发域名通配符SSL证书 IP SSL证书 开撸

使用HiCA免费签发域名通配符SSL证书 IP SSL证书

Hi.CA介绍 HiCA 是一家国产证书品牌,提供免费的通配符ssl证书及ip ssl证书,是全球首家支持通过ACME渠道签发域名、ipv4、ipv6证书的证书品牌。通过域名备案信息了解到其属于上海帝...
知更鸟begin奇怪的问题修复,缩略图空白 教程文档

知更鸟begin奇怪的问题修复,缩略图空白

知更鸟begin主题下,使用沈唁的USS Upyun插件整合又拍云存储发现一个奇怪的问题,文件内部图片的优化选项都成功启用,但是知更鸟begin主题自带的缩略图启用又拍云后前台的文章缩略图全部是白色,...