[Информационная безопасность, Open source, Системное администрирование, Софт] Хостим Bitwarden — open-source менеджер паролей

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
10-Фев-2021 13:31


Менеджеры паролей действительно полезны и важны как для отдельных пользователей, так и для организаций, и они пригодятся, когда у вас много разных учетных записей и паролей. Обычно люди не любят пользоваться сторонними менеджерами паролей с сервисной архитектурой — неизвестно, что происходит с данными на чужом сервере, и не будет ли он скомпрометирован. Самое безопасное решение это разместить менеджер на своём собственном (как следует защищенном) сервере. Разумеется, к такому self-hosted варианту возникает много требований, и большой список решений с открытым исходным кодом довольно быстро сужается до нескольких известных, проверенных продуктов. Среди них мне больше всего нравится Bitwarden, и сейчас я объясню почему.
Каким должен быть идеальный менеджер паролей?
  • Разумеется, безопасным. Нельзя даже рассматривать не-опенсорсные варианты, ведь предназначение любого закрытого кода это сливать ваши данные или внедрять всякие неприятные штуки в систему. И пароли — лучшее место, чтобы дать волю паранойе, поэтому отметаем непопулярные продукты и форки, если нет желания читать все исходники целиком и собирать проект из исходников.
  • Второй очевидный и обязательный аспект безопасности — шифрование. Было бы глупо настроить супер-секьюрную систему на сервере и потерять пароли из-за MITMа злоумышленника или провайдера.
  • Бывает, что нужно хранить не только пароли. Важная и чувствительная информация может быть представлена в виде текста (например, токены), и этот текст должно быть удобно хранить в менеджере.
  • Любые данные могут использоваться несколькими людьми. Например, любые чувствительные данные, относящиеся к IT-инфраструктуре бизнеса, не могут быть доступны одному конкретному админу. Отсюда вытекает необходимость делиться защищёнными данными с несколькими аккаунтами в организации.
  • Особенно важный пункт для лично использования: кроссплатформенность. Мы используем одни и те же аккаунты с разных устройств, и в идеале менеджер паролей должен работать на всех возможных платформах и в как можно большем количестве браузеров и приложений.
  • Также для self-hosted хранилища нужно делать регулярные бекапы. И вообще было бы неплохо, чтобы вся система устанавливалась без лишнего геморроя. В конце концов, не все мы красноглазые героические админы и девопсы.

Обычно у айтишников (особенно, у повёрнутых на безопасности) возникают и более детальные, личные требования. Я привёл лишь те, которые кажутся мне самыми распространёнными и важными. И, конечно, Bitwarden удовлетворяет им всем, иначе я бы нашёл вариант получше. Вообще у него есть и сервисная часть, и даже платные планы, но базового функционала бесплатного плана нам вполне хватит. При этом self-hosted версия вообще никак не связана с серверами bitwarden.com (исходный код которых также открыт и проходит регулярные аудиты безопасности).
Разворачиваем свой инстанс
Bitwarden распространяется в виде пачки Docker-контейнеров и многофункционального скрипта для установки, настройки и управления инстансом. Всё работает из коробки, кроме одного — для подтверждения регистрации аккаунта сервер должен отправить email на указанный адрес. Кроме того, для доступа к админ-панели на электропочту админа отправляется временная ссылка для входа, поэтому помимо основной установки нам потребуется настроенный email-сервер. Почтовых серверов очень много, как и мануалов по их установке, останавливаться на их выборе я не буду — подойдёт любой send-only или полноценный вариант. Мне понравилось пользоваться docker-mailserver, в котором всё работает практически из коробки, поэтому для меня итоговая схема выглядит так:

Подготовка
В первую очередь нам понадобится docker и docker-compose:
#Docker engine
  sudo apt-get update
  sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/debian \
    $(lsb_release -cs) \
    stable"
  sudo apt-get update
  sudo apt-get install docker-ce docker-ce-cli containerd.io

#Docker-compose
  sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  sudo chmod +x /usr/local/bin/docker-compose

Затем, чтобы не работать из-под рута, создадим пользователя bitwarden и продолжим работу под ним:
sudo adduser bitwarden
  sudo passwd bitwarden

Создадим группу docker, если она ещё не существует, и добавим в неё пользователя:
sudo groupadd docker
  sudo usermod -aG docker bitwarden

Создадим рабочую директорию для bitwarden:
sudo mkdir /opt/bitwarden
  sudo chmod -R 700 /opt/bitwarden
  sudo chown -R bitwarden:bitwarden /opt/bitwarden

Установка
Скачаем и запустим установочный скрипт:
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \
    && chmod 700 bitwarden.sh
  ./bitwarden.sh install

Заполняем поля в установщике:
  • В качестве доменного имени можно указать любой адрес или домен, но в качестве стандарта принято использовать bitwarden.yourdomain.tld.
  • Можно использовать как существующий SSL-сертификат, так и сгенерировать новый, самоподписанный. На втором шаге будет предложено использовать Let's Encrypt.
  • Дальше установщик запросит id и ключ установки. Их нужно получить на bitwarden.com/host, указав контактный email (подтверждение не требуется).

Вскоре на указанном домене будет создан и запущен работающий инстанс Bitwarden, но нам ещё нужно настроить почту. Устанавливаем и конфигурируем почтовый сервер, затем отправляемся редактировать файл /opt/bitwarden/bwdata/env/global.override.env (с заменой всех плейсхолдеров, разумеется):
globalSettings__mail__replyToEmail=no-reply@bitwarden.yourdomain.tld
  globalSettings__mail__smtp__host=smtp.example.com
  globalSettings__mail__smtp__username=root_email_username
  globalSettings__mail__smtp__password=p@ssword
  globalSettings__mail__smtp__ssl=true
  globalSettings__mail__smtp__port=587
  globalSettings__mail__smtp__useDefaultCredentials=false
  adminSettings__admins=admin_email_username@example.com

После любых изменений в конфигах нужно пересобрать сервис:
./bitwarden.sh rebuild

Использование
Теперь всё готово к работе с менеджером и можно отправляться в веб-интерфейс регистрироваться. После регистрации нас сразу пустит в рабочую панель, но для синхронизации данных между устройствами нужно будет подтвердить email:

После подтверждения аккаунт становится доступен для входа с других устройств. Во всех клиентах Bitwarden (десктопные и мобильные приложения, веб-интерфейсы, расширения) есть кнопка настроек в углу, где мы указываем адрес нашего инстанса:

Бэкапы
Вариантов настройки бэкапов много, но как минимум нам надо сохранять всё содержимое папки /opt/bitwarden/bwdata. При этом Bitwarden сам ежедневно бэкапит содержимое ./bwdata/mssql/data, где хранится база данных. Для восстановления данных нужно вытащить пароль к бд из global.override.env (значение в строке globalSettings__sqlServer__connectionString=...Password=), подключиться к контейнеру bitwarden-mssql и найти нужный файл для бэкапа (по дате в названии):
docker exec -it bitwarden-mssql /bin/bash

Запускаем sqlcmd:
/opt/mssql-tools/bin/sqlcmd -S localhost -U user -P password

Вместо user и password подставляем значения User= и Password= из global.override.env
В открывшейся оболчке выполняем следующие команды:
1> use master
  2> GO
  1> alter database vault set offline with rollback immediate
  2> GO
  1> restore database vault from disk='/etc/bitwarden/mssql/backups/vault_FULL_{Backup File Name}.BAK' with replace
  2> GO
  ​1> alter database vault set online
  2> GO
  1> exit

Обязательно перезапускаем инстанс:
./bitwarden.sh restart

Заключение
Для self-hosted версии доступен полноценный функционал кроссплатформенного менеджера паролей. Все изменения синхронизируются между клиентами, а данные можно раздавать пользователям в своей организации. Вся установка занимает минут 10-15, и сервис почти никогда не требует администрирования — настроил и забыл. Я считаю, это очень круто. Приятного пользования!
На правах рекламы
Для размещения Bitwarden, а также для множества других целей и задач, вы можете использовать наши легендарные эпичные серверы. Большое количество преимуществ: современное железо с процессорами AMD Epyc, защита от DDoS-атак из коробки, возможность автоматически или вручную создать резервные копии в виде снимков сервера, удобная панель управления серверами собственной разработки. Эпичненько.

оригинал
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_open_source, #_sistemnoe_administrirovanie (Системное администрирование), #_soft (Софт), #_menedzher_parolej (менеджер паролей), #_bitwarden, #_open_source, #_blog_kompanii_vdsina.ru (
Блог компании VDSina.ru
)
, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
, #_open_source, #_sistemnoe_administrirovanie (
Системное администрирование
)
, #_soft (
Софт
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 05-Окт 19:28
Часовой пояс: UTC + 5