Gateway
Інструкція з надання доступу до Gateway
Цей операційний посібник перетворює загальніші рекомендації з розділу Безпека на контрольний список оператора для віддаленого доступу та відкриття доступу через канали обміну повідомленнями.
Виберіть схему відкриття доступу
Віддавайте перевагу найвужчій схемі, яка задовольняє потреби робочого процесу.
| Схема | Рекомендовано, коли | Обов’язкові засоби контролю |
|---|---|---|
| Local loopback + тунель SSH | Особисте використання, адміністративний доступ, налагодження | Залиште gateway.bind: "loopback" і створіть тунель до 127.0.0.1:18789 |
| Local loopback + Tailscale Serve | Особистий доступ із tailnet до інтерфейсу керування/WebSocket | Залиште Gateway доступним лише через local loopback; заголовки ідентифікації Tailscale автентифікують лише WebSocket-поверхню інтерфейсу керування, а не інші шляхи автентифікації |
| Прив’язка до tailnet/LAN | Виділена приватна мережа з відомими пристроями | Автентифікація Gateway, список дозволених правил брандмауера, відсутність публічного перенаправлення порту |
| Довірений зворотний проксі | SSO/OIDC організації перед Gateway | Автентифікація trusted-proxy, суворі trustedProxies, правила перезапису/видалення заголовків, явний список дозволених користувачів |
| Публічний інтернет | Рідкісні розгортання із високим ризиком | Проксі з урахуванням ідентичності, TLS, обмеження частоти запитів, суворі списки дозволених значень, ізольовані сеанси поза основним сеансом |
Уникайте прямого публічного перенаправлення портів до Gateway. Якщо публічний доступ необхідний, розмістіть перед ним проксі з урахуванням ідентичності та зробіть цей проксі єдиним мережевим шляхом до Gateway.
Попередня інвентаризація
Запишіть наведені нижче дані перед зміною прив’язки, проксі, Tailscale або політики каналу:
- Хост Gateway, користувач ОС і каталог стану (типово
~/.openclaw). - URL-адреса Gateway і режим прив’язки (
gateway.bind; типовий порт18789). - Режим автентифікації, джерело токена/пароля або джерело ідентичності довіреного проксі.
- Кожен увімкнений канал і те, чи приймає він особисті повідомлення, групові повідомлення або Webhook.
- Агенти, доступні нелокальним відправникам.
- Профіль інструментів, режим ізоляції та політика інструментів із підвищеними привілеями для кожного доступного агента.
- Зовнішні облікові дані, доступні цим агентам.
- Розташування резервної копії
~/.openclaw/openclaw.jsonта облікових даних.
Якщо боту може надсилати повідомлення більше ніж одна особа, вважайте це спільним делегованим доступом до інструментів, а не ізоляцією хоста для кожного користувача.
Базові перевірки
Виконайте перед відкриттям доступу:
openclaw doctoropenclaw security auditopenclaw security audit --deepopenclaw healthСпочатку усуньте критичні зауваження. Приймайте попередження лише тоді, коли вони є навмисними
та задокументованими для цього розгортання. Значення кожного checkId і відповідний ключ виправлення
наведено в розділі Перевірки аудиту безпеки.
Для віддаленої перевірки через CLI передавайте облікові дані явно:
openclaw gateway probe --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"Не припускайте, що облікові дані з локальної конфігурації застосовуються до явно вказаної віддаленої URL-адреси.
Мінімальна безпечна базова конфігурація
Використовуйте цю структуру як вихідну для розгортань із відкритим доступом:
{ gateway: { bind: "loopback", auth: { mode: "token", token: "replace-with-a-long-random-token", }, }, session: { dmScope: "per-channel-peer", }, agents: { defaults: { sandbox: { mode: "non-main" }, }, }, tools: { profile: "messaging", exec: { security: "deny", ask: "always" }, elevated: { enabled: false }, },}Розширюйте по одному засобу контролю за раз: додайте список дозволених значень для конкретного каналу перед увімкненням інструментів із можливістю запису або увімкніть зворотний проксі перед прийманням віддаленого трафіку інтерфейсу керування.
tools.exec.security: "deny" блокує всі виклики виконання команд, зокрема безпечну
діагностику. Якщо потрібна діагностика або команди з низьким ризиком, послаблюйте це обмеження лише
після вибору конкретних відправників, агентів, команд і режиму схвалення, які
відповідають вашій моделі загроз.
Відкриття доступу до особистих і групових повідомлень
Канали обміну повідомленнями є поверхнями введення недовірених даних. Перш ніж дозволяти особисті або групові повідомлення:
- Віддавайте перевагу
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. Зауваження щодо довіреного проксі
є особливо важливими, оскільки проксі стає межею
автентифікації.
Перевірка інструментів та ізоляції
Перш ніж відкривати агенту доступ для віддалених відправників:
- Перевірте, які сеанси виконуються на хості, а які — в ізольованому середовищі.
- Забороніть виконання команд на хості або вимагайте його схвалення.
- Залишайте інструменти з підвищеними привілеями вимкненими, якщо вони не потрібні конкретному довіреному відправнику.
- Уникайте інструментів браузера, полотна, Node, Cron, Gateway і створення сеансів для відкритих або напіввідкритих поверхонь обміну повідомленнями.
- Звужуйте точки монтування; уникайте шляхів до облікових даних, домашнього каталогу, сокета Docker і системних шляхів.
- Використовуйте окремі Gateway, користувачів ОС або хости для суттєво різних меж довіри.
Якщо віддалені користувачі не є повністю довіреними, ізоляція має забезпечуватися окремими розгортаннями, а не лише підказками чи мітками сеансів.
Перевірка після змін
Після кожної зміни відкриття доступу:
- Повторно запустіть
openclaw security audit --deep. - Переконайтеся, що успішне авторизоване підключення встановлюється.
- Переконайтеся, що неавторизованому відправнику або сеансу браузера відмовлено в доступі.
- Переконайтеся, що секрети в журналах приховано.
- Переконайтеся, що маршрутизація особистих/групових повідомлень спрямовує їх лише до призначеного агента.
- Переконайтеся, що інструменти з високим рівнем впливу запитують схвалення або заборонені.
- Задокументуйте прийняті залишкові попередження.
Не переходьте до наступної зміни відкриття доступу, доки не зрозумієте поточну.
План відкочування
Якщо Gateway може бути надмірно відкритим:
{ gateway: { bind: "loopback", }, channels: { whatsapp: { dmPolicy: "disabled" }, telegram: { dmPolicy: "disabled" }, discord: { dmPolicy: "disabled" }, slack: { dmPolicy: "disabled" }, }, tools: { exec: { security: "deny", ask: "always" }, elevated: { enabled: false }, },}Потім:
- Зупиніть публічне переспрямування, Tailscale Funnel або маршрути зворотного проксі.
- Замініть токени/паролі Gateway і облікові дані пов’язаних інтеграцій.
- Видаліть
"*"і неочікуваних відправників зі списків дозволених значень. - Перегляньте останні журнали аудиту, історію запусків, виклики інструментів і зміни конфігурації.
- Повторно запустіть
openclaw security audit --deep. - Знову увімкніть доступ за найвужчою схемою, яка задовольняє потреби робочого процесу.
Контрольний список перевірки
- Gateway залишається доступним лише через local loopback, якщо немає задокументованої причини для іншого.
- Доступ не через local loopback має автентифікацію, захист брандмауером і не має прямого публічного маршруту.
- Розгортання з довіреним проксі мають суворо визначені IP-адреси проксі та засоби контролю заголовків.
- Для особистих повідомлень типово використовується сполучення або списки дозволених значень, а не відкритий доступ.
- Групи вимагають згадок або явних списків дозволених значень.
- Спільні канали не мають доступу до особистих облікових даних.
- Неосновні сеанси виконуються в режимі ізоляції.
- Виконання команд на хості та інструменти з підвищеними привілеями заборонені або потребують схвалення.
- Секрети в журналах приховано.
- Критичні зауваження аудиту усунено.
- Кроки відкочування перевірено та задокументовано.