拥有NAS后,搭建个人密码库Bitwarden是你的第一要务

当你拥有了一台NAS(网络附属存储),你便拥有了一个属于自己的私有云。除了存储照片、电影和文件,你还能用它来做什么,从而真正发挥其“家庭服务器”的潜力呢?答案有很多,但搭建一个属于你自己的密码管理器,绝对是优先级最高、回报最大的项目之一。

今天,本教程将手把手带你利用NAS的Docker功能,部署大名鼎鼎的开源密码管理器——Bitwarden,让你彻底掌控自己的数字身份安全。

阅读时间:约20分钟


为什么要自建Bitwarden密码库?

我们每天都在和数不清的密码打交道。使用弱密码或在多个网站使用相同密码,无异于将自己的数字资产大门敞开。像1Password, LastPass, Bitwarden这样的密码管理器是解决方案,但将所有密码都托付给第三方云服务,你是否会有一丝顾虑?

对于拥有NAS的你来说,自建Bitwarden服务,能将所有优势集于一身:

1. 数据的绝对主权 (核心优势)

这是最重要的一点。你的密码库,这个包含了你所有网站、银行、应用登录凭证的加密数据库,将完完整整地存储在你家里的NAS上。你无需再信任任何第三方公司,彻底杜绝了因第三方服务商被攻击而导致密码库泄露的风险。

2. 免费享受所有高级功能

Bitwarden官方云服务对一些高级功能是收费的,例如:

  • TOTP(动态口令)验证器:在Bitwarden内直接生成和存储两步验证码。
  • 安全附件:加密存储一些重要的文件或照片。
  • 紧急访问:授权他人在紧急情况下访问你的密码库。
  • 安全报告:分析你的密码强度和重复使用情况。

而通过自建服务,以上所有高级功能全部免费

3. 为家人和团队提供服务

你可以轻松地为你的家人、朋友甚至小型团队创建独立的账户,让他们也能享受到安全、便捷的密码管理服务,而无需任何额外费用。

4. 无限制的灵活性与控制

你可以决定谁能访问、何时更新、如何备份。你甚至可以将其配置为仅在家庭内网访问,实现物理级别的安全隔离。


教程前置准备

在开始之前,请确保你已具备以下条件:

  1. 一台支持Docker的NAS:例如群晖(Synology)、威联通(QNAP)等主流NAS设备。并确保你已在NAS的套件中心安装了Docker(或在群晖新版DSM中称为Container Manager)。
  2. 一个属于你自己的域名:例如 yourname.com。这是实现外网安全访问(HTTPS)的必需品。拥有域名并不昂贵,一年几十元即可。
  3. 基本的网络知识:了解端口转发、DDNS(动态域名解析)等基本概念。你的路由器和NAS通常都内置了这些功能。

安装与部署:一步步构建你的密码堡垒

我们将使用 Vaultwarden,这是一个由社区维护的、用Rust语言编写的Bitwarden服务器实现。相比官方需要多个容器的庞大服务,Vaultwarden 极其轻量,资源占用极低(内存通常低于100MB),功能却完全兼容,是个人和家庭在NAS上部署的最佳选择

步骤一:在NAS上创建数据目录

通过NAS的文件管理器,在Docker的配置目录下创建一个专门用于存放Vaultwarden数据的文件夹。例如,在 docker 共享文件夹下创建一个名为 vaultwarden 的子目录。记下这个路径,我们稍后会用到。

步骤二:使用Docker Compose进行部署

Docker Compose是定义和运行多容器Docker应用程序的工具,用它来管理配置非常方便。

  1. 登录你的NAS的SSH终端。

  2. 进入我们刚刚创建的 vaultwarden 目录:

    1
    2
    cd /path/to/your/docker/vaultwarden 
    # 例如:cd /volume1/docker/vaultwarden
  3. 创建一个名为 docker-compose.yml 的文件:

    1
    nano docker-compose.yml
  4. 将以下配置内容粘贴进去:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    version: '3'

    services:
    vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    volumes:
    - ./data:/data
    ports:
    - "8088:80" # 将容器的80端口映射到NAS的8088端口
    environment:
    - WEBSOCKET_ENABLED=true # 启用WebSocket,对客户端实时同步很重要
    - SIGNUPS_ALLOWED=true # 关键!先允许注册,完成后务必改为false
    - TZ=Asia/Shanghai # 设置时区
  5. 保存并退出编辑器 (在 nano 中是 Ctrl+X, 然后按 Y, 再按 Enter)。

步骤三:启动容器

docker-compose.yml 文件所在的目录中,执行以下命令来启动Vaultwarden服务:

1
docker-compose up -d

Docker会自动拉取 vaultwarden 镜像并根据你的配置启动容器。你可以通过 docker ps 命令或NAS的Docker图形界面,看到 vaultwarden 容器正在运行。

步骤四:设置反向代理与HTTPS (关键安全步骤)

直接通过 IP:端口 的方式访问是不安全的。我们需要使用域名和HTTPS来加密所有通信。

绝大多数NAS系统(如群晖的“应用程序门户”或“反向代理服务器”)都内置了此功能。

  1. 确保你的域名已通过DDNS解析到你的家庭公网IP
  2. 在NAS的控制面板中找到“反向代理”设置
  3. 新建一条规则
    • 来源 (Source):
      • 协议: HTTPS
      • 主机名: bw.yourname.com (你为Bitwarden规划的二级域名)
      • 端口: 443
      • 勾选 启用 HSTS启用 HTTP/2 以提升安全性和性能。
    • 目的地 (Destination):
      • 协议: HTTP
      • 主机名: localhost 或你NAS的内网IP
      • 端口: 8088 (即你在 docker-compose.yml 中映射出来的端口)
  4. 配置SSL证书:在NAS的证书管理功能中,为你的 bw.yourname.com 域名申请一个免费的 Let’s Encrypt 证书,并将其配置给刚刚创建的反向代理规则。
  5. 启用WebSocket:在反向代理规则的“自定义标题”或“高级设置”中,添加对WebSocket的支持。这通常是通过添加特定的HTTP头来实现的,具体请参考你NAS的文档。

完成以上步骤后,你应该就可以通过 https://bw.yourname.com 来访问你的Vaultwarden服务了。


使用与安全加固

1. 创建你的主账户

浏览器访问 https://bw.yourname.com,你应该能看到Bitwarden的登录/注册界面。点击“创建账户”,完成你的主账户注册。请务必设置一个极其强大的主密码,并妥善保管,这是你所有密码的唯一钥匙!

2. 【重要】禁止新用户注册

一旦你和你的家人都完成了账户创建,必须立即禁止后续的公共注册,防止陌生人滥用。

  1. 回到NAS的SSH终端,进入 vaultwarden 目录。
  2. 编辑 docker-compose.yml 文件。
  3. SIGNUPS_ALLOWED 的值从 true 改为 false
    1
    2
    3
    4
    ...
    environment:
    - SIGNUPS_ALLOWED=false
    ...
  4. 保存文件,然后执行 docker-compose up -d 重启容器以应用新配置。

3. 配置客户端

现在,在你所有的设备上(电脑浏览器插件、手机App、桌面客户端)配置使用你自己的服务器:

  1. 下载并安装Bitwarden客户端。
  2. 在登录界面的左上角或右上角,找到一个齿轮图标(设置)。
  3. 点击它,进入“自建环境”设置。
  4. 在“服务器URL”一栏,填入你的域名:https://bw.yourname.com
  5. 保存后,返回登录界面,用你的主密码登录即可。

总结

恭喜你!你已经成功地将自己的数字身份命脉,牢牢地掌握在了自己手中。

通过在NAS上自建Bitwarden服务,你不仅以零成本享受了顶级的密码管理体验,更重要的是,你实践了数据私有化的核心理念。这十几分钟的“折腾”,换来的是长久的安全与安心,这无疑是一笔极其划算的投资。