Многофакторная аутентификация
Чтобы усложнить жисть плохим челдобрекам, пытающимся добраться до чужого имущества, например в виде HA via Internet, решил настроить двухфакторную аутентификацию, с помощью модуля TOTP (Time-basesd One Time Passwords) - модуля краткосрочных одноразовых паролей по-простому. Пароль будет генерироваться при каждой попытке входа и меняться через 30 секунд (если использовать Google Authenticator, другие не пробовал).
Первое, что нужно сделать - установить на телефон из Google Play (для Android) программку Google Authenticator (далее - GA). Запускаем его (скриншотов с телефона, сорян, не будет, так как политика программы запрещает их делать, но там ничего сложного). В HA входим в профиль пользователя, жмякнув на иконку слева внизу. На закладке "Безопасность" ищем раздел "Модули многофактурной аутентификации" и включаем единственную там опцию, после чего появится окно с QR-кодом, который мы считываем в GA, нажав кнопку "Добавить" вроде.
В GA появится краткосрочный код, который вводим в поле ниже QR-кода. После чего должно появится окно об успешной настройке модуля.
Теперь при входе в HA через Web-интерфейс, после штатного окна с вводом пароля будет появляться еще одно с полем для ввода одноразового пароля, который будет появляться в GA. Каждый полученный пароль будет меняться каждые 30 секунд - надо будет успевать.
Важно
- Вверху окна GA нажать кнопку с иконкой облака, чтобы код(ы) были сохранены в вашем аккаунте Google. В последствии при новой установке GA эти коды будут автоматически подтянуты из используемого аккаунта Google.
- Рекомендую в GA сделать копию кодов (ну, мало-ли накрылся или потерялся телефон) на другое устройство. Для этого необходимо на существующем устройстве запустить GA, войти в меню (кнопка в левом верхнем углу), пункт меню "Перенос кодов", далее "Экспорт кодов" после чего появится QR-код, который нужно будет импортировать (так же через меню) на новом устройстве. Коды, которые вы отметили галками, перенесутся. Еще. Допустим вы экспериментировали и у вас появилось несколько кодов, которые стали ненужными, вы хотите удалить лишнее, не боясь, что вы их потеряете навсегда - фиг вам вы найдете кнопку удаления!!! Нашел только один вариант. Так же идем в экспорт кодов и экспортируем, точнее доходим до QR-кода, жмем "Далее", выделяем ненужные коды и экспортируем, выбрав галку "Удалить после экспорта". После этого идем на основной экран GA и жмем кнопку с облаком - в аккаунте они тоже удалятся.
Использование многофакторной аутентификации не гарантирует 100-процентную защиту, а значит нужно что-то еще... Поэтому
SSL-шифрование
Есть шанс, что соединение извне с сервером HA (если у вас оно настроено без шифрования) может быть "подслушано" и использовано не в положительных для вас целях. Чтобы исключить подобное используются SSL-сертификаты (ключи) для шифрования трафика. Для этого предлагается использовать дополнение Let's Encrypt, с помощью которого можно бесплатно получить SSL/TLS-сертификаты шифрования. Есть вариант создания самоподписанных сертификатов, но это точно не пойдет, если вы завязываете HA например с Яндекс.Алисой. С Алисой и т.п. я связываться не хочу от слова никогда (так же как и с другими облаками), но... Итак, рассмотрим тот случай, когда сервер HA стоит за маршрутизатором, у которого белый внешний IP и зарегистрированный домен (мой случай). Идем в Настройки->Дополнения->Магазин дополнений, ищем нужное нам дополнение, устанавливаем, но пока не запускаем. На закладке "Конфигурация" вводим имя своего домена и e-mail, на который будет зарегистрирован сертификат. После ввода имени домена (желательно как минимум третьего уровня) нужно обязательно нажать на крестик (обведен красным) чтобы он пропал, иначе при сохранении конфигурации (кнопка ниже) будет выдаваться ошибка.
<<< Подборка статей на этом канале про Home Assistant >>>
В настройках маршрутизатора нужно хотя-бы временно (на момент создания сертификата) пробросить (сделать переадресацию) портов 80 и 443 с внешнего адреса на внутренний адрес сервера HA - тут я не советчик, так как маршрутизаторов много разных и универсальной инструкции не получиццо... Так же пробрасываем, например, порт 49200 (для частного использования используются номера из диапазона 49152-65535) с внешнего адреса на штатный порт 8123 сервера HA, после чего web-интерфейс HA будет доступен из инета по адресу your_domain:49200. После переходим на закладку "Информация" в Let's Encrypt, запускаем и дожидаемся подобной ниже "картинки" - зеленый кружок справа вверху говорит о том, что все нормально запустилось.
Далее на закладке "Журнал" ищем строчки типа указанных ниже, которые скажут нам о том, что сертификаты получены и сохранены. В данном случае, мои сертификаты будут действовать до 21 мая 2025 года и их надо буде заранее обновить или настроить автоматическое обновление (но об этом позже).
В файле configurations.yaml в разделе http нужно добавить или проверить наличие следующих строчек
Перегружаем HA. После этого наш HA будет доступен по адресу, указанному в строчке base_url и соединение будет защищенным (шифрованным). Переадресацию портов 80 и 443 на маршрутизаторе можно отключить, если они не нужны, но при обновлении сертификатов она понадобится. Продолжим настраивать HA в следующих статьях, поэтому
Ставьте лайки, оставляйте комментарии, страница в VK, подписывайтесь на канал, присоединяйтесь в Telegram чтобы ничего не пропустить!
#умныйдом #календарь #HA #HomeAssistant #сделайсам #минипк #неттоп #nettop #HACS #nodered #node-red #nodered #dwainsdashboard #dwains #dashboard #планшет #ibeacon #bluetooth #ssl #защита