Налаштовуємо віддалений доступ до Home Assistant через Cloudflare

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Привіт. На зв’язку Свердлюк Богдан. Я люблю розумний будинок і розповідаю про нього українською. У цьому посібнику розглянемо, як безкоштовно та легко створити віддалений доступ до Home Assistant за допомогою домену та Argo тунелю Cloudflare.

російський військовий корабель іди нах***!

1. Для початку необхідно зареєструвати домен. Я використовую безкоштовний домен pp.ua. Для цього потрібно перейти на сайт реєстратора доменів, наприклад, nic.ua та оформити безкоштовне замовлення на бажану адресу. Надалі це буде адресою нашого Home Assistant. Перевірити статус замовлення можна в особистому кабінеті. Активований домен буде мати зелену крапочку. Домен безкоштовний назавжди, але раз на рік його потрібно продовжувати.

2. Змінити паркові сервери імен на Cloudflare. Для цього потрібно натиснути шестерню справа від домену.

Перейти до розділу NS-сервери та у випадаючому списку обрати власні сервери імен. Вставити NS сервери dina.ns.cloudflare.com та hal.ns.cloudflare.com. Натиснути «Зберегти».

3. Створити обліковий запис на сайті Cloudflare. У розділі Websites необхідно натиснути кнопку Add a Site та додати зареєстрований домен. Якщо домен додано у розділі Websites, біля домену буде галочка та статус Active.

Важливо. Для використання Cloudflared потрібно видалити всі додатки, що обробляють SSL-сертифікати. До таких відносяться DuckDN, Let’s Encrypt і подібні.

4. У Home Assistant потрібно перейти у пункт меню Конфігурація >> Додатки >> Магазин доповнень >> зверху справа натиснути три крапки >> Репозиторії, та додати посилання github.com/brenner-tobias/ha-addons.

Перезавантажити сторінку магазину доповнень, знайти та встановити додаток Cloudflared. Для зручності можна активувати перемикачі запуск після увімкнення системи та Watchdog. Якщо після оновлення додаток не з’являється, очистіть кеш або скористайтесь іншим браузером.

5. Перед запуском додатку у вкладці «Конфігурація» необхідно вказати два рядки:

  • External Home Assistant Hostname — це адреса домену.
  • Cloudflare Tunel Name — довільне бажане ім’я, що присвоїться Argo-тунелю.

Натиснути зберегти.

6. Також перед запуском додатку до файлу configuration.yaml потрібно додати наступну конфігурацію:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
    - 127.0.0.1
 

Її ніяк не потрібно змінювати, лише додати. Після цього потрібно перезапустити Home Assistant. Зробити це можна у пункті меню Конфігурація >> Система >> Кнопка «Перезавантажити» зверху справа.

7. Після перезавантаження потрібно запустити додаток Cloudflared. Потім перейти у вкладку «Журнал» і постійно натискати кнопку «Оновити», доки не з’явиться текст «Please open the following url and log in with your Cloudflare account...»

Скопіюйте та перейдіть за посиланням. Натисніть кнопку «Authorize».

Після авторизації та успішного запуску додатку можна перевірити результат. Для цього потрібно ввести домен в рядку браузера. Якщо все виконано правильно, ви побачите сторінку входу Home Assistant. Цю адресу можна вказати в мобільному додатку Home Assistant, щоб отримати доступ до свого дому з будь-якого куточка світу. Це також дозволить використовувати функції відстеження пристроїв і сповіщень, що дуже круто.

Якщо Home Assistant відкривається з незахищеним http-з’єднанням, можна налаштувати автоматичне перенаправлення на версію https. Для цього потрібно перейти в налаштування сайту Cloudflare, пункт «SSL/TLS» >> Edge Certificates >>, та увімкнути перемикач Always Use HTTPS.

Тут же можна налаштувати режим шифрування. Для більшої безпеки рекомендую використовувати режим Full(strict):
No — шифрування відсутнє
Flexible — трафік шифрується між браузером та Cloudflare
Full — трафік шифрується повністю, між браузером та Home Assistant
Full(strict) — повне шифрування з суворішими вимогами до сертифікатів

Щоб налаштувати віддалений доступ через мобільний додаток, на телефоні перейдіть в пункт Конфігурація >> Мобільний додаток >> Головна >> Зовнішній URL та додайте свій домен.
Будьте обачні та не використовуйте простий пароль для входу. Якщо потрібно змінити пароль, зробити це можна в останньому пункті меню — профіль користувача.

Сподобалась стаття? Подякуй донатом на спільний збір DOU та KOLO для купівлі 80 дронів «Азову»!

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному8
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

а може хто знає — як в ha створити справжнього гостя з обмеженим view-only дешбордом? Бо я не знайшов такого

Зробіть користувача не адміна Меню >> Люди >> додати особу тоді користувач не зможе нічого змінювати.

Кожна вкладка дашборду при її редагуванні (символ олівця має вкладку видимість. Там можна налаштувати хто зможе бачити цю вкладку

У такого користувача лишається право як мінімум редагувати свій профіль. Наприклад змінити пароль чи зовнішній вигляд, що не дуже сподобається іншим гостям.

Користувач не адмін не може змінювати зовнішній вигляд дашборду

адмінського — ні. свого юзерського — так. ЯК для одного окремого юзера то не проблема. Мені ж хочеться виставити морду з показами на широкий наперед не визначений загал. А тут кожен жартівник зможе змінити пароль чи сховати overview.

Вітаю! Чудова інструкція, все зрозуміло та доступно. Проте не вдалось відкрити віддалений доступ. Виникло питання куди прописувати 6 пункт , а саме де знайти той самий файл і туди вписати дані ось ці

http:
use_x_forwarded_for: true
trusted_proxies:
— 172.30.33.0/24
— 127.0.0.1

Після цього допису в журналі далі не йде діло
[22:41:53] INFO: Connecting Cloudflare Tunnel...
2024-02-14T20:41:53Z INF Starting tunnel tunnelID=41504263-a36f-40e5-90af-f724f74e7f8b
2024-02-14T20:41:53Z INF Version 2024.2.0
2024-02-14T20:41:53Z INF GOOS: linux, GOVersion: go1.21.5, GoArch: amd64
2024-02-14T20:41:53Z INF Settings: map[config:/tmp/config.json cred-file:/data/tunnel.json credentials-file:/data/tunnel.json loglevel:info metrics:0.0.0.0:36500 no-autoupdate:true origincert:/data/cert.pem]
2024-02-14T20:41:53Z INF Generated Connector ID: 09813677-c959-43f0-a1dc-60ea0cc8aeea
2024-02-14T20:41:53Z INF Initial protocol quic
2024-02-14T20:41:53Z INF ICMP proxy will use 172.30.33.1 as source for IPv4
2024-02-14T20:41:53Z INF ICMP proxy will use :: as source for IPv6
2024-02-14T20:41:53Z INF Starting metrics server on [::]:36500/metrics
2024-02-14T20:41:53Z INF Registered tunnel connection connIndex=0 connection=2d28ca5d-00f1-402d-8e59-bf325497c2d9 event=0 ip=198.41.192.107 location=kbp02 protocol=quic
2024-02-14T20:41:54Z INF Registered tunnel connection connIndex=1 connection=ce9f4242-9fbd-477e-a57b-fa811672b824 event=0 ip=198.41.200.73 location=vie06 protocol=quic
2024-02-14T20:41:55Z INF Registered tunnel connection connIndex=2 connection=51065991-93d4-4d3a-9d22-9b681bf09be5 event=0 ip=198.41.200.193 location=vie05 protocol=quic
2024-02-14T20:41:56Z INF Registered tunnel connection connIndex=3 connection=b060cd09-8eec-4067-b5f7-4273674b3a51 event=0 ip=198.41.192.7 location=kbp02 protocol=quic

У Home Assistant OS встановіть додаток file editor. Всередині головного каталогу буде файл configuration.yaml

Доброго дня!
Декілька місяців тому ця сторінка стала справжнім відкриттям для мене. Зараз все дуже добре працює, еле зіштовхнувся з проблемою, коли намагався додати Google Home до Home Assistant. Не можу зробити авторізацію в додатку. Гугл каже, спробуйте пізніше. Пошук не допоміг. Може тут хтось допоможе.

Підкажіть, як ви додаєте Google Home до Home Assistant? Чи показує журнал якісь помилки під час підключення?

В журналі такі помилки:
Login attempt or request with invalid authentication from rate-limited-proxy-108-177-64-130.google.com (108.177.64.130). Requested URL: ’/auth/token’. (OpenAuth)
Змінюється тількі IP

Як вирішити цю проблему не знаю. Можливо SSL Google конфліктує з Cloudflared. Знайшов такі обговорення

community.home-assistant.io/...​gin-attempt-failed/234752

community.home-assistant.io/...​-fails-in-2021-7-2/322237

Також можливо буде корисною документація Home Assistant по інтеграції з Google Home

www.home-assistant.io/...​have-home-assistant-cloud

Маючи працюючий сервіс (скажімо transmission чи plex) на тому ж сервері але на іншому порті, чи можна налаштувати до такого сервіса віддалений доступ таким чином щоб він був досупний на саб домені. Наприклад plex.pryklad.pp.ua, transmission.pryklad.pp.ua etc.

Блін, забув знак питання поставити😂 Думав ти знаєш?:))

Не знаю. Пошукайте на форумах Home Assistant

О, сьогодні дізнався. Потрібно зайти в Cloudflare>> Zero Trust>> Access >> Tunels Перейти у вкладку Public hostname >> натиснути + add public hostname

У полі subdomain довільний субдомен у полі домен обрати існуючий домен. Path залишити пустим

Поле Service type найчастіше http поле url — локальна адреса

Ставите cloudflared на хост, а не як доповнення до докер-інсталяції ХА. Тоді ХА, плекс та інше будуть висіти на своїх портах. Питання в доцільності для плексу, тому що локально буде значно швидще, ніж ганяти відеопотік через клаудфлер в 2 боки

Можна, але на клаудфлер обмеження на файл 100 мб.

Дуже Вам вдячний за статтю. Якщо у Вас є телеграм або youtube канал — скиньте посилання будь ласка)

Не з першого разу:-D але вийшло) Тепер зможу налаштовувати HA з роботи, коли є час, ну і доступ будь-де з телефону — необхідно та зручно мати)) Велике дякую за інструкцію))

підскажіть будь ласка куди саме вписате те що у пункті 6

Це дозволить не використовувати такі незручні способи як публічна IP-адреса та VPN.

VPN призначений саме для доступу до локальних ресурсів.
ZeroTier дозволить мати доступ до HA без необхідності мати домен, і на будь якому з довірених пристроїв. І за можливості з’єднання буде пряме, як з цим у cloudflared?

Для Zero Tier потрібен мобільний додаток. Для Cloudflare — ні

Не подобається Zerotier — - підніміть ikev2 vpn на тому ж сервері, що й ha. Для підняття ikev2 нічого на клієнта ставити не потрібно www.digitalocean.com/...​trongswan-on-ubuntu-20-04

Робочим варіантом є використання сервісу від Nabu Casa. З лютого він безкоштовний для українців (звичайна ціна 6.50$). Не чув про ikev2. Прочитаю, ознайомлюсь, дякую. Проте за моїми спостереженнями будь який активний VPN на смартфоні використовує більше заряду, ніж без нього. Активація VPN — зайвий рух, бабусі, або тим, кому потрібно «щоб працювало» це важко пояснити

. Проте за моїми спостереженнями будь який активний VPN на смартфоні використовує більше заряду, ніж без нього.

Це якщо використовувати VPN для роутингу всього трафіку. Якщо передавати/отримувати лише трафік до локальних ресурсів, то проблеми зі споживанням не виникає.

Безкоштовний? Щось не бачив. Зареєструвався в березні. Можна детальніше?

Перший місяць і так безкоштовно. Бачив скрін оплат тут t.me/uasmarthome/8239

корисна стаття) сам рівно те саме робив десь місяць тому. Додайте ще більше інфи про налаштування ssl на cloudflare, наприклад я робив повне шифрування Full (strict)

Додам речення про це. Я розумію що це найвищий ступінь безпеки, але які його відмінності від інших варіантів?

developers.cloudflare.com/...​-configuration/ssl-modes
якщо коротко, то є 4 режими:
1. No — немає шифрування взагалі
2. Flexible — шифрується трафік тільки від браузера до регіонального сервера Cloudflare
3. Full — також шифрується трафік до вашого сервера, може бути самопідписаний сертифікат на вашому домашньму сервері
4. Full(strict) — на вашому сервері повинен бути дійсний довірений сертифікат
Якщо я вірно розумію, то Argo tunnel предоставляє можливість юзати сертифікацію cloudflare в кінцевій точці тунелю, тобто на вашому домашньому сервері. То чого б цим не скористатися

Підписатись на коментарі