Bitwarden — это бесплатный менеджер паролей с открытым исходным кодом. Он предназначен для хранения секретной информации внутри зашифрованного хранилища.
Менеджер написан на C# с применением .NET Core и ASP.NET Core, а его база данных основана на T-SQL/SQL Server.
Если конкретнее, Bitwarden представляет собой облачный сервис, доступ к которому осуществляется через различные клиентские приложения,что обеспечивает кроссплатформенность: сайт, десктопное (Windows, MacOS, Linux) или мобильное приложение, расширение браузера (Chrome, Firefox, Safari, Edge, Opera, Vivaldi, Brave, Tor) или просто через интерфейс командной строки.
Основной мотивацией использовать Bitwarden можно считать неуверенность в сторонних менеджерах паролей, в которых конфиденциальные данные размещаются на чужом сервере. Поэтому более лучшим решением считается размещение менеджера на собственном защищенном сервере.
Bitwarden — одно из таких решений. Он позволяет разместить защищенное хранилище на локальной машине пользователя, что вкупе с другими достоинствами делает его довольно популярным.
Bitwarded основывается на группе контейнеров, каждый из которых содержит отдельный функциональный компонент менеджера — например, базу данных или веб-сервер.
Следовательно, установка и работа менеджера требует систему контейнеризации — в данном случае ей является Docker.
Вот краткий список особенностей Bitwarden:
- Open-source
- Bitwarden построен на 256-битном стандарте шифрования AES для защиты пользовательских данных
- Поддержка двухфакторной авторизации
- Система проверки и аудита паролей
- Поддержка биометрической аутентификации
- Возможность локального размещения сервера
- Кроссплатформенные клиентские приложения на всех популярных платформах
VDS и VPS
биллингом по всему миру: Россия, Азия и Европа.
Перед установкой Bitwarden в Docker
В данной статье будут использоваться команды для UNIX-подобных операционных систем (если конкретнее, то Debian/Ubuntu), т.к. именно они чаще всего используются при развертывании серверных приложений.
Поэтому, перед установкой и настройкой Bitwarden-a сперва нужно убедиться, что все необходимые пакеты операционной системы установлены и обновлены:
Если ваша серверная машина еще «свежая», то рекомендуется заранее установить некоторые инструменты:
И хотя не все они будут использоваться явно, они необходимы для корректной установки, запуска и работы менеджера.
В дальнейшем подключение к серверу Bitwarden будет выполняться через IP-адрес. Впрочем, вам никто не запрещает использовать доступ по SSL через доменное имя, если оно у вас есть.
Достаточно установить соответствующую запись А в DNS-редакторе вашего провайдера, после чего актуальный домен станет доступен для Bitwarden.
В отдельной инструкции Timeweb Cloud есть подробное объяснение того, как через веб-панель можно редактировать DNS-записи.
1. Установка Docker и его компонентов
Так как мы собираемся использовать Docker для развертывания менеджера, нам сперва потребуется добавить его ключ GPG, который используются для подписи пакетов.
Комбинация флагов -fsSL настраивает консольный вывод служебной информации во время выполнения команды curl. Более подробно об этом можно узнать в этом справочнике. Если коротко, то curl не будет показывать индикатор прогресса, но будет сообщать о сбоях и выполнять повторные подключения в случае ошибок.
Утилита apt-key (необходима для контроля ключей) прочитает полученный в ответе curl ключ и сохранит его.
Теперь можно установить Docker и Docker Compose. Несмотря на то, что у Timeweb Cloud есть специальная инструкция по установке Docker на Ubuntu, в данной статье этот процесс будет тоже описан.
Сперва добавим репозиторий Docker для получения последней версии:
Еще раз обновим систему:
А далее установим все необходимые компоненты Docker одной командой:
2. Безопасность менеджера
Для того, чтобы повысить безопасность при использовании менеджера паролей, мы создадим отдельного пользователя с ограниченными правами.
Сперва создадим отдельный каталог для пользователя Bitwarden:
Теперь создадим самого пользователя:
Этот пользователь будет иметь доступ к ранее созданному каталогу:
Ну и помимо каталога, выделенный пользователь должен иметь возможность запускать команду docker:
После выдачи соответствующих разрешений можно сразу переключиться на пользователя Bitwarden — дальнейшие действия мы будем выполнять из-под него:
Теперь перейдем в каталог установки менеджера:
3. Установка Bitwarden в Docker и запуск его сервера
Даже если вы не умеете пользоваться Docker от слова «совсем», это не станет проблемой — разработчики менеджера предоставили сценарный скрипт, выполняющий установку с использованием системы контейнеризации автоматически.
Собственно, его мы и загрузим:
Далее просто запускаем скачанный скрипт:
После этого терминал консоли начнет задавать вам вопросы. Вам нужно будет указать некоторые параметры конфигурации парольного менеджера.
Во-первых, скрипт попросит доменное имя, которое будет использоваться для доступа к серверу. Во-вторых, скрипт попросит указать произвольное имя базы данных, которая будет использоваться для хранения конфиденциальных данных. В-третьих, скрипт может предложить вам бесплатный SSL-сертификат Let's Encrypt — вам нужно будет или согласиться, или отказаться.
Ну а далее скрипт автоматически загрузит и установит все необходимые контейнеры. Тем не менее, для дальнейшей конфигурации потребуется ввести еще немного данных.
В частности, скрипт установки запросит у вас идентификатор и ключ установки. Сгенерировать их можно на специальной странице официального сайта менеджера: https://bitwarden.com/host/.
По сути, вам нужно будет ввести email-адрес и нажать на кнопку Submit.
Когда скрипт попросит вас ввести идентификатор и ключ — просто скопируйте их из окна браузера в терминал.
Говоря короче, общий список вопросов будет таким и именно в такой последовательности:
- Enter the domain name for your Bitwarden instance
- Enter the database name for your Bitwarden instance (ex. vault)
- Do you want to use Let’s Encrypt to generate a free SSL certificate? (y/n)
- Enter your installation id
- Enter your installation key
- Do you have a SSL certificate to use? (y/n)
- Do you want to generate a self-signed SSL certificate? (y/n)
4. Почтовый SMTP-сервер
Хотя этот этап можно считать необязательным, его рекомендуется выполнить — без почтового сервера будет невозможен вход в менеджер паролей от имени администратора.
Дело в том, что когда пользователь с правами администратора пытается войти в систему от имени администратора, на его адрес электронной почты отправляется безопасная ссылка для авторизации.
При этом вам нужно будет указать все данные почтового сервера в специальном файле, находящемся в каталоге Bitwarden — ./bwdata/env/global.override.env:
Кстати, у Timeweb Cloud есть отдельная инструкция по развертыванию собственного почтового сервера. С другой стороны, если вы опытный пользователь Docker, вам стоит обратить внимание на достаточно простой почтовый сервер docker-mailserver, который как раз подойдет для большинства задач Bitwarden.
В самом простом случае (немного противоречащим логике развертывания локального сервера ради безопасности) можно воспользоваться общедоступными почтовыми серверами — например, Gmail.
Тогда в качестве параметров почты вы указываете следующие данные:
После установки параметром сообщения от Bitwarden будут приходить на вашу Gmail-почту.
Однако, на всякий случай не забудьте активировать параметр enable insecure apps в вашем Gmail-аккаунте. В противном случае почтовый сервис Google может блокировать сообщения от вашего парольного менеджера.
Если вы используете другой почтовый сервис, узнайте его параметры (в частности, адрес хоста SMTP-сервера) и аналогичным образом укажите в файле global.override.env.
Тем не менее, есть вероятность, что указанные вами SMTP-конфигурации будут работать некорректно, отчего сообщения не будут доходить до почтового сервера — вашего или стороннего.
Поэтому, имеет смысл предварительно воспользоваться «онлайн чекером» SMTP-параметров, чтобы подобрать корректные настройки в случае возникновения проблем.
5. Запуск сервера и проверка его работы
Сервер запускается через тот же самый скрипт:
Далее вы можете ввести в строке вашего браузера адрес сервера (именно поэтому для этих целей удобно использовать домен) с запущенным Bitwarden. Вы увидите интерфейс панели управления менеджером.
Чтобы попасть в админ-панель, нужно приписать /admin к адресу (IP или домену) сервера. Страница попросит вас указать email-адрес — тот самый, данные для которого вы добавили в файл global.override.env.
Почтовый сервер отправит на него ссылку для входа в админ-панель без пароля.
В общем-то, далее вы можете использовать любые доступные клиентские приложения Bitwarden. Например, вы можете скачать desktop-клиент, ввести адрес вашего сервера, авторизоваться в Bitwarden и использовать менеджер для безопасного хранения конфиденциальных данных.
Остановка и удаление сервера
Иногда на стороне сервера могут «накапливаться» разного рода проблемы, от чего может потребоваться переустановка менеджера.
Поэтому сначала Bitwarden полностью удаляется — через тот же самый скрипт:
Затем просто удаляем каталог менеджера:
И выполняем повторную установку (если надо):
Разверните Bitwarden на серверах Timeweb Cloud
477 ₽/мес
657 ₽/мес
Заключение
Как видно, установка Bitwarden не представляет особой сложности. Разработчики позаботились о пользователях, автоматизировав весь процесс развертывания Bitwarden.
Спервы мы установили два основных компонента — Docker и Docker Compose. Мы также не забыли про безопасность (это же ведь менеджер паролей) и создали отдельного пользователя с ограниченными правами специально для управления менеджером.
При этом скрипт установки в терминале задает все необходимые вопросы — наша задача только ответить на них, указав нужные данные.
Использование же DNS, протокола SSL или почтового SMTP-сервера не является обязательным (хотя желательно) и остается на усмотрение пользователя в зависимости от конкретных задач и формата, в котором будет использоваться менеджер.
Множество полезных советов об использовании Bitwarden в практических задачах вы можете найти в официальных справочных материалах менеджера.
