Блог Синявского
  • Разделы
  • Метки
  • Все статьи

Установка vaultwarden в систему умного дома

1

Личный менеджер паролей в систему умного дома

Vaultwarden - opensource проект написанный на Rust, API совместимый с клиентами для Bitwarden (Важно! Этот проект кроме API ничего не имеет общего с Bitwarden). Система хранения паролей. Можно установить на все телефоны, планшеты в доме bitwarden, указать личный сервер паролей - сервер умного дома. Сложность статьи, для понимающих людей.

Установка в Home Assistant

Установка происходит через меню дополнения, нужно найти Vaultwarden (Bitwarden open source). Далее начинается веселье. Потому что это веб-ресурс, чтобы гонять пароли по сети, ему нужен сертификат. Его нужно выпустить самому или воспользоваться letsenctrypt. У каждого свои варианты. После того, как дополнение установилось и запустилось, нужно сконфигурировать SSL.

Конфигурация SSL Vaultwarden

Установка и настройка может осуществляться через admin token. Но после включения ssl ваше дополнение выключится без наличия ключей в папке ssl. Где же находится эта папка. Поиски конфигурационных файлов контейнера Vaultwarden привели меня к тому, что при загрузке маунтится VOLUME: /data. Внутри должна находится папка ssl. А откуда непонятно. Продолжил поиски. Заходим на домашний сервер по ssh. При настройке надо запустить сервис vaultwarden с выключенным ssl в конфигурации (так как он не запустится без ключей). Далее смотрим название контейнеров системы умного дома, под привилегированной учетной записью:

# docker container ls

CONTAINER ID   IMAGE                                                      COMMAND               CREATED         STATUS                PORTS
...
781bc0baa310   ghcr.io/hassio-addons/bitwarden/amd64:0.19.4               "/init"               8 seconds ago   Up 7 seconds          0.0.0.0:7277->7277/tcp, :::7277->7277/tcp
...

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

# cd /var/lib/docker/containers

Ищем папку нашего контейнера по container id и переходим в неё.

# ls
...
316ccb7ca63230a73a45365ed0e44268786d0300d10b0861e76055a2748e6611 
781bc0baa3100a8240c7cdd9fc54bbe7b99a754ca2e9042fb6edcaa2a1853757
539cb962e5639203382bd001e45450f616dd183f71d6c967d9dc0a4aba525e5d
# cd 781bc0baa3100a8240c7cdd9fc54bbe7b99a754ca2e9042fb6edcaa2a1853757

Смотрим что здесь:

# ls
checkpoints  config.v2.json  hostconfig.json  hostname  hosts  mounts  resolv.conf  resolv.conf.hash

Смотрим config:

# cat config.v2.json
{"StreamConfig":{},"State":{"Running":true,"Paused":false,"Restarting":false,"OOMKilled":false,"RemovalInProgress":false,"Dead":false,"Pid":2212841,"ExitCode":0,"Error":"","StartedAt":"2023-07-10T18:50:43.599165508Z","FinishedAt":"0001-01-01T00:00:00Z","Health":null},"ID":"781bc0baa3100a8240c7c449fc54bbe7b99a754ca2e9042fb6edcaa2a1853757","Created":"2023-07-10T18:50:43.310773568Z","Managed":false,"Path":"/init","Args":[],"Config":{"Hostname":"a0d7b954-bitwarden","Domainname":"local.hass.io","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"7277/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["TZ=Europe/Moscow","SUPERVISOR_TOKEN=cbe1da7f183bf84196ac28d0b8245ca9cacc0f1d72348ece23cef0ad7befdbb391f297a0016f97faa6e6abb0bd568c3920803e0423155135","HASSIO_TOKEN=cbe1da7f183bf84196ac28d0b8245ca9cacc0f1d72348ece23cef0ad7befdbb391f297a0016f97faa6e6abb0bd568c3920803e0423155135","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","CARGO_NET_GIT_FETCH_WITH_CLI=true","DEBIAN_FRONTEND=noninteractive","HOME=/root","LANG=C.UTF-8","PIP_DISABLE_PIP_VERSION_CHECK=1","PIP_NO_CACHE_DIR=1","PIP_PREFER_BINARY=1","PS1=$(whoami)@$(hostname):$(pwd)$ ","PYTHONDONTWRITEBYTECODE=1","PYTHONUNBUFFERED=1","S6_BEHAVIOUR_IF_STAGE2_FAILS=2","S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0","S6_CMD_WAIT_FOR_SERVICES=1","YARN_HTTP_TIMEOUT=1000000","TERM=xterm-256color"],"Cmd":null,"Image":"ghcr.io/hassio-addons/bitwarden/amd64:0.19.4","Volumes":null,"WorkingDir":"","Entrypoint":["/init"],"OnBuild":null,"Labels":{"io.hass.arch":"amd64","io.hass.base.image":"hassioaddons/debian-base","io.hass.base.name":"debian","io.hass.base.version":"6.2.7","io.hass.description":"Open source password management solution","io.hass.name":"Vaultwarden (Bitwarden)","io.hass.type":"addon","io.hass.version":"0.19.4","maintainer":"Franck Nijhof \u003cfrenck@addons.community\u003e","org.opencontainers.image.authors":"Franck Nijhof \u003cfrenck@addons.community\u003e","org.opencontainers.image.created":"2023-05-17T21:33:38Z","org.opencontainers.image.description":"Open source password management solution","org.opencontainers.image.documentation":"https://github.com/hassio-addons/addon-bitwarden/blob/main/README.md","org.opencontainers.image.licenses":"MIT","org.opencontainers.image.revision":"5a4df9ab35c7f871cb6eb6fb0130e340121c6af0","org.opencontainers.image.source":"https://github.com/hassio-addons/addon-bitwarden","org.opencontainers.image.title":"Vaultwarden (Bitwarden)","org.opencontainers.image.url":"https://addons.community","org.opencontainers.image.vendor":"Home Assistant Community Add-ons","org.opencontainers.image.version":"0.19.4","supervisor_managed":""}},"Image":"sha256:c1f54330479975a27bfea252a6f223d98dc4fc7f3c9d3c02bda1b105f278df0b","ImageManifest":null,"NetworkSettings":{"Bridge":"","SandboxID":"e9211d5b864c0fbc1f5e364e6a8320988ca23b0bf51ada51db1f40ea532085c8","HairpinMode":false,"LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"Networks":{"hassio":{"IPAMConfig":null,"Links":null,"Aliases":["a0d7b954-bitwarden","781bc0baa310"],"NetworkID":"13314b95f6c910a7571fa9d5c2d214325cf79ca5cfd5e959d07b10f380dbd7e2","EndpointID":"1a1c6abfe48e0e4241b367dea16a44d63eb0cadf35b52f1b3a975c42185852f0","Gateway":"172.30.32.1","IPAddress":"172.30.33.4","IPPrefixLen":23,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:1e:21:04","DriverOpts":null,"IPAMOperational":false}},"Service":null,"Ports":{"7277/tcp":[{"HostIp":"0.0.0.0","HostPort":"7277"},{"HostIp":"::","HostPort":"7277"}]},"SandboxKey":"/var/run/docker/netns/e9211d5b864c","SecondaryIPAddresses":null,"SecondaryIPv6Addresses":null,"IsAnonymousEndpoint":false,"HasSwarmEndpoint":false},"LogPath":"","Name":"/addon_a0d7b954_bitwarden","Driver":"overlay2","OS":"linux","RestartCount":0,"HasBeenStartedBefore":true,"HasBeenManuallyStopped":false,"MountPoints":{"/data":{"Source":"/usr/share/hassio/addons/data/a0d7b954_bitwarden","Destination":"/data","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/usr/share/hassio/addons/data/a0d7b954_bitwarden","Target":"/data"},"SkipMountpointCreation":true},"/dev":{"Source":"/dev","Destination":"/dev","RW":false,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/dev","Target":"/dev","ReadOnly":true},"SkipMountpointCreation":true},"/ssl":{"Source":"/usr/share/hassio/ssl","Destination":"/ssl","RW":false,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/usr/share/hassio/ssl","Target":"/ssl","ReadOnly":true},"SkipMountpointCreation":true}},"SecretReferences":null,"ConfigReferences":null,"MountLabel":"","ProcessLabel":"","AppArmorProfile":"docker-default","SeccompProfile":"unconfined","NoNewPrivileges":false,"HostnamePath":"/var/lib/docker/containers/781bc0baa3100a8240c7c449fc54bbe7b99a754ca2e9042fb6edcaa2a1853757/hostname","HostsPath":"/var/lib/docker/containers/781bc0baa3100a8240c7c449fc54bbe7b99a754ca2e9042fb6edcaa2a1853757/hosts","ShmPath":"","ResolvConfPath":"/var/lib/docker/containers/781bc0baa3100a8240c7c449fc54bbe7b99a754ca2e9042fb6edcaa2a1853757/resolv.conf","LocalLogCacheMeta":{"HaveNotifyEnabled":false}}

Бинго ssl vaultwarden маунтится в "/ssl":{"Source":"/usr/share/hassio/ssl"

Копирование файлов сертификатов в папку ssl

К этому моменту необходимы файлы сертификатов fullchain.pem и privkey.pem. Их необходимо положить в папку /usr/share/hassio/ssl, перезапустить vaultwarden аддон с опцией ssl. Далее все просто.

Как выбрать в приложении Bitwarden для андроид свой сервер умного дома

При вводе имени не надо регистрироваться. Надо ввести имя и при выборе региона будет вариант свой сервер. Туда надо ввести url своего сервера с портом и конечным слешем, например: https://mybitwarden.superhost.ru:7277/



  • ← сюда

comments powered by Disqus

Опубликовано

11.07.2023

Обновление

11.07.2023

Категории

homeassistant

Тэги

  • debian 4
  • docker 1
  • homeassistant 1

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor