← Назад к «Руководства»

Файловый шаттл: офлайн-доставка обновлений между Edge и Master

Шаттл — канал доставки обновлений между интернет-Edge и закрытым Master для контуров, которые нельзя стыковать по IP: обновления едут бандлом на флешке, SMB-шаре или через SFTP. Master ни по одному протоколу не обращается к Edge — данные всегда переносит оператор носителем или файловая шара.

Эта страница — полное руководство: как работает канал, подключение, цикл рейса и устранение неполадок. Состав вкладки «Шаттл» — на странице вкладки Master.

Зачем это нужно#

Когда контуры разделены (закрытый сегмент без исходящего доступа, DMZ без прямых правил до Master), сетевой Edge-pull невозможен. Шаттл закрывает тот же набор задач офлайн:

  • каталог Windows — wsusscn2.cab и бюллетени MSRC: без свежего cab Windows-агент не видит новые обновления, без MSRC деградирует карта KB↔CVE. Эти позиции включаются в каждый рейс по умолчанию;
  • пакеты MSU (KB) — предзагрузка для раздачи хостам;
  • OVAL-базы и пресеты;
  • зеркала репозиториев ОС — полным деревом (Debian/Astra, RED OS, ALT, Ubuntu…);
  • секции repo.lsus.ru — агенты Windows, KB, плейбуки, шаблоны политик, AI-модели;
  • произвольные файлы по URL — ISO, пакеты, сертификаты, CRL;
  • снимок состояния Edge и отчёт о выполненных задачах — в обратную сторону.

По шаттлу не передаются: журналы Edge и обновление его ПО.

Как это работает#

Двухходовый цикл: Master формирует запрос (request.json), Edge выполняет задачи в интернете и собирает бандл, Master принимает бандл и возвращает квитанцию.

Сущность Где живёт Что это
Канал карточка Edge на Master (канал «Шаттл») Edge без URL: ID, публичный ключ, состояние, дата последнего импорта
Источник (Master) «Шаттл → Источники рейса» Локальный каталог / SMB / SFTP, откуда Master пишет и читает
Назначение (Edge) вкладка «Шаттл» на Edge Куда Edge пишет бандлы и где ищет запросы
Рейс история рейсов на обеих сторонах Запрос (Master→Edge) или приём бандла (Edge→Master)
Задача очередь задач на Master «сделай в интернете»: скачивание, sync зеркала, секция
Бандл каталог bundle-<edge>-<дата>/ на носителе manifest.json, контрольные суммы, storage/, mirrors/, edge_state.json

infoПодписи и доверие

Манифест бандла, request.json и отчёты подписываются Ed25519; отпечаток ключа — первые 16 hex-символов SHA-256 от открытого ключа. При первом контакте ключ подтверждается вручную (кнопка «Доверять и продолжить» — сверьте отпечаток с экрана другой стороны); чужой или сменившийся ключ блокирует приём. Квитанции Master→Edge подписью не защищены. Ключи лежат в данных сервера: data/shuttle_signing.key / .pub (Master), аналогично на Edge.

На носителе всё живёт в outbox/: запросы — outbox/request/<ID Edge>/request.json (у каждого Edge свой файл, они не затирают друг друга), отчёты — outbox/reports/, квитанции — outbox/receipts/. ZIP-архив из браузера outbox/ не содержит — запросы и квитанции работают только через источник (каталог/шару).

Требования#

priority_highЛицензия

Нужен лицензионный модуль «Шаттл». Без него вкладка «Шаттл» и канал в карточке Edge скрыты, API отвечает «Модуль «Шаттл» не активирован в лицензии». Права: admin.shuttle.view (просмотр) и admin.shuttle.operate (управление) — выдаются ролям, у которых уже есть права на сетевые Edge.

  • Edge с выходом в интернет — обычный Edge-сервер; канал со стороны Master создаётся без URL.
  • Носитель: локальный каталог (том флешки, смонтированный на хосте Master), SMB-шара или SFTP. Файловая система — exFAT / ext4 / NTFS; на FAT32 файлы больше 4 ГБ не запишутся (проверка назначения предупреждает).
  • Каталоги по умолчанию: на Master — ./data/master/shuttle (переменная SHUTTLE_DIR), на Edge — ./data/edge/export (EDGE_EXPORT_DIR). Для SMB/SFTP порты 445/22 доступны внутри контура Master.
  • Master сам раз в 15 минут (LSUS_SHUTTLE_POLL_SECONDS=900) проверяет источники: появившийся бандл создает уведомление, устаревший cab и незабранный бандл — предупреждения.

Шаг 1. Подключить шаттл-Edge#

Кнопка «Подключить шаттл-Edge» на пустой вкладке «Шаттл» (или канал «Шаттл» в «Администрирование → Edge-сервер → Добавить») создает карточку Edge и источник за один проход:

  1. На Edge откройте вкладку «Шаттл» — блок идентичности показывает ID Edge, отпечаток и публичный ключ (PEM). Скопируйте их.
  2. На Master в визарде укажите имя Edge, его ID и публичный ключ, а также первый источник (имя + тип).
  3. Итог — карточка канала «Шаттл» и источник; на вкладке «Шаттл» появится отпечаток ключа Master с кнопкой «Копировать».
  4. На Edge, в мастере экспорта на шаге «Задачи Master», закрепите ключ Master (TOFU: «Доверять и применить», сверив отпечаток).

Подключение шаттл-Edge

lightbulbАвтоэкспорт на Edge

На Edge включите «автоэкспорт»: раз в 6 часов Edge сам собирает бандл из того, что просит Master (shuttle_auto_export). Оператору остаётся перенести носитель.

Шаг 2. Добавить источник рейса#

Подвкладка «Источники рейса» — список носителей, через которые ходят запросы и бандлы:

  • Локальный — каталог на хосте Master (том флешки, смонтированный диск);
  • SMB — сетевая шара (хост, ресурс, учетная запись);
  • SFTP — по SSH (хост, порт, логин, ключ или пароль).

Кнопка «Проверить» показывает доступность, свободное место и тип файловой системы; недоступный источник помечается счетчиком неудачных проверок и уведомлением. Один источник можно привязать к конкретному Edge — тогда визард рейса выбирает его автоматически.

Источники рейса

Шаг 3. Собрать заказ: «Подготовить рейс»#

«Подготовить рейс» — Edge и носитель

Визард «Подготовить рейс» (кнопка справа от полосы подвкладок) — семь вкладок:

Вкладка Что настраивается
Edge и носитель какой шаттл-Edge и какой источник; здесь же конфиг Edge (имя, автоэкспорт, автоочистка, расписания загрузок) и «самые новые месяцы MSRC» по умолчанию
Каталог Windows свежий wsusscn2.cab (рекомендуется, если устарел), месяцы MSRC: конкретные или «самые новые доступные» + сколько (Edge сам смотрит индекс Microsoft); KB для предзагрузки MSU
Репозитории ОС sync зеркал Debian/Astra, RED OS, ALT, Ubuntu (существующее зеркало или создать новое)
OVAL базы и пресеты
repo.lsus.ru файловые секции: агенты Windows, KB, плейбуки, шаблоны политик, AI-модели
Загрузка произвольные URL (кнопка «+»), тип файла: прочий / OVAL / ISO / пакет / сертификат / CRL
Сверка итог: что поедет, что закрыто другим путём, что уже заказано у другого Edge

Вкладка «Каталог Windows»

Вкладка «Репозитории ОС»

Вкладка «OVAL»

Вкладка «repo.lsus.ru»

На «Сверке» сначала считается очередь, затем кнопка становится «Записать request.json». Итог записи — подписанный запрос и инвентарь Master в outbox/request/<ID Edge>/, задачи переходят в состояние «В запросе»; оператору показывается инструкция: вставить носитель в Edge и открыть экспорт.

Визард «Подготовить рейс» — сверка

infoДубликаты и «закрыто другим путём»

Если позиция уже есть на Master (приехала по HTTPS или другим рейсом) или уже заказана у другого шаттл-Edge, сверка покажет причину и позволит вернуть позицию в рейс кнопкой «Вернуть». Повторный заказ неуехавшего рейса не создает дублей — дедупликация по идентификатору задачи.

Шаг 4. Выполнить задачи на Edge#

На Edge откройте вкладку «Шаттл» и запустите «Мастер экспорта бандла» — пять шагов:

  1. Назначение — куда писать (локальный том / SMB / SFTP), проверка места и ФС;

Мастер экспорта: назначение

  1. Что знает Master — квитанции прошлых рейсов: что уже принято, «Уже у Master» не повезут;

Мастер экспорта: что знает Master
3. Задачи Master — TOFU-подтверждение ключа (при первом контакте) и выполнение request.json: Edge скачивает cab/MSRC/MSU, синхронизирует зеркала и секции. Повтор того же носителя не перекачивает — задачи дедуплицируются;

Мастер экспорта: задачи Master
4. Состав — группы «Запрошено Master» / «Новое с прошлого рейса» / «Уже у Master» / «Не запрошено»; можно снять лишнее; счётчик «итоговый размер vs свободное место»;
5. Запись — бандл пишется с манифестом и подписью; итог: «Выньте носитель и на Master откройте «Принять рейс». Квитанция приедет следующим рейсом».

Мастер экспорта: запись бандла

Мастер экспорта на Edge — состав

Уведомления Edge: «Бандл шаттла готов к переносу», «Задачи Master применены», ошибки экспорта, «Бандл не забран» (если Master не принял бандл дольше трёх дней).

Шаг 5. Принять рейс на Master#

Кнопка «Принять рейс» — одно окно без шагов: источник → рейс → отчёт Edge → состав → параметры импорта.

  • Отчёт Edge: какие задачи выполнены/упали; упавшие можно «Повторить» (вернутся в очередь следующего рейса).
  • Состав по типам со статусами относительно склада Master: «Новее» / «То же» / «Старее» / «Нет на Master» / «Битый» (по контрольной сумме). Старое по умолчанию снято; даунгрейд каталога Windows — только явным чекбоксом.
  • Проверка подписи: незакреплённый ключ Edge → «Доверять ключ» (TOFU); несовпавший — импорт блокирован.
  • Можно принять ZIP из браузера («Разобрать ZIP») — только для мелких бандлов (cab, MSRC, OVAL): ZIP не содержит outbox/, дерево зеркала в ZIP отклоняется.
  • Импорт идёт фоново: «Скачать и импортировать» → прогресс → итог (закрытые задачи, обновлённый снимок Edge, файлы в staging).

Продуктовые типы идут в те же таблицы, что и сетевой обмен с Edge: каталог Windows, KB, OVAL, агенты, плейбуки, шаблоны, AI-модели; зеркала публикуются локальной копией, а не прокси. Типы iso, package, cert, crl складываются в панель «Полученные файлы» (скачать/удалить — удаляется только непринятое).

Полученные файлы

Принять рейс

Шаг 6. Закрыть рейс и проверить результат#

  • Квитанция пишется в outbox/receipts/ источника — следующий рейс покажет на Edge «Уже у Master» только для реально принятых позиций.
  • Подвкладка «История рейсов»: тип (запрос/приём), состояние (идёт / готово / ошибка / частично / отменён), бандл и сообщение.
  • Задачи закрываются: предзагрузка MSU, прогоны каталога Windows, пресеты OVAL получают «Импортировано»; позиции, приехавшие другим путём, — «Закрыто другим путём».
  • Карточка шаттл-Edge обновляет «последний импорт» и снимок (списки KB/агентов/MSRC с Edge) — списки файлов для следующего заказа строятся по снимку, без сети.

История рейсов

Очередь задач и её состояния#

Подвкладка «Очередь задач» — все заказы всех шаттл-Edge, сгруппированные по смыслу: «Каталог Windows», «OVAL», «Репозитории ОС», «Агенты Windows», «AI-модели», «Политики и сценарии», «ISO», «Пакеты», «Сертификаты», «CRL», «Прочие файлы», «Конфиг Edge».

Очередь задач шаттла

Типы задач: загрузка по URL, wsusscn2, MSRC (месяцы или «последние N доступных»), KB MSU, sync зеркала, создать зеркало, секция repo.lsus.ru, файл с Edge, конфиг Edge.

Состояние Подпись в UI Что значит
queued В очереди ждёт записи в запрос
written В запросе уехало на Edge с request.json
applied На Edge Edge выполнил, результат ждёт приёма
imported Импортировано бандл принят на Master
failed Ошибка Edge не смог выполнить (можно повторить)
satisfied Закрыто другим путём уже есть на Master: приехало по HTTPS, другим рейсом или появилось после постановки в очередь

Операции: удалить можно только «В очереди»; «вернуть в рейс» — закрытое другим путём и ошибку; «переназначить» — только на шаттл-Edge и только из очереди. При возврате из «В запросе»/«На Edge» задача получает новый идентификатор — Edge мог уже выполнить старую и иначе пропустит повтор. Пока запрос не записан, повторный заказ cab/MSRC сливается в ту же строку; после отъезда запроса ставится новая задача. Задача «Конфиг Edge» применяет ограниченный набор ключей (имя, автоэкспорт, автоочистка, расписания загрузок) — остальной конфиг Edge через шаттл не меняется.

Уведомления шаттла#

Master: новый бандл в источнике; устарел wsusscn2.cab; старый бандл не забран; ошибка импорта; источник недоступен; «задачи ждут выгрузки запроса»; «отчёт шаттла применён». Edge: бандл готов; экспорт не удался; задачи Master применены; автоэкспорт выполнен; бандл не забран. Из колокольчика Master кнопки «Принять рейс» и «Подготовить рейс» открывают визарды сразу.

Устранение неполадок#

Симптом Причина Действие
«подпись манифеста не совпала — импорт заблокирован» ключ Edge сменился/чужой бандл сверьте ключ на Edge (вкладка «Шаттл»), при легитимной смене закрепите новый через «Доверять ключ»
«ключ подписи неизвестен Master — подтвердите отпечаток» первый рейс (TOFU) сверьте отпечаток с экраном Edge и нажмите «Доверять ключ»
«Подпись запроса не совпала с закреплённым ключом Master. Задачи заблокированы» (Edge) на Master переустановлены ключи подписи на Edge повторно закрепите отпечаток Master
«На носителе бандл другого Edge» один носитель используют два канала у каждого запроса свой файл в outbox/request/<ID>/, бандлы примите по отдельности или разнесите носители
«ZIP содержит дерево зеркала…» зеркало не влезает в ZIP-путь зеркала — только через носитель/SMB/SFTP
«в ZIP нет manifest.json» / «Файл не является ZIP-архивом бандла» битый/чужой архив загрузите архив бандла заново
«можно удалить или скачать только файл со статусом staged» / «путь вне shuttle-staging» попытка удалить уже принятым файл принятое удаляется из своих разделов, не из «Полученных файлов»
«Удалить можно только задачу в очереди» / «вернуть… только satisfied или failed» / «переназначить… только на шаттл-Edge» состояние задачи не допускает операцию см. таблицу состояний выше
«Edge не найден — создайте карточку канала «Шаттл»» бандл от незарегистрированного Edge создайте карточку через «Подключить шаттл-Edge» или укажите её в визарде приёма
«недостаточно места в назначении: нужно N, свободно M» тесный носитель снимите тяжёлые позиции на «Составе» или возьмите больший носитель
«ФС FAT32: файлы больше 4 ГБ записать нельзя» FAT32 используйте exFAT/NTFS/ext4
«в назначении нет запроса Master (outbox/request/)» Edge не видит запрос носитель с записанным «Подготовить рейс» подключён к назначению Edge? Перепишите запрос
«Модуль «Шаттл» не активирован в лицензии.» нет модуля в ключе активируйте ключ с модулем «Шаттл» («Администрирование → Поддержка»)
stale-баннер «бандл собран …, последний импорт …» бандл лежит, квитанции нет примите рейс на Master и привезите квитанцию обратно

Ограничения#

  • ZIP из браузера не несёт outbox/ — квитанции и отчёты только через источник; дерево зеркала в ZIP отклоняется.
  • Квитанции Master→Edge не подписываются.
  • Зеркала возятся полным деревом — инкрементальной доставки нет.
  • Репозитории из бандла публикуются локальной копией, не прокси.
  • Логи и обновление ПО Edge через шаттл не передаются.
  • Master никогда не обращается к Edge по сети — «Подготовить рейс» только ставит задачи в очередь.

lightbulbСертификаты и CRL в закрытом контуре

Автозагрузка списков отзыва (CRL) при Пограничном сервере в режиме шаттла кладёт файлы в «Полученные файлы» — скачайте и импортируйте вручную. Полный цикл — в руководстве Сертификаты и списки отзыва.

Связанные страницы#

Руководства:

Справочники: