Перейти к основному содержимому
Вернуться в категорию

Установка Vaultwarden: Самостоятельно размещаемый менеджер паролей

Установка Vaultwarden (совместимого с Bitwarden) через Docker, настройка HTTPS, панель администратора, управление организациями и коллекциями, использование с клиентами Bitwarden.

Время чтения: 13 мин Самостоятельный хостинг
vaultwardenbitwardenменеджер паролейself-hostingdockerбезопасность

Содержание

Установка Vaultwarden: Самостоятельно размещаемый менеджер паролей

Vaultwarden — это лёгкая альтернатива официальному серверу Bitwarden, написанная на Rust и поддерживаемая сообществом. По сравнению с официальным сервером Bitwarden он потребляет значительно меньше ресурсов и полностью совместим со всеми клиентами Bitwarden (веб, десктоп, мобильный, расширение браузера). Размещая его на собственном сервере, вы сохраняете полный контроль над своими паролями.

Что такое Vaultwarden?

Vaultwarden (ранее bitwarden_rs) — это проект с открытым исходным кодом, который переосмысляет API Bitwarden на Rust. Ключевые особенности:

  • Низкое потребление ресурсов: Работает с 512 МБ ОЗУ
  • Совместимость с Bitwarden: Поддерживаются все официальные клиенты Bitwarden
  • Поддержка организаций: Бесплатное создание организаций и коллекций
  • Поддержка TOTP: Двухфакторная аутентификация
  • Web Vault: Веб-интерфейс, доступный через браузер
  • Функция Send: Безопасный обмен файлами и текстом

Системные требования

  • Сервер с установленными Docker и Docker Compose
  • Минимум 512 МБ ОЗУ
  • Действительное доменное имя (обязательно для HTTPS)
  • SSL-сертификат (рекомендуется Let's Encrypt)

Установка с Docker

Создание docker-compose.yml

hljs yaml
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: "надёжный-токен-администратора"
      WEBSOCKET_ENABLED: "true"
      LOG_LEVEL: "warn"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"
      - "127.0.0.1:3012:3012"
hljs bash
# Запустить контейнер
docker compose up -d

# Проверить логи
docker logs vaultwarden -f

Используйте надёжное и случайное значение для ADMIN_TOKEN. Безопасный токен можно сгенерировать командой openssl rand -base64 48.

Генерация токена администратора

hljs bash
# Сгенерировать безопасный токен администратора
openssl rand -base64 48

# Более безопасный токен с хешем Argon2 (рекомендуется)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp

Настройка Nginx Reverse Proxy и SSL

Поскольку Vaultwarden требует HTTPS, настройка обратного прокси Nginx обязательна.

Конфигурация Nginx

hljs nginx
server {
    listen 80;
    server_name vault.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name vault.example.com;

    ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 128M;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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;
    }

    location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:8080;
    }
}

SSL-сертификат Let's Encrypt

hljs bash
# Установить Certbot
apt install certbot python3-certbot-nginx -y

# Получить SSL-сертификат
certbot --nginx -d vault.example.com

# Тест автоматического обновления
certbot renew --dry-run

Настройка панели администратора

Доступ к панели администратора по адресу https://vault.example.com/admin.

Важные настройки администратора

hljs bash
# Отключить регистрацию после настройки
SIGNUPS_ALLOWED=false

# Разрешить регистрацию только для определённых доменов
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org

# Система приглашений
INVITATIONS_ALLOWED=true

# Верификация email
SIGNUPS_VERIFY=true

Настройка SMTP для email

hljs yaml
environment:
  SMTP_HOST: "smtp.gmail.com"
  SMTP_FROM: "vault@example.com"
  SMTP_PORT: "587"
  SMTP_SECURITY: "starttls"
  SMTP_USERNAME: "vault@example.com"
  SMTP_PASSWORD: "пароль-приложения"

Управление пользователями

Приглашение пользователей

Из панели администратора перейдите в UsersInvite User для отправки приглашений по email.

hljs bash
# Пригласить пользователя через CLI
docker exec vaultwarden /vaultwarden invite --email user@example.com

Создание организаций и коллекций

Организации в Vaultwarden бесплатны (платные в официальном Bitwarden):

  1. Войдите в веб-хранилище
  2. ОрганизацииНовая организация
  3. Введите название организации и платёжный email
  4. Используйте Коллекции для категоризации паролей
  5. Приглашайте участников и назначайте роли (Admin, Manager, User, Custom)

Подключение клиентов Bitwarden

Расширение браузера

  1. Установите расширение Bitwarden (Chrome, Firefox, Edge)
  2. Нажмите URL сервера на экране входа
  3. Введите https://vault.example.com
  4. Войдите в свою учётную запись

Мобильное приложение

1. Откройте приложение Bitwarden
2. Нажмите на выбор региона на экране входа
3. Выберите "Self-hosted"
4. URL сервера: https://vault.example.com
5. Сохраните и войдите

Резервное копирование

hljs bash
# Резервное копирование данных Vaultwarden
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/

# Скрипт автоматического резервного копирования
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup

Vaultwarden отлично работает на серверах REXE VPS. 1 ГБ ОЗУ и 1 vCPU достаточно для небольших команд.