Инженер за рабочей станцией в технической комнате

Сервисный доступ · вырос из NetBird

Доступ к объекту для инженерной команды.

Сервисный доступ к системам объекта — с понятными границами для команды.

  • Без VPN и входящих портов
  • Только разрешённый host:port
  • P2P с relay fallback
  • Terminal, SFTP и аудит
3сценария подключения
2маршрута связи
24/7контроль сервисного доступа

Выросли из NetBird

Сетевой подход — для точечного сервисного доступа

В основу взят подход NetBird к защищённой связности. SHD применяет его к обслуживанию объектов: проектные ACL, точный host:port, P2P с relay fallback, terminal и аудит.

Исходная модель NetBird
Версия SHD Сервисные агенты

Что решает агент

Доступ к сервису, а не ко всей сети

Агент стоит на постоянно работающей машине объекта и держит исходящее соединение. Локальная сеть наружу не открывается.

Граница доступа

Только сохранённый host:port.

Пользователь не получает маршрут к подсети и не может подменить цель.

Запрет по умолчанию

После регистрации LAN закрыт. Сначала политика порта, затем ACL и роль.

01

Контроллеры и агенты

Статус, heartbeat, версия и действия — внутри проекта.

02

Сервисы и устройства

Рабочий список разрешённых IP:порт. Не обход ACL.

03

Туннели и публичные адреса

Стабильный name.access.xyz.su переживает смену внешнего IP.

04

Правила, карта и журнал

Кто ходил, что открыто, почему отказ.

Три роли одного runtime

Агент выбирается по месту работы

Один бинарь shd-agent. Режим зависит от того, где он стоит.

01

Controller-agent

В сети объекта. Исходящий TLS, heartbeat, только сохранённые TCP-цели.

02

User-agent

На компьютере инженера. Одна QUIC-сессия, параллельные HTTP, SSH и TCP.

03

Server-agent

На сервере. Gateway, Exit-node и speed test по route policy.

Маршрут запроса

От разрешения до первого байта

Сервер авторизует. Данные идут P2P, если прямой путь недоступен — relay.

01

Пользователь или приложение

Overlay, публичный endpoint или туннель.

02

SHD проверяет доступ

Пользователь, проект, сервис, роль, ревизия агента.

03

P2P или relay

Сначала прямой QUIC. Если нет — бинарный relay.

04

Controller-agent

Локальный TCP только к точному host:port.

05

Точный сервис

HTTP, SSH, Loxone — своей обычной авторизацией.

ПРЯМОЙ КАНАЛ

P2P QUIC

Трафик напрямую между агентами. Relay данные не видит.

РЕЗЕРВНЫЙ КАНАЛ

Relay fallback

Если NAT или firewall мешают P2P, кадры идут через relay.

Одна QUIC-сессия на агент · отдельный stream на каждое TCP-соединение.

Безопасность

Не VPN и не открытая LAN

Право на проект сеть не открывает. Нужны роль, порт и ACL.

Модель доступа

Четыре границы на каждый запрос

Проект задаёт контекст, политика — сервис, ACL — кто проходит. Отзыв закрывает путь сразу.

01

Роль модуля

Чтение агентов не равно праву менять настройки.

02

Портовая политика

192.168.1.3:443 не открывает :80 и соседей.

03

ACL-правило

Пользователь или группа, точный сервис, allow/deny.

04

Отзыв и аудит

Сессии закрываются сразу. Всё пишется в журнал.

Рабочий контур

Инструменты для подключения и эксплуатации

От установки агента до терминала, маршрутов и разбора сбоев.

01

HTTP, HTTPS и WebSocket

Web-интерфейсы и API сохранённых сервисов.

02

Terminal и SFTP

Браузерный SSH без локального агента. SFTP — отдельная роль.

03

Публичные адреса

name.access.xyz.su. ACL и логин приложения на месте.

04

Overlay и маршруты

Native L3 100.126.0.0/16. Обычный интернет-маршрут не ломается.

05

Exit Network

Выпуск трафика с IP серверного агента по route policy.

06

Heartbeat и jobs

Push-first: sync, update, reboot. HTTP — запасной канал.

Ввод в эксплуатацию

От установки до рабочего подключения

Сначала runtime, потом точный сервис, доступ и проверка транспорта.

  1. 01

    Установить и зарегистрировать

    Постоянная машина, shd-agent, enrollment token.

  2. 02

    Дождаться статуса online

    Исходящий TLS, heartbeat, список сервисов.

  3. 03

    Сохранить нужные порты

    Только нужные цели: 443, 875, 8123, 22.

  4. 04

    Назначить роли и правила

    Роли и ACL. По умолчанию LAN закрыт.

  5. 05

    Открыть сервис и наблюдать

    Overlay или endpoint, первый ответ, журнал.

Перед подключением

Вопросы, которые важны на объекте

Короткие ответы о ролях runtime, маршруте данных, границах доступа, терминале и диагностике.

Что такое shd-agent?

Это один Go-runtime с разными ролями. Controller-agent работает в сети объекта, user-agent — на рабочем устройстве инженера, server-agent — на сервере со специальными модулями.

Нужен ли VPN или входящий порт?

Нет. Controller-agent сам устанавливает исходящее защищённое соединение. Пользователь получает доступ только к сохранённым сервисам, а не ко всей локальной сети.

Что происходит при недоступном P2P?

После неудачи прямого QUIC-соединения user-agent активирует relay fallback. Первый запрос сохраняется, а данные идут бинарными кадрами через relay и controller-agent.

Можно ли дать доступ ко всей подсети?

Нет, это не модель модуля. Разрешается точный service/host/port; broadcast, multicast, metadata, адреса backend и relay блокируются, а hostname проверяется по всем IP.

Какие сервисы можно открыть?

Любые явно добавленные TCP-сервисы, к которым агент имеет локальный доступ: HTTP/HTTPS, WebSocket, SSH, Loxone, Home Assistant и другие конкретные порты.

Работает ли terminal из браузера?

Да, browser SSH terminal не требует локального user-agent на телефоне или компьютере. Нужны роль terminal, сохранённые SSH username и credential; для SFTP дополнительно нужна роль sftp.

Что такое Exit Network?

Это маршрут через server-agent: Routing gateway принимает трафик route group, relay связывает его с Exit-node, а Exit-node выпускает разрешённый трафик к целевому адресу со своего IP.

Как быстро отозвать доступ?

Удалите правило, порт или endpoint либо измените роль. Backend закрывает активные сессии, обновляет allowlist агента и фиксирует действие в журнале — старую сессию ждать не нужно.

Как понять, где проблема?

Проверьте controller-agent online, user-agent, route policy, target из сети агента, shd99 и маршрут 100.126.0.0/16. Для транспорта смотрите p2p_first_byte, last_path, p2p_sent и relay_sent.

Можно ли подключить уже работающий объект?

Да. Сначала проверяются сеть, контроллеры, target-порты, способы обслуживания и требуемые роли. Затем добавляется минимальный набор сервисов без автоматического доступа к остальной LAN.

Подключение объекта

Спроектируем границу доступа

Расскажите, какие контроллеры, устройства и операции нужно обслуживать удалённо. Мы разберём сеть объекта, роли runtime, точные порты, вариант транспорта и план запуска.

До первой встречи можно подготовить схему сети, список контроллеров, host:port сервисов, требования к terminal/SFTP и организационную модель доступа.

Код с картинки
Код с картинки