一、Bitwarden密码管理系统准备
1.什么是Bitwarden
首先,它有着完全免费的版本,而且功能限制并不多。它允许免费用户存储不限数量的密码,同时能够与另一个账户共享密码库。对于我这种完全没有共享需求的人来说,这已经是足够我使用了。同时它完全开源,如果不放心,甚至还官方提供了 docker 镜像以供自建。
2.功能介绍
Bitwarden 的功能并不止于生成并管理密码,下面我来简单介绍一下。
bitwarden 是开源的专业密码管理软件,是目前最为常用的密码管理软件之一,主要特点有:
- Windows、Mac、Linux、Android、iOS 全平台覆盖
- 支持 Chrome、Edge、Safari、Firefox 等主流浏览器插件
- 支持
密码
、文本
、信息表
甚至附件
的加密保管 - 支持自动填写网页、app 账号密码
- 支持文件加密分享,方便地通过 bitwarden send 分享隐私文件、照片等
- 支持生成两步验证器,为每个密码设置 TOTP 动态口令
- 支持团队密码库,可在团队成员中共享团队密码
- 支持密码检测报告,检测密码库中的重复密码、弱密码、已被泄露的密码等
- 代码开源,支持自搭建,将数据全部掌握在自己手中
2.1 生成并管理密码
这算是 Bitwarden 的本职工作了吧,不过除了账号密码外,它还可以通过 TOTP 提供两步验证,如果网站支持的话。另外,还能够自定义一些笔记或是新增字段,来添加对于该站点的描述。它还支持文件夹,通过不同的文件夹来进行分类,不过只支持一级文件夹。
在创建密码时,选项也比较丰富。它支持最长 128 位的密码,还可选最少的数字或特殊字符个数,并且生成的密码中,数字,字母,符号都会以不同的色彩显示,极大程度上避免了混淆。同时它还支持生成最多 20 个单词的密码短语,还可选分隔符,是否包含大小写与数字。不仅如此,它还有历史记录功能,可以查看之前所生成的密码。
2.2 数据的导出与导入
作为密码管理软件,密码的导出与导入势必是非常重要的,这关系到是否能够方便地进行数据迁移,以及是否能够方便备份,防止软件出现问题时无法登录到网站中。
Bitwarden 支持从绝大多数主流密码管理软件中进行数据导入,例如 Chrome,Firefox,1Password,LastPass 等等,并且支持 json 与 csv 这两种格式的导出,操作也非常便捷,完全能够满足我的需求。
Bitwarden官方推荐使用Docker镜像安装,但是Bitwarden 服务器使用 .Net 开发,如果使用 Docker 来部署,镜像体积过大;此外它使用 MSSQL 数据库,部署这个数据库对服务器配置要求比较高。而是bitwarden_rs是第三方开发的Bitwarden安装镜像。
PS:2022年12月更新,bitwarden_rs已经于2021年8月更换名称为vaultwarden,见:https://github.com/dani-garcia/vaultwarden/discussions/1642。本篇文章所有的安装方法已经更新为Vaultwarden。
2.3 密码安全报告
Bitwarden 还会生成一系列的安全报告,以保护用户密码的安全。
它会将密码以及邮箱地址与已经公开的,被泄露的数据库中的内容进行对比,并找出这些不安全的密码,另外也会与你自己的密码库中的密码进行对比,防止一个密码被重复使用多次。它能够找到那些非常容易被破解的密码,在自动填写的域名中未使用 https 的,以及网站有两步验证但并未被启用的,并进行提醒,增加密码的安全程度。
2.4 账户保护
除了普通的账号密码,以及两步验证(必须通过网页端开启)外,Bitwarden 还通过 “指纹短语”(fingerprint phrase)来保护帐号安全。每个帐号都有一个固定的,由 5 个英语单词组成的指纹短语,且不会改变。可以通过验证指纹短语,来判断所连接到正确的的 Bitwarden 服务器。或用来验证添加到组织中的帐号是否为正确的帐号。
它还支持通过修改 KDF 迭代来防止主密码遭到暴力破解。
其他一些安全措施,别的密码管理软件也具有,像后台自动锁定,禁止截图等等,这里就不展开细说了。
总而言之,它所提供的功能非常丰富,在生成管理密码外,还有一系列保护账户安全的功能,
开源项目:https://github.com/dani-garcia/vaultwarden
二、准备材料
- 一个域名
- 一个服务器需要搭载宝塔面板
- 一双手和脑子
三、教程开始
宝塔面板需要安装Docker服务
以下两个选一个安装即可
docker run -d --name vaultwarden -v /bw-data/:/data/ -p 8880:80 vaultwarden/server:latest
#配置是否允许注册,是否记录日志,是否开启通知
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=true \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
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:图标缓存路径
bitwarden升级命令如下:
# 重新拉取镜像
docker pull vaultwarden/server:latest
# 停止原容器
docker stop vaultwarden
#删除原容器
docker rm vaultwarden
# 重新运行 docker run 命令
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
vaultwarden/server:latest
# 查看镜像文件
docker image ls
# 删除原镜像文件,
docker image rm $ID
使用以下命令可以停止Bitwarden运行:
docker stop vaultwarden #停止运行
docker start vaultwarden #启动
docker rm vaultwarden #删除
1.安装模式
为了保证bitwarden服务器的稳定,你可以禁止bitwarden注册新用户(这一项可以放在最后,否则你自己都无法注册了)。
docker run -d --name vaultwarden \
-e SIGNUPS_ALLOWED=false \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/data/vaultwarden.log \
-p 8880:80 \
-p 3012:3012 \
-v /bw-data/:/data/ \
vaultwarden/server:latest
如果你的Bitwarden是多用户使用的话,那么你可以配置一下SMTP发邮件了,参考如下:
docker run -d --name vaultwarden \
-e SMTP_HOST=<smtp.domain.tld> \
-e SMTP_FROM=<vaultwarden@domain.tld> \
-e SMTP_PORT=587 \
-e SMTP_SSL=true \
-e SMTP_USERNAME=<username> \
-e SMTP_PASSWORD=<password> \
-v /bw-data/:/data/ \
-p 80:80 \
vaultwarden/server:latest
四、使用
如果部署成功,此时访问域名就会看到这样的界面
在最Bitwarden最开始运行时候不要关闭注册,因为管理员也需要在第一次运行注册账号。
以下就是Bitwarden的使用界面了,非常地简洁。
五、演示站
分享是一种美德,当你分享时请你附带上本文链接。
请登录后查看评论内容