OpenClaw 2026 на практике: белый список исходящих доменов и песочница навыков с только чтением на арендованном удалённом Mac

1 апреля 2026 · ~8 мин · Техническая команда MacCompute · Руководство

На арендованном удалённом Mac стек OpenClaw работает на железе и образе, которые вы не контролируете физически: типичная цель — минимальные привилегии для пакетов навыков, рабочая область с монтированием только для чтения там, где возможно, и явный белый список исходящих доменов, чтобы инструменты не ходили на произвольные хосты. Ниже — компактный runbook для внутренней документации после поднятого шлюза (см. Docker, прокси и усиление OpenClaw) и SSH-доступа по чек-листу SSH/VNC; для совместной работы с локальным Ollama на том же узле — пакетный инференс OpenClaw + Ollama.

Три риска «аренды вычислений» без политики

  1. Дрейф версий — ночное обновление образа или @latest расширяет набор инструментов и сетевых вызовов без тикета.
  2. Смешение каталогов — запись агента в домашние каталоги или общие тома провайдера смешивает артефакты с чужими сценариями.
  3. Сырой исходящий канал — щедрый outbound у колокации не заменяет прикладную политику: один curl из навыка обходит доверие к :ro.

Шлюз и фиксация версий пакетов навыков

Трактуйте арендованный Mac как небольшую прод-ячейку. Шлюз: при глобальном CLI ставьте явный semver ([email protected]), фиксируйте команду обновления в change control, после bump запускайте openclaw doctor. В Docker задайте OPENCLAW_IMAGE с digest, а не только тег :latest, и храните digest рядом с compose. Пакеты навыков: вендорские и внутренние деревья — в версионированном каталоге (git-тег или checksum tarball); конфигурация должна указывать на замороженное дерево до планового обновления. Снимок конфига: экспортируйте эффективный конфиг OpenClaw (секреты из env вычеркните) в тикет при каждом изменении пинов — на общих хостах это доказательство «что было live» при инциденте.

Фиксация без политики исходящего трафика бесполезна: навык с HTTP-клиентом сразу открывает сеть. Сочетайте пины с таблицей монтирования и белым списком ниже.

Песочница каталогов и таблица параметров монтирования «только чтение»

На macOS и в Docker задайте один канонический корень workspace, :ro для кода и эталонных данных, отдельный rw scratch для выходов агента. Таблица — чек-лист под флаги docker -v или compose volumes; режим изоляции агентов в духе non-main согласуйте с апстрим-доками и материалом про agents.defaults.sandbox.mode в гайде по развёртыванию.

Сопоставьте строки с раскладкой каталогов вашего провайдера аренды Mac.
Параметр Рекомендуемая позиция Заметка для аренды
Корень workspace Один путь (напр. /srv/openclaw/workspace) Не размазывать запись по home и общим утилитам других сценариев на том же хосте.
Дерево репозитория клиента :ro Перевод в rw — только в окно обслуживания; иначе навык меняет происхождение исходников.
Каталог skill-пакета :ro после установки Исключает самомодификацию в рантайме; обновления через ваш конвейер пакетов.
Scratch / выходы Выделенный rw-том, квота если есть Единственное место крупных файлов агента; ротация и учёт диска на съёмной ёмкости.
Конфиг и секреты POSIX-права без world-read На шаблонных образах аренды проверьте umask и группы до первого старта шлюза.
Режим песочницы ОС non-main для недоверенных сессий Согласуется с рекомендациями для групповых каналов в документации OpenClaw.

Пример строк volumes (пути подставьте под MacCompute или другого оператора):

- /data/customer/acme/src:/workspace/src:ro
- /data/skills/acme-pack/v1.4.2:/skills/acme:ro
- /data/scratch/acme:/workspace/out:rw

Настройка белого списка исходящих доменов: пошаговый сценарий

Здесь сходятся безопасность аренды вычислений и прикладная политика: сеть колокации часто широкая, поэтому намерение фиксируется на процессе или периметре.

  1. Инвентаризация — по каждому навыку перечислите хосты: реестры пакетов, API моделей, Git, телеметрия, вебхуки; учитывайте поддомены API.
  2. Классификация — разделите «обязательно для успеха задачи» и «опционально»; аналитику отложите до стабилизации списка.
  3. Внедрение — один choke point: pf/профиль, egress-прокси с правилами по доменам или сетевая политика контейнера, если поддерживается. Если в OpenClaw есть фильтры URL на уровне инструментов — дублируйте тот же список в документе и в живом правиле.
  4. Поэтапное ужесточение — сначала режим только логирования или широкий allow, соберите отказы за рабочий день, затем сужайте; на аренде шумные deny часто вскрывают забытые CDN и редиректы.
  5. Проверка — прогоните сухую задачу по каждому пути навыка; ошибка должна явно говорить о блокировке egress, а не «таймаут без причины».

Локальный инференс (например Ollama) держите на 127.0.0.1: loopback не проходит внешний фильтр, но bind и права всё равно задокументируйте.

Журналы аудита: ключевые поля и практика

На арендованном Mac аудит отвечает на два вопроса постфактум: что агент пытался сделать и что было запрещено. Минимум полей (лучше JSON):

  • Время и сессия — UTC, id сессии шлюза или канала, при мультиплексировании — метка арендатора.
  • Инструмент — имя, версия skill-пакета, хэш конфигурации.
  • Файловая система — запрошенный путь, нормализованный абсолютный путь, корень workspace, операция read/write/exec, исход allow/deny.
  • Сеть — для HTTP-инструментов: метод, хост, при безопасном логировании — IP или причина блока.
  • Версия политики — id списка egress и карты монтирования, чтобы аудитор знал действовавший набор правил.

Пересылка в ваш sink (объектное хранилище, SIEM, отдельный лог-хост): у провайдера диски могут переиспользоваться — локальную ретенцию считайте best-effort и настройте forwarder через launchd или оркестратор.

FAQ: повышение привилегий, обход путей (path traversal) и диагностика

Симптом: «permission denied» на существующий файл. Проверьте :ro монт, Full Disk Access для процесса шлюза на macOS и сопоставление uid/gid контейнера с правами на хосте.

Симптом: записи вне scratch. Просмотрите цели симлинков до монтирования, отключите следование по ссылкам там, где позволяет рантайм; в обёртках инструментов отвергайте ../ после нормализации.

Симптом: 403 у API после allowlist. Имя в TLS/SNI может отличаться от логического API (CDN). Добавьте фактический FQDN из логов; не открывайте целый регистраторский домен без принятия радиуса поражения на общей машине.

Симптом: «на ноутбуке работает», на аренде нет. Сравните таблицу монтирования, uid/gid и резолверы DNS — у шаблонов аренды иные search domain и конечные точки.

Симптом: подозрение на расширение поверхности после обновления навыка. Откат на предыдущий digest, diff сетевых и файловых аудит-записей между версиями; расширение allowlist только с номером тикета.

Резюме

Аренда Mac удобна для нативных macOS-задач и долгих агентов, если исполнение навыков вести как прод-код: пины версий, :ro для чувствительных деревьев, белый список исходящих доменов и логи с нормализацией путей. Это минимальный воспроизводимый пакет до мультиарендаторской нагрузки на одном железе.

Заказ узла