Руководство по развёртыванию 2026-04-16 12 мин

2026: OpenClaw Gateway — исходящее управление и защитные ограждения: белый список доменов, Sandbox, аудит JSONL и человек в контуре на удалённом физическом Mac (openclaw.json + FAQ)

Командам безопасности и платформы, которые запускают OpenClaw Gateway на удалённом физическом Mac ZoneMac, нужна та же строгость, что и у любого сервиса с тяжёлым egress: явная исходящая политика, Sandbox инструментов, дополняемый аудит и человек в контуре (HITL) для необратимых действий. В статье — матрица решений, готовая к вставке структура openclaw.json, семишаговый runbook, цифры для отчётов, FAQ и ссылки на сценарии 7×24 и сетевую приёмку.

OpenClaw Gateway: исходящая политика, белый список доменов, Sandbox, аудит и HITL на удалённом физическом Mac 2026

1. Введение и область

Исходящее управление — это не «отрезать интернет», а контракт: какие upstream может вызывать шлюз, какие инструменты разрешены, что пишется в лог и когда нужен человек. На безлюдном физическом Mac этот контракт отделяет полезного агента от открытого прокси.

Ниже предполагается доступ к шлюзу на 127.0.0.1 и возможность править openclaw.json. Для сквозных сценариев агентов 7×24 на железе ZoneMac см. автоматизацию ИИ-агентов на физических узлах ZoneMac. Перед расширением egress зафиксируйте RTT и потери относительно локаций операторов по мультирегиональной приёмке удалённого Mac: RTT, джиттер, потери и SLO.

2. Точки боли

  1. Невидимый рост исходящего трафика. Каждый новый endpoint модели, OAuth или «быстрое» зеркало пакетов расширяет зону поражения; без именованного белого списка при инциденте нельзя отличить ожидаемый трафик агента от компрометации.
  2. Инструменты без границ Sandbox. Shell, браузер и файловые инструменты на общем Mac могут дотянуться до пользовательских данных или секретов CI; слишком мягкие умолчания превращают prompt injection в выполнение команд с правами хоста.
  3. Пробелы в аудите и отсутствие HITL. JSONL без корреляции request_id и ротации забивает диск и ломает комплаенс; необратимые действия без очереди одобрения дают «тихие операции» и риск на пуле железа.

3. Матрица: ограждение × стратегия

Левый столбец подписывает безопасность; правый — минимально жизнеспособная поза для прод-агентов на общих удалённых Mac.

Ограждение Рискованный shortcut Рекомендуемый baseline
Исходящие домены Разрешить весь HTTPS «ради гибкости» Default-deny с явными FQDN по профилям; break-glass с тикетом и сроком
Sandbox инструментов Тот же shell, что и у интерактивного пользователя Отдельные корни workspace, белые списки команд, лимиты подпроцессов и wall-clock по профилю
Аудит JSONL Только консольный лог Структурированные поля: ts, request_id, actor, decision, egress_host; ротация по размеру
HITL Ручное доверие на каждую сессию Политика: высокорисковые инструменты в очередь; SLA-таймеры; эскалация по тайм-ауту
Секреты API-ключи в world-readable файлах Связка Keychain macOS или env из launchd; ACL на пути конфигурации
Управление изменениями Правка JSON без диффа Бэкап, ссылка на PR/тикет, золотой запрос на staging, архив отката

4. Воспроизводимые фрагменты openclaw.json

Блоки ниже иллюстративны: имена ключей должны совпадать с вашей версией OpenClaw; сливайте без затирания привязок каналов и ссылок на креденшелы, держите метку времени в бэкапе на Mac. Для резервного копирования и выгрузки JSONL в расписании см. OpenClaw Gateway: Cron, бэкап и наблюдаемость JSONL на удалённом Mac 7×24.

4.1 Исходящая политика и белый список доменов

{
  "gateway": {
    "outbound": {
      "defaultPolicy": "deny",
      "profiles": {
        "prod-llm": {
          "allowHosts": [
            "api.openai.com",
            "api.anthropic.com",
            "*.openai.azure.com"
          ],
          "denyHosts": ["metadata.google.internal"],
          "tlsMinVersion": "1.2",
          "dns": { "resolver": "system", "ndots": 1 }
        },
        "breakglass-24h": {
          "allowHosts": ["pypi.org", "files.pythonhosted.org"],
          "expiresAt": "2026-04-17T00:00:00Z",
          "ticket": "SEC-4821"
        }
      },
      "activeProfile": "prod-llm"
    }
  }
}

4.2 Sandbox инструментов (workspace и белый список команд)

{
  "gateway": {
    "tools": {
      "sandbox": {
        "enabled": true,
        "profile": "strict-ci",
        "profiles": {
          "strict-ci": {
            "workspaceRoots": ["/Users/agent/OpenClawWorkspaces/ci-bot"],
            "allowCommands": ["/usr/bin/git", "/usr/bin/curl", "/opt/homebrew/bin/jq"],
            "denyPatterns": ["**/\.ssh/**", "**/Library/Keychains/**"],
            "maxSubprocesses": 4,
            "wallClockMs": 120000,
            "network": "outbound-profile:prod-llm"
          }
        }
      }
    }
  }
}

4.3 Аудит (JSONL)

{
  "gateway": {
    "audit": {
      "enabled": true,
      "sink": "file",
      "path": "/var/log/openclaw/audit.jsonl",
      "rotateBytes": 268435456,
      "fields": [
        "ts", "request_id", "channel", "actor", "tool", "decision",
        "egress_host", "http_status", "latency_ms", "hil_state"
      ],
      "redact": ["authorization", "cookie", "x-api-key"]
    }
  }
}

4.4 Очереди человека в контуре (HITL)

{
  "gateway": {
    "humanInTheLoop": {
      "enabled": true,
      "queues": {
        "default": { "timeoutMs": 300000, "escalateTo": "pagerduty:gateway" }
      },
      "requireApprovalFor": [
        { "toolPattern": "payment.*", "queue": "default" },
        { "toolPattern": "prod-k8s.*", "queue": "default" },
        { "egressHost": "*.corp.internal", "queue": "default" }
      ],
      "dryRunChannels": ["staging-slack"]
    }
  }
}

Держите в согласовании профили исходящего трафика, сеть Sandbox и очереди HITL: инструмент с произвольными хостами не должен обходить defaultPolicy: deny, пока активен только профиль break-glass под аудитом.

5. Семишаговый runbook (удалённый физический Mac)

  1. Инвентаризация egress. Соберите FQDN из трасс шлюза за неделю; сравните с целевыми LLM и OAuth; уберите «неизвестные» резолвы до ужесточения.
  2. Бэкап и ветка конфигурации. cp openclaw.json openclaw.json.bak.$(date +%Y%m%d%H%M); приложите дифф к тикету.
  3. Слияние блоков outbound и Sandbox. Сначала defaultPolicy: deny, затем белые списки; привяжите network инструментов к тем же именам профилей.
  4. JSONL-аудит и ротация. Каталог логов — только для пользователя шлюза; при политике — выгрузка ротированных файлов в центральное хранилище.
  5. HITL для высокорисковых инструментов. Начните с платежей и прод-оркестрации; для staging используйте dryRunChannels.
  6. Золотые тесты на localhost. Один разрешённый запрос, один намеренный deny (ожидайте структурированную блокировку в аудите), одна постановка в HITL с путями одобрения и тайм-аутом.
  7. Наблюдаемость и ревью. Дашборды: доля deny, глубина очереди HITL, сбои записи аудита; в календарь — квартальный пересмотр белого списка и команд Sandbox.

6. Разбор deny и HITL

Симптом Вероятная причина Действие
Всплеск событий deny Новый upstream или расклад CDN Дифф недавних промптов/инструментов; добавьте FQDN с тикетом; избегайте широких масок без необходимости
В dev работает, в prod блок Несовпадение профиля или более строгий Sandbox Сравните activeProfile и workspaceRoots; выровняйте маппинг канал→профиль
Очередь HITL забита Слишком много инструментов в классе одобрения Сузьте шаблоны requireApprovalFor; добавьте согласующих в рабочие часы; удлиняйте тайм-аут только после разбора SLA
Файл аудита пропал днём Ротация, права или заполнение диска Проверьте df и stderr launchd; алертьте сбои приёмника аудита отдельно от ошибок запросов
Ложное чувство безопасности Белый список без усиления ОС Парами: FileVault, пользователь с минимальными правами, автообновления безопасности и сетевые контролы на Mac

7. Цифры для цитирования (runbook)

  • Ротация JSONL: rotateBytes: 268435456 (256 МиБ) на файл перед выгрузкой в холодное хранилище — баланс между криминалистикой и давлением на inode в APFS.
  • Ожидание HITL по умолчанию: timeoutMs: 300000 (пять минут) для внутренних очередей ops; короче для клиентских ботов после измерения p95 времени одобрения.
  • Wall-clock Sandbox: wallClockMs: 120000 (две минуты) как первый потолок для нестриминговых цепочек — повышайте только с тикетом и профилированием.

8. FAQ

Заменяет ли белый список доменов корпоративный фаервол для egress OpenClaw?
Нет. Белый список — политика уровня приложения; периметр и фаерволы хоста по-прежнему важны. Накладывайте слои: сетевые контролы для Mac и явные FQDN внутри OpenClaw.

Что относится к Sandbox инструментов, а что к усилению ОС?
Sandbox ограничивает команды и пути агента; Gatekeeper, SIP, FileVault и каденция патчей защищают систему. Нужны оба слоя.

Как долго хранить JSONL на общем удалённом Mac?
Обычно 30–90 дней горячо на диске, дольше — в неизменяемом объектном хранилище при требованиях комплаенса; всегда ротируйте и выгружайте в SIEM — не один бесконечно растущий файл без бэкапа.

Когда обязателен человек в контуре?
Для необратимых или высокорисковых действий: платежи, изменения в проде, массовые коммуникации или широкий egress. Диалог оставляйте автоматическим только если исходящая политика и Sandbox уже ограничивают риск.

Нужен ли рестарт шлюза после правок outbound или Sandbox?
Часть ключей может подхватиться горячей перезагрузкой; привязки TLS, профили песочницы или env launchd часто требуют reload. Проверяйте на staging одним золотым запросом до прода.

9. Итог и выбор узла

Исходящее управление превращает трафик агента в аудируемый контракт: egress по умолчанию запрещён, инструменты в Sandbox, структурированный JSONL и HITL там, где ошибка дорога. Такой стек позволяет держать OpenClaw на общих физических Mac, не превращая каждый узел в универсальный egress-реле.

macOS добавляет устойчивую ценность для безлюдных шлюзов: Gatekeeper, SIP и FileVault снижают классовый риск вредоносного ПО относительно типичных баз Windows; нативный Unix-стек и стабильный надзор launchd удерживают дрейф конфигурации на виду. Mac mini M4 — часто около 4 Вт в простое, бесшумно и надёжно для нагрузок 7×24 — подходит под шлюз и лёгкие инструменты без стойки. Те же политики на железе ZoneMac совпадают с реальными путями SSH и файлов в runbook.

Если нужны ограждения OpenClaw на предсказуемом Apple Silicon с минимальным операционным шумом, Mac mini M4 — сильная стартовая точка: оформите удалённый физический Mac через ZoneMac и закрепите этот runbook на выделенном узле.

Удалённый Mac-шлюз

Нужен физический Mac под исходящую политику OpenClaw?

Аренда Mac mini в ZoneMac: реальное железо, launchd-надзор, JSONL на APFS и SSH для runbook — без шумных общих ВМ.

Оплата по факту Физическое железо Прямой SSH
Аренда macOS в облаке Суперцена — ограниченное время
Получить сейчас