Домашняя инфраструктура постепенно обрастает адресами. У сервера один IP, у панели управления — другой, у видеонаблюдения ещё и нестандартный порт. Пока всё настраиваешь, эти адреса помнишь. Через неделю уже приходится искать нужную закладку.

Но неудобство не только в адресах. Раньше для доступа к части домашних сервисов приходилось включать VPN даже дома. В предыдущей статье я рассказывал, почему это стало проблемой. Теперь задача шире: сделать доступ предсказуемым и убрать лишние действия.

Дома — прямой доступ

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

Правила теперь относятся ко всей доверенной домашней подсети. Это важно: сервером можно пользоваться с другого ноутбука, а не только с одного компьютера, чей адрес когда-то внесли в исключение.

При этом домашнее доверие не распространили на гостевые устройства и отдельный сегмент умного дома. Логины, пароли и SSH-ключи тоже остались обязательными. Разрешение пройти по сети не заменяет вход в сам сервис.

Прямой доступ проверили с домашнего компьютера без VPN. Открывались нужные панели, работали SSH и HTTPS видеосервиса. Все остальные компьютеры отдельно не проверяли: для них действуют те же правила подсети.

Вместо IP и порта — понятное имя

Следующим шагом стал Frigate. Он уже записывал видео, но вход по внутреннему адресу с номером порта был неудобен.

Для него добавили запись в локальном DNS и настроили HTTPS на стандартном порту. Теперь в браузере достаточно открыть имя сервиса. В обезличенном примере это выглядело бы так:

https://video.example.net

Локальный DNS направляет запрос на домашний сервер. Само наличие доменного имени не делает панель доступной из интернета: возможность подключения по-прежнему определяется маршрутом и правилами доступа.

Пока этот этап завершён для видеосервиса. Остальные панели ещё предстоит привести к такому же виду.

Как получить сертификат для закрытой панели

Для HTTPS использовали сертификат Let’s Encrypt с проверкой DNS-01.

При такой проверке владение доменом подтверждается специальной TXT-записью в DNS. Центру сертификации не требуется открывать саму панель управления. Этот способ подходит и для сервисов, которые доступны только внутри сети. Механизм описан в документации Let’s Encrypt.

На практике пришлось учесть распространение DNS-записи. Создать её через API недостаточно: запись должна стать доступна на авторитетных DNS-серверах, прежде чем начнётся проверка.

После выпуска сертификата настроили его применение к веб-сервису и автоматическое продление. Планировщик включён, необходимые обработчики установлены. Фактического продления по сроку ещё не было — сертификат только выпущен.

Вне дома — через домашний VPN

Доступ по новому имени проверили уже через WireGuard. Имя разрешалось, HTTPS отвечал с успешной проверкой сертификата, браузер показывал форму входа без предупреждения.

Открывать административную панель наружу ради сертификата не потребовалось. Доступ сохранили для доверенных домашних сетей и предусмотренного VPN-подключения.

Здесь важно разделить результаты проверок. Прямой домашний доступ проверяли раньше. Новое имя и сертификат проверили через VPN. Повторную проверку нового адреса непосредственно из домашней сети на этом этапе ещё не проводили.

Проверять стоит весь путь

В мониторинге проверку видеосервиса тоже перевели на HTTPS по имени с проверкой TLS. После изменения Uptime Kuma подтвердил успешный ответ.

Это полезнее проверки одного IP: теперь мониторинг использует имя и сертификат, с которыми открывается сервис. Но успешный ответ панели сам по себе не подтверждает запись камер — у видеоархива свои проверки.

Получился более удобный порядок работы: дома подключаться напрямую, вне дома — сначала включать домашний VPN, затем открывать знакомое имя сервиса. Следующий шаг — постепенно применить этот подход к остальным внутренним панелям.