盗号是个严重的问题,您访问的网站、使用的各类应用每天都在遭受攻击。每当发生安全漏洞,您的密码就会被盗取,如果您跨应用和网站使用相同的密码,黑客就可以轻松访问您的电子邮件,甚至银行或者其他重要账户。
密码始终是现代网民的心头大患,毕竟密码弱了不放心,强了记不住,一处密码到处用又容易变成一处泄露多处翻车。你永远也不知道哪个二五仔网站明文存密码。更何况,每天输密码和回忆密码还容易导致脱发和腱鞘炎。
这么复杂的密码,记不住又难输入?好的密码管理软件还能自动填充账号密码,连输入都不用,老司机就是又快又稳。
但是现有的常用解决方案或多或少有一些缺憾,如iCloud钥匙串对PC用户不友好,Edge和Chrome等浏览器密码管理使用场景受限,1Password好用,但要钱。
开源,免费,跨平台,安全,好管理,好用,能自动填充密码的密码管理解决方案。LastPass和Bitwarden就是开源方案的代表,但是LastPass的跨平台体验较差,使我最终选择Bitwarden。
Bitwarden
是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息(例如网站登录凭据)。Bitwarden
平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden
提供云端托管服务,并支持自行部署解决方案。
Bitwarden 是保存您的登录密码最简易安全的方法,它可以在您的所有设备之间同步。
使用Bitwarden的最快捷办法就是:
通过几个简单的场景,我们就能够了解Bitwarden的便利性。
在客户端中能够对密码库进行管理,例如,可以将知乎的账号密码记录在此,以供日后查看,或是检测账号密码是否泄露,或者用密码生成器生成各种强度的密码。此外,还能为各个条目添加笔记,或添加其他自定义字段,如密保问题等。
在创建密码时,选项也比较丰富。它支持最长 128 位的密码,还可选最少的数字或特殊字符个数,并且生成的密码中,数字,字母,符号都会以不同的色彩显示,极大程度上避免了混淆。同时它还支持生成最多 20 个单词的密码短语,还可选分隔符,是否包含大小写与数字。不仅如此,它还有历史记录功能,可以查看之前所生成的密码。
通过安装插件,可以方便的在各个主流浏览器中使用Bitwarden,并使用其进行自动填充
Bitwarden插件同样具备密码库管理的全部功能。更重要的是,当所浏览的网页同密码库中的条目相匹配时,可以用它进行自动填充!
Bitwarden的App同样具备管理密码库的全部功能。为了使得自动填充真正发挥威力,进行如下设置
准备一台稳定靠谱的服务器,强烈推荐「腾讯云」等国内大厂!趁最近双清明节秒杀或各种活动优惠入手的话是非常便宜的,大家可以根据实际需求选择带宽和配置。
单做密码管理的话要求很低,但如果你希望能多用途利用,那么优先选择内存和带宽高点的机型。
另外你还需要注册一个域名用于访问你的服务器。然后进入你的域名 DNS 解析后台,新增一条 A 记录指向你的服务器 IP (这一步最好先做,因为部分 DNS 生效会比较久),这里假设我使用域名为 bitwarden.ctq6.cn。
如果你的服务器上已经安装了 Docker 和 Docker Compose,这一步就可以跳过了。Docker 要求 CentOS 系统的内核版本高于 3.10,可以运行 uname -r 查看版本。
执行如下命令来安装docker:
# 1、(可选)更新系统的软件包
yum update -y
# 2、安装 docker 依赖的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、添加 docker 的 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、通过 yum 安装 docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 如上述命令出错,可能是系统上已有旧版本 Docker,需要先卸载旧版本
# 卸载命令:yum remove docker docker-common docker-selinux docker-engine docer-io
# 5、启动 Docker 服务并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
# 6、测试 docker 是否安装成功 (查看版本号)
docker version
# 有 client 和 service 两部分表示 docker 安装并启动成功了(有部分错误不用管)
执行如下命令来安装docker-compose
# 1、首先前往 https://github.com/docker/compose/releases/latest 查看最新的 docker-compose 版本号,比如截稿时最新版本为 2.4.0。
# 2、下载最新版本的 docker-compose,你需要将下面的 2.1.1 替换成最新的版本号
sudo curl -L "https://github.com/docker/compose/releases/download/2.4.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 3、授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 4、测试是否安装成功(可能需要重启系统)
docker-compose -v
# 安装成功会显示 docker-compose 版本
确认服务器已成功安装好 Docker 和 Docker Compose 之后,我们就可以来安装 Bitwarden 了。本次安装方式为docker swarm形式来安装,其中需要配置的是发邮件的账号和密码,配置访问bitwarden的域名,安装文件如下:
version: "3.8"
services:
bitwarden:
image: vaultwarden/server:latest
ports:
- "6000:80"
networks:
- "yfgj_net"
environment:
- WEBSOCKET_ENABLED=true
- LOG_FILE=/data/bitwarden/bitwarden.log
- SIGNUPS_ALLOWED=false
- INVITATIONS_ALLOWED=false
- ADMIN_TOKEN=nNHZwQcw/ixEJKL6680NE3hO5+FeUmC+tBj7bLtnzJX72Vl+DKLGgMItxZhvuKwE
- DOMAIN=https://bitwarden.ctq6.cn
- SMTP_HOST=smtp.126.com
- SMTP_FROM=<>
- SMTP_PORT=465
- SMTP_SSL=true
- SMTP_USERNAME=<>
- SMTP_PASSWORD=<>
- WEB_VAULT_ENABLED=true
volumes:
- /data/bitwarden/bw-data:/data
deploy:
mode: replicated
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.docker.network=yfgj_net"
- "traefik.http.services.bitwarden_bitwarden.loadbalancer.server.port=80"
- "traefik.http.middlewares.redirect-https.redirectScheme.scheme=https"
- "traefik.http.routers.bitwarden-ui-443.rule=Host(`bitwarden.ctq6.cn`)"
- "traefik.http.routers.bitwarden-ui-443.tls=true"
- "traefik.http.routers.bitwarden-ui-443.tls.certresolver=foo"
- "traefik.http.routers.bitwarden-ui-443.tls.domains[0].main=ctq6.cn"
- "traefik.http.routers.bitwarden-ui-443.tls.domains[0].sans=*.ctq6.cn"
- "traefik.http.routers.bitwarden-ui-443.middlewares=redirect-https"
- "traefik.http.routers.bitwarden-ui-443.entrypoints=websecure"
placement:
constraints: [node.role == manager]
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
yfgj_net:
external: true
name: yfgj_net
需要优先创建好docker network,执行如下命令常见docker network:
docker network create \
--driver=bridge \
--subnet=172.28.0.0/16 \
--ip-range=172.28.5.0/24 \
--gateway=172.28.5.254 \
yfgj_net
由于本次dokcer文件中还指定了traefik配置信息,故再安装Bitwarden之前,还需先安装traefik到docker swarm集群中,待traefik安装完成后,创建网络完成后,可以直接部署Bitwarden,执行如下命令将Bitwarden:
docker stack deploy -c docker-compose-bitwarden.yaml bitwarden
正常的话就能通过域名访问了,例如 https://bitwarden.ctq6.cn。这里就是你自己的 Bitwarden 私人密码库网页版了,之后就能去下载各种客户端使用了,登录时填入咱自己的 Bitwarden 服务器地址即可。
可自动生成不同程度强度的密码
Bitwarden 还会生成一系列的安全报告,以保护用户密码的安全。
它会将密码以及邮箱地址与已经公开的,被泄露的数据库中的内容进行对比,并找出这些不安全的密码,另外也会与你自己的密码库中的密码进行对比,防止一个密码被重复使用多次。它能够找到那些非常容易被破解的密码,在自动填写的域名中未使用 https 的,以及网站有两步验证但并未被启用的,并进行提醒,增加密码的安全程度。
作为密码管理软件,密码的导出与导入势必是非常重要的,这关系到是否能够方便地进行数据迁移,以及是否能够方便备份,防止软件出现问题时无法登录到网站中。
Bitwarden 支持从绝大多数主流密码管理软件中进行数据导入,例如 Chrome,Firefox,1Password,LastPass 等等,并且支持 json 与 csv 这两种格式的导出,操作也非常便捷,完全能够满足我的需求。