- PVSM.RU - https://www.pvsm.ru -
Менеджеры паролей действительно полезны и важны как для отдельных пользователей, так и для организаций, и они пригодятся, когда у вас много разных учетных записей и паролей. Обычно люди не любят пользоваться сторонними менеджерами паролей с сервисной архитектурой — неизвестно, что происходит с данными на чужом сервере, и не будет ли он скомпрометирован. Самое безопасное решение это разместить менеджер на своём собственном (как следует защищенном) сервере. Разумеется, к такому self-hosted варианту возникает много требований, и большой список решений с открытым исходным кодом довольно быстро сужается до нескольких известных, проверенных продуктов. Среди них мне больше всего нравится Bitwarden, и сейчас я объясню почему.
Обычно у айтишников (особенно, у повёрнутых на безопасности) возникают и более детальные, личные требования. Я привёл лишь те, которые кажутся мне самыми распространёнными и важными. И, конечно, Bitwarden удовлетворяет им всем, иначе я бы нашёл вариант получше. Вообще у него есть и сервисная часть, и даже платные планы, но базового функционала бесплатного плана нам вполне хватит. При этом self-hosted версия вообще никак не связана с серверами bitwarden.com (исходный код которых также открыт и проходит регулярные аудиты безопасности).
Bitwarden распространяется в виде пачки Docker-контейнеров и многофункционального скрипта для установки, настройки и управления инстансом. Всё работает из коробки, кроме одного — для подтверждения регистрации аккаунта сервер должен отправить email на указанный адрес. Кроме того, для доступа к админ-панели на электропочту админа отправляется временная ссылка для входа, поэтому помимо основной установки нам потребуется настроенный email-сервер. Почтовых серверов очень много, как и мануалов по их установке, останавливаться на их выборе я не буду — подойдёт любой send-only или полноценный вариант. Мне понравилось пользоваться docker-mailserver [1], в котором всё работает практически из коробки, поэтому для меня итоговая схема выглядит так:
В первую очередь нам понадобится 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, но нам ещё нужно настроить почту. Устанавливаем и конфигурируем почтовый сервер, затем отправляемся редактировать файл /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, а также для множества других целей и задач, вы можете использовать наши легендарные эпичные серверы [3]. Большое количество преимуществ: современное железо [4] с процессорами AMD Epyc, защита от DDoS-атак из коробки, возможность автоматически или вручную создать резервные копии в виде снимков сервера, удобная панель управления серверами [5] собственной разработки. Эпичненько.
Автор: Mikhail
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/361478
Ссылки в тексте:
[1] docker-mailserver: https://github.com/docker-mailserver/docker-mailserver
[2] bitwarden.com/host: https://bitwarden.com/host/
[3] эпичные серверы: https://vdsina.ru/cloud-servers?partner=habr250
[4] современное железо: https://habr.com/ru/company/vdsina/blog/514570/
[5] панель управления серверами: https://habr.com/ru/company/vdsina/blog/460107/
[6] Источник: https://habr.com/ru/post/540574/?utm_source=habrahabr&utm_medium=rss&utm_campaign=540574
Нажмите здесь для печати.