Как организовать хранение паролей на своем сервере с помощью Vaultwarden
Немного прошерстив интернет, обнаружил, что качественного и понятного мануала на данную тему нет, поэтому решил заполнить данный пробел.
Для чего это нужно? Ну первое и оно же главное — это контроль своих данных, и минимизация доступа к таким данным как пароли, от сторонних сервисов (прим. LastPass, 1Password и др.).
ВИКИ:Проект Vaultwarden (ранее известный как bitwarden_rs) предоставляет облегченную API-совместимую альтернативу Bitwarden . Vaultwarden — это приложение для управления паролями с открытым исходным кодом, которое можно размещать самостоятельно и запускать в вашей инфраструктуре. Запустив службу vaultwarden, вы можете использовать расширения браузера Bitwarden и мобильные приложения, поддерживаемые вашим сервером.
Что нам понадобиться чтобы запустить менеджер паролей на своем сервере:
Практически любой виртуальный сервер с ОС ubuntu 20.04 ;
Свободный домен второго уровня (прим. VC.ru);
- PC с доступом в интернет;
- PuTTY: Telnet/SSH Клиент;
- Прямы руки из правильного места.
Ниже составлена пошаговая инструкция, как и в какой последовательности выполнять команды на сервере, приложение было развернуто на серверах селектл.
1) Покупаем новый сервер и получаем данные доступа;
2) Запускаем на нашем ПК PuTTY клиент и вводим полученные данные доступа к нашему серверу(ip: 45.8.250.29) вида: root: f0hyrk8u95 (ip, логин и пароль, мои реальные тестовые данные при выполнении команд меняйте их на свои).
3) Теперь обновим наш сервер, в консоли выполняем следующую команду:
При обновлении нужно будет один раз нажать Y и чуть позже во всплывающем окне enter.
4) Проверим установлена ли у нас утилита Snap, в случае чего установим или обновим:
Snap — это приложения, упакованные со всеми их зависимостями для запуска во всех популярных дистрибутивах Linux из одной сборки.
5) Установим Докер с помощью Snap:
Переходим к установке Vaultwarden и Caddy
6) Создадим каталог для нашего Vaultwarden, и перейдем в него.
7) Создайте при помощи редактора nano файл конфигурации docker-compose.yml
8) В созданный на 7 шаге файл добавьте следующие строки настройки:
9) Замените строки https://decl.site и mail@mail.ru на свои данные после чего сохранитесь и выйдите из текстового редактора с помощью следующего сочетания клавиш:
CTRL+ X, затем Y, а затем ENTER
Файл конфигурации Кэдди
Caddy – это веб-сервер, обладающий рядом функций, обеспечивающих простоту и безопасность. К примеру, Caddy умеет в автоматическом режиме получать TLS-сертификаты от Let's Encrypt и управлять ими для обеспечения функционирования протокола HTTPS.
10) Создайте и откройте новый Caddyfile:
11) Добавьте в файл следующие строки
12) Сохраните и выйдите из текстового редактора, нажав CTRL+ X, затем Y, а затем ENTER
Переходим к запуску Vaultwarden
13) Запустите Vaultwarden с помощью docker-compose в автономном режиме
14) Убедитесь, что Vaultwarden запущен, используя docker. Статус должен быть Up.
15) Перейдите по адресу https://decl.site/ (ваш домен из шага 9) и создайте ваш аккаунт vaultwarden
Дополнительные опции безопасности
16) После того как вы создали свой аккаунт, отключите регистрацию, для этого отредактируйте файл из шага 7:
SIGNUPS_ALLOWED поставьте в значение false
Чтобы пользователи не могли рассылать инвайты измените в этом же файле опцию:
INVITATIONS_ALLOWED поставьте в значение false
Отключите подсказки пароля:
SHOW_PASSWORD_HINT поставьте в значение false
После того как вы внесли изменения в конфигурационный файл, необходимо перезапустить контейнер последовательно выполнив:
Перенос сохраненных паролей из Google Chrome
В Chrome
1)Откройте chrome://settings/passwords
2)Нажмите на три точки и выберите Экспорт Паролей
3)Cохраните файл
Зайдите в Vault Warden
1)Инструменты -> Импорт данных
2)Выберите формат Chrome (CSV)
3)Нажмите кнопку Импорт данных
Клиенты для андроида и яблока:
!!! В настройках приложения необходимо указать ссылку на ваш сервер(домен).
P.S.Для подготовки статьи использовались некоторые материалы следующих сайтов vultr.com и habr.com.
Если возникнут сложности с установкой пишите в комментарии наименование ошибки.