Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Установка Vaultwarden: Bitwarden-совместимый сервер с безопасной админкой

Linux и DevOps

Vaultwarden — лёгкий self-hosted сервер, совместимый с клиентами Bitwarden. Подходит для тех, кто хочет контролировать свои пароли без зависимости от облачных сервисов. В статье — установка через Docker и защита админки хешированным токеном.

Установка Vaultwarden через Docker

Шаг 1: Установка Docker и Docker Compose

Установите Docker и docker-compose:

curl -fsSL https://get.docker.com | bash
sudo apt install docker-compose -y

Шаг 2: Подготовка папки для данных

Создайте директорию для хранения данных:

mkdir -p ~/vaultwarden/data
cd ~/vaultwarden

Шаг 3: Создание docker-compose.yml

Создайте файл docker-compose.yml с конфигурацией контейнера:

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    ports:
      - 8080:80
    volumes:
      - ./data:/data
    environment:
      WEBSOCKET_ENABLED: 'true'
      SIGNUPS_ALLOWED: 'false'
      ADMIN_TOKEN: $$argon2id$$v=19$$m=19456,t=2,p=1$$SALT$$HASH

Замените ADMIN_TOKEN на Argon2-хеш, сгенерированный ниже.

Безопасная настройка ADMIN_TOKEN

Генерация защищённого хеша

Установите необходимые утилиты:

sudo apt install argon2 openssl -y

Сгенерируйте Argon2-хеш для токена админки:

echo -n "СЛОЖНЫЙ_ПАРОЛЬ" | \
  argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1 | \
  sed 's#\$#\$\$#g'

Вставьте полученную строку в поле ADMIN_TOKEN в файле docker-compose.yml.

Почему экранируются символы $

Docker интерпретирует символ $ как переменную окружения. Чтобы избежать ошибок, каждый $ заменяется на $$.

Запуск Vaultwarden

Запустите контейнер в фоне:

docker-compose up -d

Проверка работы

  • Интерфейс: http://<IP-сервера>:8080
  • Админка: http://<IP-сервера>:8080/admin

Для входа в админку используйте исходный пароль, из которого генерировался хеш.

Как работает ADMIN_TOKEN

  • Если задан простой токен — сравнение идёт напрямую
  • Если Argon2-хеш — сравнение происходит через хеш-функцию

Argon2-хеш защищает даже при утечке docker-compose.yml — исходный пароль остаётся неизвестен.

Что дальше

  • Настроить проксирование через Nginx и HTTPS (Let’s Encrypt)
  • Добавить резервное копирование папки ./data
  • Оставить SIGNUPS_ALLOWED: 'false' для ограничения регистрации
  • Добавить Fail2ban или ufw для ограничения доступа

Нужна статья по настройке HTTPS и обратного прокси для Vaultwarden? Напишите в комментариях.

Создание организаций

По умолчанию создание организаций (организационных хранилищ) доступно всем зарегистрированным пользователям. Чтобы ограничить эту возможность, добавьте переменную ORG_CREATION_USERS с нужными email-адресами:

 ORG_CREATION_USERS: 'user1@example.com,user2@example.com'

Только указанные email-адреса смогут создавать организации. Email-адреса перечисляются через запятую.

Это особенно полезно, если вы отключили регистрацию (SIGNUPS_ALLOWED: 'false') и хотите централизованно управлять рабочими пространствами для команды.

Заключение

Vaultwarden позволяет развернуть надёжный менеджер паролей с минимальными ресурсами. Защита админки через Argon2-хеш обеспечивает безопасность без лишней сложности.

Оцените статью
ctrllife.ru
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x