Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Перед установкой Bitwarden в Docker
В этом материале будут использоваться команды для UNIX-подобных операционных систем (если конкретнее, то Debian/Ubuntu), т.к. именно они чаще всего используются при развертывании серверных приложений.
Поэтому, перед установкой и настройкой Bitwarden-a сперва нужно убедиться, что все необходимые пакеты операционной системы установлены и обновлены:
sudo apt update
sudo apt upgradeЕсли ваша серверная машина еще «свежая», то рекомендуется заранее установить некоторые инструменты:
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commonИ хотя не все они будут использоваться явно, они необходимы для корректной установки, запуска и работы менеджера.
В дальнейшем подключение к серверу Bitwarden будет выполняться через IP-адрес. Впрочем, вам никто не запрещает использовать доступ по SSL через доменное имя, если оно у вас есть.
Достаточно установить соответствующую запись А в DNS-редакторе вашего провайдера, после чего актуальный домен станет доступен для Bitwarden.
В отдельной инструкции Simple-Server есть подробное объяснение того, как через веб-панель можно редактировать DNS-записи.
1. Установка Docker и его компонентов
Так как мы собираемся использовать Docker для развертывания менеджера, нам сперва потребуется добавить его ключ GPG, который используются для подписи пакетов.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Комбинация флагов -fsSL настраивает консольный вывод служебной информации во время выполнения команды curl. Более подробно об этом можно узнать в этом справочнике. Если коротко, то curl не будет показывать индикатор прогресса, но будет сообщать о сбоях и выполнять повторные подключения в случае ошибок.
Утилита apt-key (необходима для контроля ключей) прочитает полученный в ответе curl ключ и сохранит его.
Теперь можно установить Docker и Docker Compose. Несмотря на то, что у Simple-Server есть специальная инструкция по установке Docker на Ubuntu, В этом материале этот процесс будет тоже описан.
Сперва добавим репозиторий Docker для получения последней версии:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"А далее установим все необходимые компоненты Docker одной командой:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose2. Безопасность менеджера
Для того, чтобы повысить безопасность при использовании менеджера паролей, мы создадим отдельного пользователя с ограниченными правами.
Сперва создадим отдельный каталог для пользователя Bitwarden:
sudo mkdir /opt/bitwardenТеперь создадим самого пользователя:
Этот пользователь будет иметь доступ к ранее созданному каталогу:
sudo chmod -R 700 /opt/bitwarden
sudo chown -R bitwarden:bitwarden /opt/bitwardenНу и помимо каталога, выделенный пользователь должен иметь возможность запускать команду docker:
sudo usermod -aG docker bitwardenПосле выдачи соответствующих разрешений можно сразу переключиться на пользователя Bitwarden — дальнейшие действия мы будем выполнять из-под него:
Теперь перейдем в каталог установки менеджера:
3. Установка Bitwarden в Docker и запуск его сервера
Даже если вы не умеете пользоваться Docker от слова «совсем», это не станет проблемой — разработчики менеджера предоставили сценарный скрипт, выполняющий установку с использованием системы контейнеризации автоматически.
Собственно, его мы и загрузим:
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod 700 bitwarden.shДалее просто запускаем скачанный скрипт:
После этого терминал консоли начнет задавать вам вопросы. Вам нужно будет указать некоторые параметры конфигурации парольного менеджера.
Во-первых, скрипт попросит доменное имя, которое будет использоваться для доступа к серверу. Во-вторых, скрипт попросит указать произвольное имя базы данных, которая будет использоваться для хранения конфиденциальных данных. В-третьих, скрипт может предложить вам бесплатный SSL-сертификат Let's Encrypt — вам нужно будет или согласиться, или отказаться.
Ну а далее скрипт автоматически загрузит и установит все необходимые контейнеры. Тем не менее, для дальнейшей конфигурации потребуется ввести еще немного данных.
В частности, скрипт установки запросит у вас идентификатор и ключ установки. Сгенерировать их можно на специальной странице официального сайта менеджера: https://bitwarden.com/host/.
По сути, вам нужно будет ввести email-адрес и нажать на кнопку Submit.
Когда скрипт попросит вас ввести идентификатор и ключ — просто скопируйте их из окна браузера в терминал.
Говоря короче, общий список вопросов будет таким и именно в такой последовательности:
Хотя этот этап можно считать необязательным, его рекомендуется выполнить — без почтового сервера будет невозможен вход в менеджер паролей от имени администратора.
При этом вам нужно будет указать все данные почтового сервера в специальном файле, находящемся в каталоге Bitwarden — ./bwdata/env/global.override.env:
...
globalSettings__mail__smtp__host=*адрес*
globalSettings__mail__smtp__port=*порт*
globalSettings__mail__smtp__ssl=*ssl сертификат*
globalSettings__mail__smtp__username=*пользователь*
globalSettings__mail__smtp__password=*пароль*
...
adminSettings__admins=*email администратора*
...Кстати, у Simple-Server есть отдельная инструкция по развертыванию собственного почтового сервера. С другой стороны, если вы опытный пользователь Docker, вам стоит обратить внимание на достаточно простой почтовый сервер docker-mailserver, который как раз подойдет для большинства задач Bitwarden.
В самом простом случае (немного противоречащим логике развертывания локального сервера ради безопасности) можно воспользоваться общедоступными почтовыми серверами — например, Gmail.
Тогда в качестве параметров почты вы указываете следующие данные:
globalSettings__mail__replyToEmail=*имя_почты@gmail.com*
globalSettings__mail__smtp__host= smtp.gmail.com
globalSettings__mail__smtp__username=*пользователь почты*
globalSettings__mail__smtp__password=*пароль почты*
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__useDefaultCredentials=false
globalSettings__disableUserRegistration=trueПосле установки параметром сообщения от 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 полностью удаляется — через тот же самый скрипт:
Затем просто удаляем каталог менеджера:
И выполняем повторную установку (если надо):
Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.