О себе Портфолио Кейсы Услуги Блог Контакт 🎙 Поговорить с AI
EN DE RU
🎙 Поговорить с AI
September 21, 2026 · 3 min read

Как подключить свой приватный сервер к ChatGPT и AgentKit без риска утечек: новый tunnel-client от OpenAI

Я — Денис Шохирев, Agentic AI Systems Architect из Фрайбурга, работаю в DennisCraft AI Studio. Каждый мой запуск — это не демо, а прод, и каждый раз вопрос: как безопасно подключить приватный сервер к ChatGPT/AgentKit, не открывая лишних портов и не раздавая ключи? В проде достаточно одной уязвимости, и конфиденциальные данные клиента уже на Pastebin. Что такое tunnel-client от OpenAI и зачем он нужен Июнь 2024: OpenAI выкатила tunnel-client — минималистичный прокси, который поднимает защищён

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

Я — Денис Шохирев, Agentic AI Systems Architect из Фрайбурга, работаю в DennisCraft AI Studio. Каждый мой запуск — это не демо, а прод, и каждый раз вопрос: как безопасно подключить приватный сервер к ChatGPT/AgentKit, не открывая лишних портов и не раздавая ключи? В проде достаточно одной уязвимости, и конфиденциальные данные клиента уже на Pastebin.

Что такое tunnel-client от OpenAI и зачем он нужен

Июнь 2024: OpenAI выкатила tunnel-client — минималистичный прокси, который поднимает защищённый reverse-туннель между вашим сервером и edge-инфраструктурой ChatGPT/AgentKit. Его задача — дать LLM-агентам доступ к вашему API или базе, не раскрывая сервер вовне. Это не магия, а ssh-подобный туннель с handshake по JWT. Пример:

tunnel-client \
  --url http://localhost:8080 \
  --token $OPENAI_TUNNEL_TOKEN \
  --server https://tunnel.openai.com

Трафик идёт в обе стороны по TLS, а авторизация — через выданный в OpenAI консоли токен. Сервер не светится в интернете, никакой необходимости настраивать firewall или NAT.

Реальные риски и паттерны утечек в проде

Классические уязвимости: не только LLM, но и инфраструктура

На трёх последних внедрениях multi-agent систем я ловил один и тот же баг: LLM писал куски .env в логи или возвращал их в debug-ответах. Даже если LLM sandboxed, tunnel без строгой авторизации — прямой канал для утечки. Исследование Stanford CodeML (2024, ссылка) показало: 38% LLM-генерированных Python-фрагментов содержат CWE-89 (SQL-инъекции).

Как tunnel-client снижает площадь атаки

Решение Порты наружу Интеграция с OpenAI Вектор утечки
Прямой webhook 80/443 открыт Прямая Сканирование, brute-force, эксплойты
VPN + self-hosted proxy Ограниченный Сложно Конфиги, ключи в .env
tunnel-client Outbound only Официально Только скомпрометированный токен

Вся атака сводится к краже токена. Нет открытого endpoint — нет атаки на сервис из интернета. После ротации токена канал обрывается, никаких lingering сессий.

Как внедрить tunnel-client в production pipeline

Минимальная интеграция: Supabase, n8n, Claude

Мой стек — Supabase (Postgres + storage), n8n для workflow, Claude Code для LLM-логики. Типовой сценарий: агенты ChatGPT через AgentKit должны получить доступ к приватному API или базе.

# Получить токен в OpenAI консоли (chat.openai.com)
export OPENAI_TUNNEL_TOKEN=sk-...

# Запускаем tunnel-client как systemd-сервис:
[Unit]
Description=OpenAI Tunnel Client
After=network.target

[Service]
ExecStart=/usr/local/bin/tunnel-client \
  --url http://localhost:8000 \
  --token ${OPENAI_TUNNEL_TOKEN} \
  --server https://tunnel.openai.com
Restart=always

[Install]
WantedBy=multi-user.target

В этом режиме сервер не доступен извне, но ChatGPT через AgentKit может обращаться к нему через tunnel.

Безопасность: gitleaks, Doppler, OWASP

Перед запуском — только statically-typed конфиги (без секретов в коде). Проверяю через gitleaks и Doppler, чтобы токены не попали в git. Для runtime — OWASP ZAP на preprod, чтобы tunnel не стал обходом для старых уязвимостей.

Продвинутые практики: изоляция и контроль трафика

Rate limiting и audit

tunnel-client не решит всех проблем: если LLM/AgentKit отправляет слишком много запросов, можно получить mini-DDoS на свою инфраструктуру. В проде ставлю rate-limit на уровне nginx перед tunnel-клиентом:

limit_req_zone $binary_remote_addr zone=llm:10m rate=10r/s;
server {
  listen 8000;
  location / {
    limit_req zone=llm burst=20;
    proxy_pass http://localhost:9000;
  }
}

Плюс всегда логирую все входящие запросы для последующего аудита и анализа аномалий.

Изоляция прав и zero trust

Не даю tunnel-client root-доступ, только отдельный system user без write-доступа к файловой системе. В Supabase раздаю минимальные роли для сервис-аккаунта, который обслуживает tunnel.

FAQ

Можно ли пробрасывать несколько сервисов через один tunnel-client?

Нет, сейчас tunnel-client маппит один локальный endpoint на один туннель. Для нескольких сервисов — несколько инстансов tunnel-client с разными портами.

Какие риски, если токен tunnel-client попадёт в open source?

Любой, кто получит токен, сможет инициировать туннель к серверу. Рекомендую хранить токены только в Doppler/HashiCorp Vault, исключить их из git (gitleaks), и регулярно ротировать.

Поддерживается ли аутентификация на уровне tunnel-client?

Нет, tunnel-client только проксирует запросы. Авторизация реализуется на уровне вашего API или через middleware (например, JWT).

Можно ли использовать tunnel-client для WebSocket/stream?

Да, tunnel-client поддерживает проксирование WebSocket-трафика, но возможны ограничения по latency и размерам сообщений.

Требует ли это отдельного firewall-конфига?

Нет, tunnel-client инициирует исходящее соединение. Главное — разрешить egress к tunnel.openai.com из вашей инфраструктуры.

На каком этапе вы чаще всего ловите утечки: при настройке туннеля, в логах, или на этапе авторизации API? Напишите, какой паттерн сработал у вас. Я делаю бесплатный 30-мин аудит стека для основателей DACH, кто строит AI в регуляции. Пишите в LinkedIn или в @ger_dennis_ai.

Читать дальше
Контракт-дривен фреймворк для AI: как Traverse позволяет собирать бизнес-капабилити на WASM и запускать их в браузере, на edge и в облаке
Как Uber защищает своих AI-агентов: реальный стек ADR для наблюдаемости и безопасности в проде
AI врёт при реверсе бинарей: как Reverify проверяет каждое утверждение LLM на байтовом уровне (инструмент для безопасного reverse engineering)
Как ускорить ревью и навигацию в огромных кодовых базах с помощью AI: кейс локального code intelligence графа
Все статьи →
Где это применяется
Услуги — что мы делаем
Поговорить с голосовым агентом
Кейсы
Готовы к следующему шагу?

Превратить процесс в систему, которая работает

Продакшн-качество, а не демо.

Обсудить проект → ← Все статьи