بلاگ/راه‌اندازی Vaultwarden روی سرور مجازی و اختصاصی: مدیر رمز عبور خودمیزبان سازگار با Bitwarden
به‌روز شده

راه‌اندازی Vaultwarden روی سرور مجازی و اختصاصی: مدیر رمز عبور خودمیزبان سازگار با Bitwarden

1405/06/250 بازدید
راه‌اندازی Vaultwarden روی سرور مجازی و اختصاصی: مدیر رمز عبور خودمیزبان سازگار با Bitwarden

راه‌اندازی Vaultwarden روی سرور مجازی و اختصاصی: مدیر رمز عبور خودمیزبان سازگار با Bitwarden

نگهداری صدها رمز عبور در مرورگر یا روی کاغذ دیر یا زود به مشکل امنیتی تبدیل می‌شود. Bitwarden یکی از محبوب‌ترین مدیرهای رمز عبور است، اما نسخه ابری آن یعنی سپردن اطلاعات به سرورهای شرکت دیگری. Vaultwarden پاسخ این نگرانی است: پیاده‌سازی سبک و متن‌باز سرور Bitwarden به زبان Rust که کاملاً با اپلیکیشن‌ها و افزونه‌های رسمی Bitwarden سازگار است، اما روی سرور خودتان اجرا می‌شود.

در این راهنما مراحل نصب Vaultwarden با Docker، تنظیم HTTPS و اتصال اپلیکیشن‌های موبایل و دسکتاپ Bitwarden به آن را روی یک سرور مجازی یا اختصاصی توضیح می‌دهیم.

Vaultwarden چیست و چه تفاوتی با Bitwarden دارد؟

سرور رسمی Bitwarden با دات‌نت نوشته شده و برای اجرا به چندین سرویس و حافظه قابل توجه نیاز دارد. Vaultwarden همان API را با Rust بازنویسی کرده و روی یک سرور با منابع محدود هم به‌راحتی اجرا می‌شود.

نکته مهم: Vaultwarden پروژه‌ای مستقل است، نه محصول رسمی شرکت Bitwarden. پروتکل و فرمت داده سازگار است، پس تمام کلاینت‌های رسمی Bitwarden (مرورگر، موبایل، دسکتاپ، CLI) بدون تغییر با آن کار می‌کنند؛ فقط آدرس سرور را در تنظیمات کلاینت به آدرس Vaultwarden خودتان تغییر می‌دهید.

چرا مدیر رمز عبور را خودمیزبان کنید؟

  • داده‌های رمزنگاری‌شده رمزهای عبور روی زیرساخت خودتان می‌ماند، نه روی سرور شخص ثالث.
  • امکان استفاده رایگان از ویژگی‌هایی مثل Organizations و اشتراک‌گذاری تیمی که در Bitwarden Cloud نیازمند اشتراک پولی است.
  • کنترل کامل روی بک‌آپ، زمان‌بندی به‌روزرسانی و سیاست‌های دسترسی.

در مقابل، مسئولیت نگهداری، امنیت و در دسترس بودن سرور هم به عهده خودتان می‌افتد؛ این تبادل را باید آگاهانه انتخاب کرد.

پیش‌نیازها

انتخاب سرور مناسب

Vaultwarden به منابع سنگینی نیاز ندارد. یک سرور مجازی با ۱ هسته پردازنده و ۱ تا ۲ گیگابایت رم برای استفاده شخصی یا تیم کوچک کافی است. برای تیم‌های بزرگ‌تر یا وقتی سرویس‌های دیگری هم روی همان ماشین اجرا می‌شود، سرور اختصاصی یا یک VPS با منابع بالاتر گزینه مطمئن‌تری است. اگر هنوز سروری انتخاب نکرده‌اید، چک‌لیست خرید سرور مجازی نکات لازم برای مقایسه گزینه‌ها را جمع کرده است.

دامنه و DNS

برای استفاده از اپلیکیشن‌های موبایل و دسکتاپ Bitwarden، سرور باید از طریق HTTPS و یک دامنه معتبر در دسترس باشد (مثلاً vault.example.com). یک رکورد A به IP سرور اضافه کنید (مروری بر نحوه کار DNS در صورت نیاز) و قبل از ادامه، از رزولوشن درست آن مطمئن شوید.

نصب Docker و Docker Compose

روی توزیع‌های مبتنی بر Ubuntu/Debian:

curl -fsSL https://get.docker.com | sh
sudo apt install docker-compose-plugin -y

نصب Vaultwarden با Docker

نمودار معماری Vaultwarden: اتصال کلاینت Bitwarden از طریق HTTPS و ریورس‌پراکسی به کانتینر Docker Vaultwarden و ولوم داده

ساخت فایل docker-compose.yml

یک دایرکتوری برای پروژه بسازید و فایل زیر را در آن قرار دهید:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      - DOMAIN=https://vault.example.com
      - SIGNUPS_ALLOWED=false
      - WEBSOCKET_ENABLED=true
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"

تنظیم متغیرهای محیطی مهم

  • DOMAIN: آدرس نهایی سرور با HTTPS؛ بدون این مقدار، اتصال از طریق برخی کلاینت‌ها با خطا مواجه می‌شود.
  • SIGNUPS_ALLOWED: بعد از ساخت اولین حساب کاربری آن را روی false بگذارید تا ثبت‌نام باز نماند.
  • WEBSOCKET_ENABLED: برای همگام‌سازی لحظه‌ای بین دستگاه‌ها لازم است.
  • ADMIN_TOKEN: برای دسترسی به پنل مدیریت (/admin) یک توکن قوی تعریف کنید؛ بدون این متغیر، پنل مدیریت غیرفعال است.

اجرای کانتینر

docker compose up -d

با docker compose logs -f vaultwarden می‌توانید از بالا آمدن درست سرویس مطمئن شوید. در این مرحله سرویس فقط روی 127.0.0.1:8080 در دسترس است؛ دسترسی عمومی از طریق ریورس‌پراکسی در مرحله بعد اضافه می‌شود.

راه‌اندازی HTTPS با ریورس‌پراکسی

Vaultwarden نباید مستقیماً بدون HTTPS در معرض اینترنت قرار بگیرد؛ برخی ویژگی‌های کلاینت‌های Bitwarden (مثل کیبورد امن موبایل) بدون HTTPS معتبر کار نمی‌کنند. ساده‌ترین راه استفاده از Caddy است که گواهی Let's Encrypt را خودکار می‌گیرد و تمدید می‌کند.

فایل Caddyfile:

vault.example.com {
    reverse_proxy 127.0.0.1:8080
}

اگر ترجیح می‌دهید از Nginx استفاده کنید، یک بلاک server با proxy_pass http://127.0.0.1:8080 تعریف کرده و گواهی را با certbot صادر کنید (نمونه کامل در آموزش گواهی SSL با Let's Encrypt در اوبونتو). در هر دو حالت پورت‌های ۸۰ و ۴۴۳ باید در فایروال سرور باز باشند.

اتصال اپلیکیشن‌های Bitwarden به سرور

  1. اپلیکیشن Bitwarden (مرورگر، موبایل یا دسکتاپ) را نصب کنید.
  2. قبل از ورود، در صفحه Login گزینه «Self-hosted» یا آیکون تنظیمات را باز کنید.
  3. آدرس https://vault.example.com را به‌عنوان Server URL وارد کنید.
  4. حساب کاربری بسازید و وارد شوید؛ از این پس همگام‌سازی با همین سرور انجام می‌شود.

بک‌آپ‌گیری و نگهداری

تمام داده‌ها (رمزهای رمزنگاری‌شده، پیوست‌ها، پایگاه‌داده SQLite پیش‌فرض) در پوشه vw-data قرار دارد. کافی است این پوشه را به‌صورت دوره‌ای فشرده و به یک مقصد جدا از سرور اصلی منتقل کنید:

tar czf vw-backup-$(date +%F).tar.gz ./vw-data

برای به‌روزرسانی، ایمیج جدید را pull کرده و کانتینر را مجدداً بالا بیاورید:

docker compose pull && docker compose up -d

قبل از هر به‌روزرسانی مهم، حتماً یک بک‌آپ تازه از vw-data تهیه کنید.

مقایسه Vaultwarden خودمیزبان با Bitwarden Cloud

انتخاب بین دو گزینه به میزان زمانی که می‌خواهید صرف نگهداری سرور کنید و اهمیت کنترل کامل روی داده‌ها بستگی دارد.

ویژگیVaultwarden (خودمیزبان)Bitwarden Cloud
محل نگهداری دادهسرور شماسرور Bitwarden
هزینه ماهانهفقط هزینه سروررایگان (محدود) یا پولی برای امکانات تیمی
Organizations و اشتراک‌گذاری تیمیرایگان و بدون محدودیت کاربرنیازمند پلن پولی
نگهداری و به‌روزرسانیبر عهده شمابر عهده Bitwarden
در دسترس بودنوابسته به آپ‌تایم سرور شماSLA شرکت Bitwarden
سازگاری با کلاینت‌های رسمیکاملکامل

نکات امنیتی تکمیلی

  • ثبت‌نام عمومی را غیرفعال نگه دارید و فقط از طریق دعوت ادمین حساب بسازید.
  • برای پنل /admin یک ADMIN_TOKEN طولانی و تصادفی تعیین کنید و در صورت امکان دسترسی به آن را با فایروال یا IP allowlist محدود کنید.
  • ورود دومرحله‌ای (2FA) را روی حساب کاربری خودتان در Vaultwarden فعال کنید، جدا از رمز اصلی.
  • سرور را پشت فایروال قرار دهید و فقط پورت‌های ۸۰ و ۴۴۳ را برای HTTPS باز بگذارید (راهنمای راه‌اندازی فایروال nftables برای تنظیم قوانین).

جمع‌بندی

Vaultwarden راهی سبک و عملی برای داشتن مدیر رمز عبور خودمیزبان است، بدون اینکه سازگاری با اپلیکیشن‌های رسمی Bitwarden را از دست بدهید. با Docker Compose و یک ریورس‌پراکسی برای HTTPS، کل نصب در کمتر از نیم ساعت تمام می‌شود؛ نگهداری بعدی هم به بک‌آپ دوره‌ای و pull کردن ایمیج جدید خلاصه می‌شود.

اگر به خودمیزبانی سرویس‌های دیگر هم علاقه دارید، راه‌اندازی n8n روی سرور مجازی و اختصاصی با Docker الگوی مشابهی از نصب، HTTPS و نگهداری را دنبال می‌کند.

اگر هنوز سروری برای این کار ندارید، می‌توانید از سرورهای مجازی آریانت شروع کنید:

مشاهده سرورهای مجازی آریانت