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

Как хранить ваши логины, пароли, карты и прочею важную информацию у вас на Synology с помощью менеджера паролей с открытым исходным кодом Bitwarden.

Bitwarden — это универсальный менеджер паролей с открытым исходным кодом. У Bitwarden есть приложения под любую платформу для ПК, телефонов, Web версия и даже командная строка. Bitwarden можно развернуть в облачном сервисе или локально. Последнее как раз и интересует.

Я прекрасно понимаю людей, которые сейчас начинают строчить, мол, хранить пароли нужно в голове или на листочке и никогда не пользоваться менеджерами паролей. Могу посоветовать таким людям выкинуть все свои гаджеты, переехать в пещеру и разводить огонь трением или камушками. Вы же не хотите ничего нового и пользоваться современными средствами, поэтому вам самое место в пещере и ездить на лошадях с луками и стрелами.

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

Плюсы

  • Открытый исходный код
  • Одна установка для множества независимых учетных записей
  • Клиент поддерживает несколько учетных записей на разных серверах

Единственный аудит безопасности этого открытого исходного кода был в 2018 году. Информация об этом аудите проведенном компанией Cure53. Так же есть отчет безопасности, который выкладывают разработчики Bitwarden на своем сайте. Наверно это лучше, чем ничего, но как по мне явно мало.

Минусы

  • Сложная установка
  • Потребляет много памяти
  • Нет контроля доступа. Если кто-то начнет подбирать пароль, то этого не узнать. Надежда только на сложный пароль и двухфакторную аутентификацию. 
  • Система не видит реальные IP, только 172.ХХ.0.1
  • Синхронизация работает странно и не понятно как.
  • Нужные, но не обязательные функции, только по подписке (отправка файлов, скомпрометированные пароли, одинаковые пароли, слабые пароли и т.д)
  • Нельзя купить пожизненную лицензию
  • Скудный интерфейс в программах, упор на WEB
  • Практически невозможно использовать парольную фразу на русском языке

Сейчас у меня куплена пожизненная лицензия Enpass и этот менеджер паролей я считаю лучшим. Но если рассмотреть вторе место, то оно однозначно за Bitwarden.

Я долго изучал официальную и не официальные инструкции по установке Bitwarden и сделал для себя несколько выводов. Во-первых, все ставят Bitwarden с базой данный MariaDB. Я не понимаю зачем, так как Bitwarden поддерживает множество вариантов: MSSQL, PostgreSQL, SQLite, and MySQL/MariaDB. Поэтому для дома я рекомендую использовать SQLite для экономии ресурсов и простоты установки. Этот вариант так же есть в официальной документации. Во вторых, этот способ установки в контейнер Docker все еще находится на стадии Beta и нужно это учитывать. Но других вариантов установки Bitwarden на Synology нет. Поэтому ставим Beta без вариантов.

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

  • Не менее 200 МБ оперативной памяти (я рекомендую минимум 1ГБ)
  • Хранение 1 ГБ
  • DSM 7.2 и Container Manager
  • Наличие белого IP адреса динамического или статического для доступа через интернет
  • На роутере должен быть проброшен порт TCP 443 в Synology
  • Я буду использовать DDNS от Synology и буду считать, что у вас уже это все настроено и получен сертификат SSL.

Можно использовать и собственное доменное имя, тут разницы никакой нет, главное, что бы для домена bitwarden был рабочий проверенный сертификат SSL

Забегая вперед посмотрите сколько потребляет моя установка. Так что рассчитывайте на похожие результаты у себя, если вы решитесь установить Bitwarden на свой Synology NAS.

Конечно можно принудительно уменьшить ОЗУ лимитом до 200М, я проверял, работает, но начинаются проблемы с синхронизацией и постоянные вылеты из сессии.

У меня есть статья по установке Vaultwarden на Synology. Vaultwarden это форк, он полностью бесплатен и потребляет намного меньше ресурсов

Начнем установку

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

В папку bitwarden нужно загрузить файл settings_sqllite.env следующего содержания, но предварительно поставить нужные значения переменных:

#####################
# Required Settings #
#####################

# Server hostname
BW_DOMAIN=bitwarden.domen.synology.me

# Database SQLite
BW_DB_PROVIDER=sqlite
#BW_DB_FILE=/path/to/.db

# Installation information
# Get your ID and key from https://bitwarden.com/host/
BW_INSTALLATION_ID=00000000-0000-0000-0000-000000000000
BW_INSTALLATION_KEY=xxxxxxxxxxxx

#####################
# Optional Settings #
#####################
# Learn more here: https://bitwarden.com/help/environment-variables/

# Webserver ports
#BW_PORT_HTTP=8080
#BW_PORT_HTTPS=8443

# Mail
globalSettings__mail__replyToEmail=mail-admin
globalSettings__mail__smtp__host=smtp-server
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=username-mail
globalSettings__mail__smtp__password=password-mail

# Other
globalSettings__disableUserRegistration=false
#globalSettings__hibpApiKey=REPLACE
#adminSettings__admins=admin1@email.com,admin2@email.com
  • BW_DOMAIN=bitwarden.domen.synology.me – укажите ваш домен четвертого уровня, где bitwarden это придуманное имя, а domen.synology.me это имя вашего DDNS
  • BW_INSTALLATION_ID=00000000-0000-0000-0000-000000000000 и BW_INSTALLATION_KEY=xxxxxxxxxxxx нужно получить на сайте https://bitwarden.com/host/

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

Данные ниже можно получить в справке вашей почтовой службы: Яндекс, mail.ru, google

  • globalSettings__mail__replyToEmail=mail-admin – почта отправителя, укажите вашу почту
  • globalSettings__mail__smtp__host=smtp-server – сервер smtp вашей почтовой службы
  • globalSettings__mail__smtp__port=587 – порт smtp с SSL шифрованием, может принимать значения 465 или 587
  • globalSettings__mail__smtp__ssl=false – методы шифрования false=TLS true=SSL
  • globalSettings__mail__smtp__username=username-mail – логин вашей почтовой службы
  • globalSettings__mail__smtp__password=password-mail – пароль от почтовой службы

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

Открываем Container Manager, проекты и создаем новый проект. Придумываем ему имя, выбираем его корневую папку /docker/bitwarden, которая была создана ранее и создать docker-compose.yml

Нужно вставить yml следующего содержания:

---
version: "3.8"

services:
  bitwarden:
    env_file:
      - ./settings_sqllite.env
    image: bitwarden/self-host:beta
    restart: always
    mem_limit: 2000m
    ports:
      - "8080:8080"
    volumes:
      - ./data:/etc/bitwarden

volumes:
  data:

Разработчики рекомендуют выставить mem_limit: 200m, но я выяснил, что это слишком мало, так как контейнер расходует около 1 гигабайта оперативной памяти, хотя в среднем обычно у меня 500-600 мегабайт. Но как не крути 200 мегабайт рекомендованных слишком мало.

Жмем далее и на этапе подключения портала Web Station можно ничего не выбирать

На заключительном этапе все проверяем и жмем выполнить

Начнется процесс создания контейнера из проекта, вам ничего делать не нужно, только ждать окончания.

Exit Code 0 означает, что проект успешно создался, можно закрывать это окно. Если выйдет ошибка проверяйте наличие нужных папок и их правильные названия.

Настройка фаервола

В процессе создания контейнера из проекта будет создан новый bridge для него. Если у вас настроен фаервол на Synology, то эту сеть нужно разрешить на нем. Сети меняются, поэтому сначала зайдите, узнайте какая сеть и разрешите ее в фаерволе Synology.

SSL сертификат

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

Открываете панель управления, портал для входа, вкладка дополнительно, обратный прокси и создаете такой, как показано на картинке ниже.

Суть в том, что бы при запросе на защищенный порт https 443 данные перенаправлялись на незащищенный порт http 8080 контейнера bitwarden.

Но не забудьте перейти на вкладку пользовательский заголовок и добавить WebSocket как показано на картинках ниже

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

Сертификаты DDSN synology содержат все поддомены 4 уровня *.domen.synology.me Поэтому эти сертификаты нам полностью подходят для Bitwarden

Когда все сделали можно подключаться к вашему Bitwarden по доменному имени, у меня это https://bitwarden.hren285.synology.me (мой пример, используйте свое значение)

Для начала нужно создать первый аккаунт в вашем личном Bitwarden. Укажите реальную почту, придумайте имя и надежный мастер пароль, а так же подсказку к нему.

Учтите, что мастер пароль восстановит невозможно, не забывайте его.

После создания аккаунта на почту придет уведомление, если вы правильно настроили SMTP параметры в файле переменных. Но если нет, то в настройках контейнера их можно подправить.

Войдите в вашу учетную запись и увидите такое окно

Я рекомендую подтвердить вашу почту нажатием кнопки отправить email. На почту должно прийти такое письмо, нажмите на кнопку для подтверждения

После подтверждения почты нужно заново зайти в web интерфейс bitwarden и у вас будет полнофункциональная бесплатная версия.

Далее рекомендую включить двухэтапную аутентификацию, это очень сильно обезопасит ваш аккаунт.

Но это не все. Наша установка Bitwarden позволяет любому создавать аккаунты на нашем сервере. Это не хорошо. Поэтому это нужно отключить после того как вы создали нужные вам аккаунты.

Для этого в Container Manager откройте контейнер и остановите его.

Затем в настройках найдите параметр globalSettings__disableUserRegistration и замените его с false (разрешить создание аккаунтов) на true (запретить создание аккаунтов). Не забудьте применить изменения и запускайте контейнер.

Когда контейнер Bitwarden загрузится попробуйте создать еще один аккаунт. У вас должна выйти ошибка, значит все в порядке.

Теперь давайте подключим первого клиента. На ПК, на телефоне, да в общем на любом устройстве все будет выглядеть примерно одинаково. Вам нужно просто добавить собственный сервер

Впишите только URL адрес вашего сервера Bitwarden, в моем случае это https://bitwarden.hren285.synology.me

Дальше введите почту и мастер пароль, после чего откроется окно менеджера паролей Bitwarden установленного на вашем Synology

Все ваши пароли будут храниться на Synology в базе SQLlite в файле vault.db. Не забывайте делать резервные копии этого каталога.

На этом все, устанавливайте Bitwarden на ваши ПК, телефоны и расширения в браузер, настраивайте как вам нравится, а все пароли будут лежать в надежном хранилище Synology NAS зашифрованные надежным мастер паролем.

Подписаться
Уведомить о
guest
23 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии