Мережевий проксі
OpenClaw може спрямовувати HTTP- і WebSocket-трафік середовища виконання через керований оператором прямий проксі. Це необов’язковий додатковий рівень захисту для розгортань, яким потрібні централізований контроль вихідного трафіку, сильніший захист від SSRF і краща аудитованість мережі. OpenClaw не постачає, не завантажує, не запускає, не налаштовує й не сертифікує проксі. Ви запускаєте технологію проксі, яка підходить для вашого середовища, а OpenClaw спрямовує через нього звичайні локальні для процесу HTTP- і WebSocket-клієнти.Навіщо використовувати проксі?
Проксі дає операторам одну точку мережевого контролю для вихідного HTTP- і WebSocket-трафіку. Це може бути корисно навіть поза посиленням захисту від SSRF:- Центральна політика: підтримуйте одну політику вихідного трафіку замість того, щоб покладатися на правильність мережевих правил у кожному місці HTTP-виклику застосунку.
- Перевірки під час підключення: оцінюйте призначення після DNS-розв’язання й безпосередньо перед тим, як проксі відкриє висхідне з’єднання.
- Захист від DNS rebinding: зменшіть розрив між DNS-перевіркою на рівні застосунку та фактичним вихідним з’єднанням.
- Ширше покриття JavaScript: спрямовуйте звичайні
fetch,node:http,node:https, WebSocket, axios, got, node-fetch і подібні клієнти тим самим шляхом. - Аудитованість: журналюйте дозволені й заборонені призначення на межі вихідного трафіку.
- Операційний контроль: застосовуйте правила призначень, сегментацію мережі, обмеження швидкості або дозволені списки вихідного трафіку без перебудови OpenClaw.
fetchWithSsrFGuard. Маршрутизація через проксі є додатковим захисним обмежувачем на рівні процесу для звичайного вихідного HTTP- і WebSocket-трафіку, а не заміною захищених fetch-запитів чи мережевої пісочниці на рівні ОС.
Як OpenClaw маршрутизує трафік
Колиproxy.enabled=true і налаштовано URL проксі, захищені процеси середовища виконання, як-от openclaw gateway run, openclaw node run і openclaw agent --local, спрямовують звичайний вихідний HTTP- і WebSocket-трафік через налаштований проксі:
127.0.0.1 або [::1]. Цей шлях площини керування має мати змогу досягати loopback Gateway навіть тоді, коли операторський проксі блокує призначення loopback. Звичайні HTTP- і WebSocket-запити середовища виконання все одно використовують налаштований проксі.
Сам URL проксі має використовувати http://. HTTPS-призначення все одно підтримуються через проксі за допомогою HTTP CONNECT; це лише означає, що OpenClaw очікує звичайний HTTP-слухач прямого проксі, як-от http://127.0.0.1:3128.
Поки проксі активний, OpenClaw очищає no_proxy, NO_PROXY і GLOBAL_AGENT_NO_PROXY. Ці списки обходу залежать від призначення, тому залишення там localhost або 127.0.0.1 дозволило б високоризиковим SSRF-цілям пропускати фільтрувальний проксі.
Під час завершення роботи OpenClaw відновлює попереднє проксі-середовище й скидає кешований стан маршрутизації процесу.
Конфігурація
proxy.enabled=true у конфігурації:
proxy.proxyUrl має пріоритет над OPENCLAW_PROXY_URL.
Якщо enabled=true, але не налаштовано жодного дійсного URL проксі, захищені команди завершують запуск із помилкою замість того, щоб повертатися до прямого мережевого доступу.
Для керованих сервісів Gateway, запущених через openclaw gateway start, бажано зберігати URL у конфігурації:
OPENCLAW_PROXY_URL у довговічне середовище сервісу, як-от $OPENCLAW_STATE_DIR/.env або ~/.openclaw/.env, а потім перевстановіть сервіс, щоб launchd, systemd або Scheduled Tasks запускали gateway із цим значенням.
Для команд openclaw --container ... OpenClaw пересилає OPENCLAW_PROXY_URL у дочірній CLI, націлений на контейнер, коли його встановлено. URL має бути доступний зсередини контейнера; 127.0.0.1 посилається на сам контейнер, а не на хост. OpenClaw відхиляє URL проксі loopback для команд, націлених на контейнер, якщо ви явно не перевизначите цю перевірку безпеки.
Вимоги до проксі
Політика проксі є межею безпеки. OpenClaw не може перевірити, що проксі блокує правильні цілі. Налаштуйте проксі так, щоб він:- Прив’язувався лише до loopback або приватного довіреного інтерфейсу.
- Обмежував доступ так, щоб ним міг користуватися лише процес, хост, контейнер або сервісний обліковий запис OpenClaw.
- Самостійно розв’язував призначення й блокував IP-адреси призначення після DNS-розв’язання.
- Застосовував політику під час підключення як для звичайних HTTP-запитів, так і для HTTPS-тунелів
CONNECT. - Відхиляв обходи на основі призначення для loopback, приватних, link-local, metadata, multicast, зарезервованих діапазонів або діапазонів документації.
- Уникав дозволених списків імен хостів, якщо ви повністю не довіряєте шляху DNS-розв’язання.
- Журналював призначення, рішення, статус і причину без журналювання тіл запитів, заголовків авторизації, cookies або інших секретів.
- Тримав політику проксі під контролем версій і переглядав зміни як чутливу до безпеки конфігурацію.
Рекомендовані заблоковані призначення
Використовуйте цей список заборони як початкову точку для будь-якого прямого проксі, брандмауера або політики вихідного трафіку. Логіка класифікатора на рівні застосунку OpenClaw розташована вsrc/infra/net/ssrf.ts і src/shared/net/ip.ts. Відповідні хуки паритету — це BLOCKED_HOSTNAMES, BLOCKED_IPV4_SPECIAL_USE_RANGES, BLOCKED_IPV6_SPECIAL_USE_RANGES, RFC2544_BENCHMARK_PREFIX і вбудована обробка IPv4 sentinel для NAT64, 6to4, Teredo, ISATAP і IPv4-mapped форм. Ці файли є корисними довідковими матеріалами під час підтримки зовнішньої політики проксі, але OpenClaw не експортує й не застосовує ці правила автоматично у вашому проксі.
| Діапазон або хост | Навіщо блокувати |
|---|---|
127.0.0.0/8, localhost, localhost.localdomain | IPv4 loopback |
::1/128 | IPv6 loopback |
0.0.0.0/8, ::/128 | Невизначені адреси й адреси цієї мережі |
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Приватні мережі RFC1918 |
169.254.0.0/16, fe80::/10 | Link-local адреси та поширені шляхи cloud metadata |
169.254.169.254, metadata.google.internal | Сервіси cloud metadata |
100.64.0.0/10 | Спільний адресний простір carrier-grade NAT |
198.18.0.0/15, 2001:2::/48 | Діапазони benchmarking |
192.0.0.0/24, 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 2001:db8::/32 | Діапазони спеціального використання й документації |
224.0.0.0/4, ff00::/8 | Multicast |
240.0.0.0/4 | Зарезервований IPv4 |
fc00::/7, fec0::/10 | Локальні/приватні діапазони IPv6 |
100::/64, 2001:20::/28 | Діапазони IPv6 discard і ORCHIDv2 |
64:ff9b::/96, 64:ff9b:1::/48 | Префікси NAT64 із вбудованим IPv4 |
2002::/16, 2001::/32 | 6to4 і Teredo із вбудованим IPv4 |
::/96, ::ffff:0:0/96 | IPv4-compatible і IPv4-mapped IPv6 |
Валідація
Перевірте проксі з того самого хоста, контейнера або сервісного облікового запису, який запускає OpenClaw:Обмеження
- Проксі покращує покриття для локальних для процесу JavaScript HTTP- і WebSocket-клієнтів, але не замінює
fetchWithSsrFGuardна рівні застосунку. - Сирі сокети
net,tlsіhttp2, нативні додатки та дочірні процеси можуть обходити маршрутизацію проксі на рівні Node, якщо вони не успадковують і не дотримуються змінних середовища проксі. - Локальні WebUI користувача та локальні сервери моделей слід додавати до дозволеного списку в операторській політиці проксі, коли це потрібно; OpenClaw не надає для них загальний обхід локальної мережі.
- Обхід проксі для площини керування Gateway навмисно обмежений URL із буквальними IP-адресами loopback. Використовуйте
ws://127.0.0.1:18789абоws://[::1]:18789для локальних прямих підключень площини керування Gateway; імена хостівlocalhostмаршрутизуються як звичайний трафік на основі імені хоста. - OpenClaw не перевіряє, не тестує й не сертифікує вашу політику проксі.
- Розглядайте зміни політики проксі як чутливі до безпеки операційні зміни.