Как организовать хранение паролей на своем сервере с помощью 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, в случае чего установим или обновим:
5) Установим Докер с помощью Snap:
Переходим к установке Vaultwarden и Caddy
6) Создадим каталог для нашего Vaultwarden, и перейдем в него.
7) Создайте при помощи редактора nano файл конфигурации docker-compose.yml
8) В созданный на 7 шаге файл добавьте следующие строки настройки:
9) Замените строки https://decl.site и [email protected] на свои данные после чего сохранитесь и выйдите из текстового редактора с помощью следующего сочетания клавиш:
CTRL+ X, затем Y, а затем ENTER
Файл конфигурации Кэдди
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.
Если возникнут сложности с установкой пишите в комментарии наименование ошибки.
шаг 16 немного кривой и не понятный без гугла. а в остальном спасибо! правда docker я поставил не через snap
Согласен, спасибо за уточнение, необходимо в созданном файле на "шаге 7" в секции "environment", добавить нужные правила, пример:
services:
vaultwarden:
... other configuration ...
environment:
- SIGNUPS_ALLOWED=false
- INVITATIONS_ALLOWED=false
- SHOW_PASSWORD_HINT=false
Уважаемый-солидный!
Спасибо тебе за мануал, с просьбой хочу обратиться небольшой.
Распиши подробнее, как настроить домен?
Добавляю А-запись с публичным IPv4 и этого явно не хватает.
DNS-сервера нужно присвоить, либо что?
И почему сам ip-адрес сервера нет возможности использовать? Или есть?
Спасибам!
Вопрос решён! )
Сорян, запоздал с помощью, но я рад что ты решил вопрос:)
Почему ubuntu 20.04 ? Можно ли заменить на debian или CentOs ?
Думаю, да, просто мне комфортнее работать с ubuntu.
я просто сколько не читал статей, не смотрел мануалов почти везде эту версию берут убунты. Вот так сказать и назрел вопрос)
shavalt:~# sudo snap install docker
error: cannot install "docker": snap "docker" assumes unsupported features: snapd 2.59.1 (try to refresh snapd)
Ужо ругается) нужно выполнить
shavalt:~# snap refresh snapd
Возможно попробовать обойтись без "snap". Просто установить докер из официального репозитория?
Сергей из 1-го комментария так и сделал.
root@vps01:/opt/vaultwarden# docker compose up -d
[+] Running 2/3
✔ Network vaultwarden_default Created 0.6s
⠿ Container caddy Starting 2.8s
✔ Container vaultwarden Started 2.8s
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/opt/vaultwarden/Caddyfile" to rootfs at "/etc/caddy/Caddyfile": mount /opt/vaultwarden/Caddyfile:/etc/caddy/Caddyfile (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Не запускается
Судя по Вашей ошибке: "Вы пытаетесь подключить каталог к файлу (или наоборот)? Проверьте, существует ли указанный путь к хосту и соответствует ли он ожидаемому типу"
Где-то допустили ошибку при установке, пробуйте повторит все с чистого листа.