密码管理器Vaultwarden搭建


前言

管理密码一直是一个头疼的问题最早的时候没用密码管理软件,密码全部拿txt记录,这个有点呆。
后来开始使用,1Password,但是太贵了,而且不支持自建,我就开始寻找开源替代方案。在冲浪的过程中,我发现了Bitwarden, 而且有社区版本的Vaultwarden。

认识 Vaultwarden

Vaultwarden 最初被称为 bitwarden_rs ,是 Bitwarden 的非官方 Rust 实现,后来为了与 “大哥” Bitwarden 区分开来,遂改名为 Vaultwarden。它使用 Rust 语言编写,这赋予了它诸多优势,比如内存占用显著降低,仅需约 10MB 内存就能运行,几乎可以在任何硬件上部署,哪怕是像树莓派这样的低配置设备也不在话下 。

主要功能​

端到端加密:采用先进的端到端加密技术,在数据传输和存储过程中,你的密码和敏感信息始终处于加密状态。打个比方,就像给每个数据都上了一把只有你能打开的锁,即便数据在服务器上,没有你的密钥,他人也无法窥探其中内容,极大程度保障了数据的隐私和安全 。​

跨平台同步:支持在 Windows、Mac、Linux、iOS、Android 等多种主流操作系统以及主流浏览器上使用,无论你使用何种设备,都能实时同步密码数据,无缝切换使用场景,随时随地管理你的密码 。​

自托管能力:这是 Vaultwarden 的一大亮点,你可以将其部署在自己的服务器、NAS 或其他设备上,完全掌控数据的存储和管理,不用担心数据被第三方掌控,也无需担忧隐私泄露风险,数据主权牢牢掌握在自己手中 。​

用户和组管理:若你是团队协作或家庭共享密码场景,Vaultwarden 的多用户和组织账户管理功能就派上用场了。你可以方便地添加、管理多个用户和用户组,设置不同的权限,轻松实现密码的共享与管理 。​

二次验证(2FA):为账户安全再加一把锁,支持时间基于的一次性密码(TOTP)、短信验证码、物理安全密钥(如 YubiKey)等多种二次验证方式,即便密码不幸泄露,他人没有二次验证的通过信息,也无法登录你的账户 。​

安全密码生成器:不知道如何设置强密码?Vaultwarden 内置的密码生成器来帮忙。它能根据你的需求,生成指定长度、包含数字、字母、特殊字符等组合的复杂密码,有效提升账户安全性 。​

安全笔记和文件存储:除了密码,你还能将一些敏感笔记、重要文件等存储在 Vaultwarden 中,所有数据都受到加密保护,让你的重要信息有一个安全可靠的存放处 。​

数据导入 / 导出功能:如果你之前使用过其他密码管理器,Vaultwarden 支持从 LastPass、1Password、KeePass 等常见密码管理器以及主流浏览器中导入数据,也能随时导出数据进行备份,方便又贴心 。

Vaultwarden 与 Bitwarden 对比分析

Vaultwarden Bitwarden
由社区维护 官方团队开发维护
使用 Rust 编写,轻量化和灵活性 资源占用较多
完全免费​​,开源且无功能限制 免费版功能基础,高级功能(如密码健康报告、紧急访问、1GB 存储等)需付费订阅
技术爱好者或小型团队 大型企业或团队

优先选 Bitwarden:若重视官方支持、稳定性及企业级功能,或不愿承担自托管运维风险。
优先选 Vaultwarden:若追求低成本、轻量化部署,且具备一定技术能力管理自建服务

安装 Vaultwarden

准备条件

  • 一台服务器
  • 一个域名
  • 一个SSL证书

手动安装:

1. 安装 Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2. 安装 Docker Compose

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3. 创建目录

mkdir -p /opt/vaultwarden

4. 创建配置文件

cd /opt/vaultwarden

执行命令vim compose.yml,写入以下内容:

services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.domain.tld"
volumes:
- ./vw-data/:/data/
ports:
- 8000:80 # 第一个8000可以改成你想要的端口

5. 启动容器

docker-compose up -d

6. 设置nginx反向代理

参考配置文件如下:

server {
listen 80 ;
listen 443 ssl http2 ;
server_name you_vw_domain.com;
index index.php index.html index.htm default.php default.htm default.html;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log /www/sites/you_vw_domain.com/log/access.log main;
error_log /www/sites/you_vw_domain.com/log/error.log;
location ^~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
include /www/sites/you_vw_domain.com/proxy/*.conf;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
ssl_certificate /www/sites/you_vw_domain.com/ssl/fullchain.pem;
ssl_certificate_key /www/sites/you_vw_domain.com/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
proxy_set_header X-Forwarded-Proto https;
add_header Strict-Transport-Security "max-age=31536000";
}

访问你的域名,应该会看到Vaultwarden的登录页面,点击注册,注册成功后,就可以开始使用Vaultwarden了。

使用1Panel安装

1Panel 是一个开源的服务器管理面板,能够可视化管理服务器。

安装1Panel

请参考文档:https://1panel.cn/docs/installation/online_installation/

创建编排

picture 0

点击创建编排:
填入以下内容:

services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.domain.tld"
volumes:
- ./vw-data/:/data/
ports:
- 8000:80

点击确认,等待启动。

设置nginx反向代理

创建一个网站,这里网站的域名和编排里面的域名要一致。

picture 1

申请https证书,可以使用letsencrypt,也可以使用其他证书。

配置https证书,即可

picture 2

开始使用

访问你的域名,应该会看到Vaultwarden的登录页面,点击注册,注册成功后,就可以开始使用Vaultwarden了。

picture 3

参考文档:


文章作者: 徐镖林
WeChat QR Code
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 徐镖林 !
  目录