IT
June 8, 2023

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

Введение

В данной небольшой заметке наконец поможем тебе обзавестись своим менеджером паролей, что бы перестать хранить их в браузере, блокноте, листочке и не использовать один пароль для всех своих сервисов, для этого будем использовать бесплатный проект с открытым исходным кодом под названием Vaulwarden.

Если вам лень заморачиваться с развертыванием этого всего дела у себя, всегда можно воспользоваться аналогичным сервисом Bitwarden (Vaultwarden его форк), бесплатной версии обычному пользователю будет предостаточно. Я сам очень долго пользовался Bitwarden.

Установка Docker и Docker-Compose

Нам потребуется установленный Docker и Docker-Compose, подробней о способах установки можно ознакомиться в моей заметке по установке Docker и Docker-Compose.

1. Устанавливать Docker буду на Debian 11, с помощью официального скрипта:

curl https://get.docker.com -o install.sh && sh install.sh

2. Добавляем в автозагрузку наш Docker:

systemctl enable docker.service

systemctl enable docker

3. Проверяем что все установилось:

docker version
docker compose version

Установка Vaultwarden и Caddy с помощью Docker-Compose

Вы можете установить Vaultwarden локально на виртуальной машине или воспользоваться VPS от хостера.

1. Создаем нужные директории и сам docker-compose.yml:

mkdir -p /app/vaultwarden

cd /app/vaultwarden

nano docker-compose.yml

2. Заполняем его следующим содержимым:

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      WEBSOCKET_ENABLED: "true"
      SIGNUPS_ALLOWED: "true" #Меняем на false для закрытия регистрации
    volumes:
      - ./data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-config:/config
      - ./caddy-data:/data
    environment:
      DOMAIN: "https://ВАШ_ДОМЕН.RU"
      EMAIL: "ВАША_ПОЧТА@gmail.com"
      LOG_FILE: "/data/access.log"

Настройка Caddy для домена:

1. Создаем и наполняем содержимым наш Caddyfile:

nano Caddyfile
{$DOMAIN}:443 {
  log {
    level INFO
    output file {$LOG_FILE} {
      roll_size 10MB
      roll_keep 10
    }
  }


  tls {$EMAIL}

  encode gzip


  header {

  Strict-Transport-Security "max-age=31536000;"


  X-XSS-Protection "1; mode=block"


  X-Frame-Options "DENY"


  X-Robots-Tag "none"


  -Server
  }


  reverse_proxy /notifications/hub vaultwarden:3012

  reverse_proxy vaultwarden:80 {
       header_up X-Real-IP {remote_host}
  }
}

2. Теперь запускаем наш Docker-Compose.yml файл и завершаем установку:

docker compose up -d

Настройка Caddy для локального домена

Проделываем все тоже самое только используем следующее содержимое:

nano Caddyfile
vaultwarden.local:443 {
        reverse_proxy vaultwarden:80
        tls internal
}

2. Теперь запускаем наш Docker-Compose.yml файл и завершаем установку:

docker compose up -d

Я для данного способа просто прописывал в Hosts запись вида 192.168.1.10 vaultwarden.local и все прекрасно работает

Регистрация нового пользователя

1. Переходим в браузер по нашему домену и создаем нового пользователя

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

2. Заполняем наши данные и жмем Создать аккаунт

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

3. Готово, далее рекомендую ознакомиться с интерфейсом и закрыть регистрацию для новых пользователей, об этом ниже

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

Закрываем регистрацию для новых пользователей

1. Открываем наш docker-compose.yml файл:

nano docker-compose.yml

3. Меняем в строке SIGNUPS_ALLOWED значение с true на false

2. Сохраняем и пересобираем наш контейнер с Vaultwarden:

docker compose up -d

Как сделать Backup наших данных Vaultwarden

Можно погуглить и выбрать удобный способ для себя, я накидал небольшой Bash скриптик:

nano backup.sh
#!/bin/bash

docker run --rm --volumes-from=vaultwarden -e UID=0 -e BACKUP_DIR=/data/backup -e TIMESTAMP=true -v /app/vaultwarden/data/backup:/data/backup bruceforce/vaultwarden-backup manual

find /app/vaultwarden/data/backup/* -type f -mtime +30 -delete #удаляет файлы старше 30 дней

Замените UID на свой, я запускаю от root пользователя (свой UID можно узнать командой id -u)

chmod u+x backup.sh

Пробуем запустить:

./backup.sh

Если все нормально, то в директории /app/vaultwarden/data/backup/ появиться backup файл

Подробней про данный способ можно почитать тут, там же и про восстановление из backup.

Закидываем его в Cron:

crontab -e
0 0 * * /bin/bash /app/vaultwarden/backup.sh

Сохраняем, готово, теперь backup нашего Vaultwarden будет делаться каждый день в 00:00 и удалять копии старше 30 дней

Так же можно сделать backup Vaultwarden используя вебморду в виде выгрузки всех данных в один файл в несколько форматов.

Vaultwarden-как установить свой менеджер паролей и защищенных заметок

Приложения на ваши устройства

Приложения на ПК, телефон и расширение для браузера можно скачать на официальном сайте Bitwarden или пользоваться через вебморду


Как перенести пароли из браузера в Vaultwarden?

Для Chrome

Для Firefox


Вывод

В данной заметке мы научились устанавливать бесплатный менеджер паролей — Vaultwarden в связке с Caddy, надеюсь данная заметка кому-нибудь поможет обезопасить свои сервисы и важные данные.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT или посетить мой сайт, откуда и взята данная заметка, спасибо за потраченное время на чтение и доброго времени суток!)