metalnikovg.ru
MetalnikovG.ru

Vaultwarden - собственный менеджер паролей

Banner.png
Опубликовано
//
5 мин. чтения

Vaultwarden — это легкая сторонняя альтернатива более тяжелому официальному серверу Bitwarden, написанная на Rust. Благодаря своей легкости он отлично подходит для таких устройств, как Raspberry Pi или виртуального сервера с небольшим объемом памяти.

Bitwarden — это менеджер паролей с открытым исходным кодом, который позволяет вам размещать пароли самостоятельно, а не полагаться на облачные серверы.

Сервер Vaultwarden пытается поддерживать совместимость с основными функциями сервера Bitwarden. Официальный Vaultwarden Wiki перечисляет отсутствующие функции.

В этом руководстве мы используем Docker для запуска Vaultwarden, поскольку он делает весь процесс настройки невероятно простым. Помимо установки Docker, вам не нужно беспокоиться об установке какого-либо другого программного обеспечения для запуска этого сервера менеджера паролей.

Vaultwarden работает лучше всего, когда у вас есть доменное имя для вашего сервера. Это связано с тем, что для корректной работы клиентам нужен подписанный сертификат.

Хотя можно использовать самоподписанный сертификат, Bitwarden невероятно сложен в использовании. Вам придется добавлять сертификат на каждое используемое вами устройство.

Установка Docker

Обновляем пакеты

apt update && apt upgrade -y

Устанавливаем docker

bash <(curl -sSL https://get.docker.com)

Добавляем текущего пользователя в группу docker

sudo usermod -aG docker ${USER}

После выполнения команды выйдите из системы и войдите снова, чтобы изменения вступили в силу. Или используйте команду:

newgrp docker

Устанавливаем argon2

Для доступа в панель администратора Vaultwarden генерируются уникальный ключ, который в открытом виде храниться в файлах настроек сервера менеджера паролей. Данный ключ не дает доступа к данным конечных пользователей, но он позволяет нанести значительный вред системе вплоть до полной поломки. Разработчики Vaultwarden рекомендуют использовать программу argon2. Установим ее:

 apt install argon2

Установка и настройка менеджера паролей Vaultwarden

Создаем основную рабочую папку где будут располагаться файлы, в том числе зашифрованные базы данных. Для бекапа данных достаточно скопировать файлы данной директории и поместить в новый проект.

mkdir vaultwarden && cd vaultwarden

При первоначальной установке с базовыми настройками  vaultwarden генерирую пароль для панели администратора в виде большого ключа символов который храниться в открытом виде в файле конфигурации сервера. Для обеспечения безопасности сервера необходимо устанавливать сервер с заранее созданным паролем администратора. Более подробно можно почитать в официальной справке

Создадим зашифрованный пароль с использованием argon2

echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1

WARNING

Не используйте символ $ в пароле, в этом случае экранирование будет работать не корректно и вы не сможете войти в админ панель.

Результат вывода будет шифрованное представление пароля вида:

$argon2id$v=19$m=19456,t=2,p=1$YnV6N0lrZHZoOWpGdS9rcmdIWHR5RW1zQjJtVU4xdHhHNis2STVQN25uTT0$wEoFtCRQBcbayI6z+tVFZwV1mT2pXOLicEJdXq4st2w

Копируем полученный результат в файл параметров запуска vaultwarden

nano .env

Вставляем полученный ключ в файл с указанием параметра, не каких изменений в строку вносить не надо. Обязательно используйте свой пароль и свой результат шифрования для обеспечения безопасности!!!!

VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=19456,t=2,p=1$YnV6N0lrZHZoOWpGdS9rcmdIWHR5RW1zQjJtVU4xdHhHNis2STVQN25uTT0$wEoFtCRQBcbayI6z+tVFZwV1mT2pXOLicEJdXq4st2w'

Сохраняем файл.

Включение push-уведомлений мобильного клиента Vaultwarden

  1. Перейдите по ссылке https://bitwarden.com/host/ введите свой адрес электронной почты, и вы получите идентификатор УСТАНОВКИ и КЛЮЧ.
  2. Добавьте следующие настройки в свой docker-compose.yml (и убедитесь, что вы ввели правильный идентификатор и ключ из предыдущего шага):
environment:
  - PUSH_ENABLED=true
  - PUSH_INSTALLATION_ID=
  - PUSH_INSTALLATION_KEY=

NOTE

Если вы запросили идентификатор УСТАНОВКИ и КЛЮЧ для bitwarden.eu (European Union) на предыдущем шаге, вам также необходимо установить

- PUSH_RELAY_URI=https://api.bitwarden.eu
- PUSH_IDENTITY_URI=https://identity.bitwarden.eu

Создаем файл docker-compose

Создаем файл docker-compose

nano docker-compose.yaml
docker-compose.yaml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      - TZ=Europe/Moscow
      # - SIGNUPS_ALLOWED=false
      - ADMIN_TOKEN=${VAULTWARDEN_ADMIN_TOKEN}
      - PUSH_ENABLED=true
      - PUSH_INSTALLATION_ID=
      - PUSH_INSTALLATION_KEY=
      - PUSH_RELAY_URI=https://api.bitwarden.eu
      - PUSH_IDENTITY_URI=https://identity.bitwarden.eu
    volumes:
      - ./data:/data
    ports:
      - 8787:80

В папке /vaultwarden будут размещены основные файлы сервера vaultwarden в том числе зашифрованные базы данных паролей.

Запускаем контейнер

Теперь, мы можем запустить контейнер Vaultwarden с помощью следующей команды в терминале.

docker compose up -d

Доступ к веб-интерфейсу Vaultwarden

Для доступа к Vaultwarden с клиентских устройств я буду использовать NginxProxyManager и Cloudflare, как это настроить можно прочитать в этом [[Публикация локального сервера из дома в интернет|заметке]]

Фактически на данном этапе установка менеджера паролей закончена.

Создание учетной записи

После запуска контейнера, открываем Web интерфейс по адресу https://<DOMAINNAME>/#/login При первом доступе к Vaultwarden вам необходимо создать собственную учетную запись. Чтобы начать этот процесс, нажмите на ссылку Создать аккаунт.

vw_reg

На следующем этапе вам нужно будет заполнить информацию, которую вы хотите использовать для своей учетной записи.

Убедитесь, что вы используете безопасный пароль, так как именно там вы будете хранить пароли для всех ваших других учетных записей. Не используйте пароль, который вы использовали ранее.

Создав учетную запись, вы можете войти в систему и начать использовать Vaultwarden.

vw

Доступ в админ панель

Для доступа в админ панель перейдите на https://<DOMAINNAME>/admin

vw_admin
vw_admin1

Для входа используем пароль который указывали в команде шифрования пароля: MySecretPassword

Отключение регистрации

После того, как вы создали свою учетную запись, вы можете захотеть отключить регистрацию. По умолчанию Vaultwarden позволит регистрироваться любому человеку.

Останавливаем Docker контейнер Vaultwarden.

docker compose down

Открываем docker-compose.yaml и добавляем следующую строку в раздел environment:

- SIGNUPS_ALLOWED=false

После этого снова запускаем контейнер

docker compose up -d

Теперь при попытке зарегистрировать нового пользователя мы получаем ошибку

vw_reg_error

Настройка клиентов

В качестве клиента для мобильных устройств можно использовать официальное приложение Bitwarden, а для десктопных браузеров официальное расширение.

При подключении клиента выберите собственный хостинг и укажите его полный адрес.

WARNING

Push-уведомления будут работать только в приложениях Bitwarden, приобретенных в официальных мобильных магазинах (App Store, Google Play Store) или при использовании альтернативных клиентов для Google Play Store (например, Aurora Store). Push-уведомления не будут работать при использовании клиентов Bitwarden, установленных из F-Droid, Neo Store или других альтернативных магазинов. Эти приложения были созданы без поддержки Firebase Messaging. Чтобы обеспечить правильную работу push-уведомлений, убедитесь, что функция firebaseinstallations.googleapis.com не заблокирована, поскольку это необходимо для работы функции.

TIP

Проверьте, работают ли мобильные push-уведомления, например, переименовав папку в веб-хранилище, и посмотрите, изменится ли она через несколько секунд в вашем мобильном приложении.

Итог

Мы получили собственный менеджер паролей и теперь все ваши пароли будут храниться исключительно на вашем сервере. А получить доступ к ним вы сможете из любой точки мира.