Введение
В данной небольшой заметке наконец поможем тебе обзавестись своим менеджером паролей, что бы перестать хранить их в браузере, блокноте, листочке и не использовать один пароль для всех своих сервисов, для этого будем использовать бесплатный проект с открытым исходным кодом под названием 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. Переходим в браузер по нашему домену и создаем нового пользователя
2. Заполняем наши данные и жмем Создать аккаунт
3. Готово, далее рекомендую ознакомиться с интерфейсом и закрыть регистрацию для новых пользователей, об этом ниже
Закрываем регистрацию для новых пользователей
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 используя вебморду в виде выгрузки всех данных в один файл в несколько форматов.
Приложения на ваши устройства
Приложения на ПК, телефон и расширение для браузера можно скачать на официальном сайте Bitwarden или пользоваться через вебморду
Как перенести пароли из браузера в Vaultwarden?
Вывод
В данной заметке мы научились устанавливать бесплатный менеджер паролей – Vaultwarden в связке с Caddy, надеюсь данная заметка кому-нибудь поможет обезопасить свои сервисы и важные данные.
Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально: