Выберите схему предоставления доступа
Отдавайте предпочтение наиболее узкой схеме, удовлетворяющей требованиям рабочего процесса.
Не используйте прямое публичное перенаправление портов к Gateway. Если публичный доступ
необходим, установите перед ним прокси с учётом идентификации и сделайте прокси
единственным сетевым путём к Gateway.
Предварительная инвентаризация
Зафиксируйте следующие сведения перед изменением политики привязки, прокси, Tailscale или каналов:- Хост Gateway, пользователь ОС и каталог состояния (по умолчанию
~/.openclaw). - URL Gateway и режим привязки (
gateway.bind; порт по умолчанию18789). - Режим аутентификации, источник токена/пароля или источник идентификации доверенного прокси.
- Каждый включённый канал и поддерживаемые им личные сообщения, группы или Webhook.
- Агенты, доступные нелокальным отправителям.
- Профиль инструментов, режим изоляции и политика инструментов с повышенными привилегиями для каждого доступного агента.
- Внешние учётные данные, доступные этим агентам.
- Расположение резервной копии
~/.openclaw/openclaw.jsonи учётных данных.
Базовые проверки
Выполните перед открытием доступа:checkId и соответствующего ключа исправления
см. в разделе Проверки аудита безопасности.
Для удалённой проверки через CLI передавайте учётные данные явно:
Минимальная безопасная базовая конфигурация
Используйте следующую структуру в качестве отправной точки для развёртываний с внешним доступом:tools.exec.security: "deny" блокирует все вызовы exec, включая безопасную
диагностику. Если требуются диагностические команды или команды с низким уровнем риска, ослабляйте это ограничение только
после выбора конкретных отправителей, агентов, команд и режима подтверждения,
соответствующих вашей модели угроз.
Доступ через личные сообщения и группы
Каналы обмена сообщениями являются поверхностями для ввода недоверенных данных. Перед разрешением личных сообщений или групп:- Предпочитайте
dmPolicy: "pairing"или строгий списокallowFromвместоdmPolicy: "open". - Не сочетайте списки разрешений
"*"с широким доступом к инструментам. - Требуйте упоминания в группах, если только доступ к комнате не контролируется строго.
- Задайте
session.dmScope: "per-channel-peer"(или"per-account-channel-peer"для каналов с несколькими учётными записями), если боту могут отправлять личные сообщения несколько человек, чтобы контекст сеансов личных сообщений не был общим. - Направляйте общие каналы агентам с минимальным набором инструментов и без личных учётных данных.
Проверки обратного прокси
Для прокси с учётом идентификации:- Прокси должен аутентифицировать пользователей перед перенаправлением запросов к Gateway.
- Межсетевой экран или сетевая политика должны блокировать прямой доступ к порту Gateway.
gateway.trustedProxiesдолжен содержать только исходные IP-адреса прокси.- Прокси должен удалять или перезаписывать предоставленные клиентом заголовки идентификации и перенаправления.
- Задайте
gateway.auth.trustedProxy.allowUsers, если прокси обслуживает более одной аудитории. - Используйте
gateway.auth.trustedProxy.allowLoopbackтолько для прокси на том же хосте, где локальные процессы являются доверенными, а заголовки идентификации контролируются прокси.
openclaw security audit --deep. Замечания,
связанные с доверенным прокси, особенно важны, поскольку прокси становится границей
аутентификации.
Проверка инструментов и изоляции
Перед предоставлением удалённым отправителям доступа к агенту:- Проверьте, какие сеансы выполняются на хосте, а какие — в изолированной среде.
- Запретите выполнение команд на хосте или требуйте подтверждения.
- Не включайте инструменты с повышенными привилегиями, если они не нужны конкретному доверенному отправителю.
- Не предоставляйте инструменты браузера, canvas, node, cron, gateway и создания сеансов для открытых или полуоткрытых поверхностей обмена сообщениями.
- Ограничивайте точки монтирования; избегайте путей к учётным данным, домашним каталогам, сокету Docker и системным ресурсам.
- Используйте отдельные экземпляры Gateway, пользователей ОС или хосты для существенно различающихся границ доверия.
Проверка после изменений
После каждого изменения внешнего доступа:- Повторно запустите
openclaw security audit --deep. - Убедитесь, что авторизованное подключение успешно устанавливается.
- Убедитесь, что неавторизованному отправителю или сеансу браузера отказано в доступе.
- Убедитесь, что секреты скрываются в журналах.
- Убедитесь, что маршрутизация личных сообщений и групп направляет сообщения только назначенному агенту.
- Убедитесь, что инструменты с высоким уровнем воздействия запрашивают подтверждение или запрещены.
- Задокументируйте принятые остаточные предупреждения.
План отката
Если Gateway может быть чрезмерно открыт:- Остановите публичное перенаправление, Tailscale Funnel или маршруты обратного прокси.
- Смените токены/пароли Gateway и затронутые учётные данные интеграций.
- Удалите
"*"и неожиданных отправителей из списков разрешений. - Проверьте последние журналы аудита, историю запусков, вызовы инструментов и изменения конфигурации.
- Повторно запустите
openclaw security audit --deep. - Повторно включите доступ, используя наиболее узкую схему, удовлетворяющую требованиям рабочего процесса.
Контрольный список проверки
- Gateway остаётся доступным только через loopback-интерфейс, если нет задокументированной причины для иного.
- Доступ не через loopback-интерфейс защищён аутентификацией и межсетевым экраном и не имеет прямого публичного маршрута.
- В развёртываниях с доверенным прокси строго ограничены IP-адреса прокси и контролируются заголовки.
- Для личных сообщений по умолчанию используются сопряжение или списки разрешений, а не открытый доступ.
- В группах требуются упоминания или явные списки разрешений.
- Общие каналы не имеют доступа к личным учётным данным.
- Сеансы, отличные от основного, выполняются в режиме изоляции.
- Выполнение команд на хосте и инструменты с повышенными привилегиями запрещены или требуют подтверждения.
- Секреты скрываются в журналах.
- Критические замечания аудита устранены.
- Шаги отката проверены и задокументированы.