Bitwarden 是一款开源的密码管理器,其功能主要有账号密码管理、自动生成密码、导出所有密码、密码自动填充、方便切换多个账号等。而 Vaultwarden 是一个使用 Rust 编写的非官方 Bitwarden 服务器实现,它与官方 Bitwarden 客户端兼容,且支持更多的系统平台和架构。本文介绍如何在群晖 Synology DSM 上部署安装 Bitwarden 密码管理器,将重要的个人密码托管在自己的服务器上。

bitwarden.png

启用 SSH 服务

进入 DSM 控制面板 > 终端机和 SNMP > 终端机,勾选启用 SSH 服务。指定 SSH 连接的端口号并保存设置。为了确保系统安全性,建议将默认端口 22 替换为其他端口号。更多详见 -->《群晖 Synology 如何获取 root 权限?》

Docker 部署

# 创建目录,用于存放 vaultwarden 数据
mkdir -p /volume1/docker/vw-data

# 下载 docker 最新镜像
docker pull vaultwarden/server:latest

# 创建并运行容器(完整命令)
docker run -d --name bitwarden \
  -v /volume1/docker/vw-data:/data/ \
  -p 8080:80 \
  -p 3012:3012 \
  -e SIGNUPS_ALLOWED=false \ 
  -e WEBSOCKET_ENABLED=true \
  -e INVITATIONS_ALLOWED=false \
  -e ADMIN_TOKEN=随机字符串 \
  -e DOMAIN=https://yourdomain.com:7878 \
  --restart=always \
vaultwarden/server:latest

参数选项:

  • 变量-e SIGNUPS_ALLOWED=false,禁止注册。
  • 如需开放注册、配置SMTP邮箱发信等,需要在 /admin 管理页面内进行设置,而启用 admin 管理页面,需要配置变量 -e ADMIN_TOKEN=随机字符串(随机字符串可通过运行 openssl rand -base64 16 命令生成一个)。访问 /admin 进入管理页面需要输入已定义的字符串才能进入。
  • 配置变量-e WEBSOCKET_ENABLED=true以启用 WebSocket 连接,保持服务端与客户端实时同步。
  • 配置变量-e DOMAIN=你的域名:端口,懂得都懂 44380 端口被禁用。

更多参数配置,请访问 --> 官方WIKI

部署SSL证书

详细教程,请参考《群晖 Synology 部署 ZeroSSL 泛域名证书》

反向代理/启用HTTPS

创建 Nginx 配置文件

# 进入目录
cd /etc/nginx/sites-enabled

# 编辑文件
vim bitwarden.server.conf

示例配置:

server {
    # 可替换为其它可用端口,前提是已做好端口映射和防火墙开放行
    listen 7878 ssl http2;

    # 替换为自己的域名
    server_name yourdomain.com;

    ssl_certificate /usr/syno/etc/certificate/system/default/fullchain.pem;
    ssl_certificate_key /usr/syno/etc/certificate/system/default/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:SSLCipherSuiteECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256;';

    # 非443端口强制跳转https,注意不可有其他跳转
    error_page 497 301 https://$http_host$request_uri;

    # 反向代理
    location / {
        proxy_http_version 1.1;
        proxy_set_header "Connection" "";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:8080;
    }

    location /notifications/hub {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Forwarded $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:3012;
    }

    location /notifications/hub/negotiate {
        proxy_http_version 1.1;
        proxy_set_header "Connection" "";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:8080;
    }

}

重载 Nginx 服务

# DSM 6.x 系统
synoservice --reload nginx

# DSM 7.x 系统
systemctl reload nginx

首次使用 Bitwarden 需要创建账号,浏览器访问 https://域名.com:端口/admin,输入预先配置的 ADMIN_TOKEN 值,进入管理页面,优先配置 SMTP 邮箱发信后,重新回到首页通过创建账号进行登录。


相关推荐

  1. 在群晖 Synology 上搭建 Bark 消息推送服务器
  2. 群晖 Synology 部署 ZeroSSL 泛域名证书
  3. Dozzle - docker 容器实时日志查看器
  4. Send - 自建临时文件分享平台
  5. WallaBag - 开源网络书签、稍后阅读工具
  6. DIUN:一款友好的 Docker 镜像更新通知程序
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/5218.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。