OUTPOST.
zero-trust платформа · self-hosted · протокол wave

Свой VPN.
Свой протокол.
Проходит там, где режут.

Outpost — Zero-Trust платформа сетевого доступа, которая целиком стоит на ваших серверах: панель, шлюзы, клиенты и собственный протокол Wave. Кого пускать, с какого устройства и куда — решает политика. А туннель сам ищет путь через DPI: TLS на 443-м порту, UDP с ротацией, MASQUE.

ZTNA-платформа Свой протокол Wave Ваши серверы Без трекеров
214 / 88Мбит/с
Отдача / загрузка с телефона
Мобильный оператор РФ, ступень TLS :443, Яндекс Интернетометр, 14.09.2026
137Мбит/с
В каждую сторону
Ноутбук → боевой стенд, Wave UDP, 95% доставки, 21.09.2026
3транспорта
Одна лестница
TLS :443, UDP с ротацией 5-tuple, MASQUE — клиент переключается сам
1ссылка
От приглашения до туннеля
Человек тапает — приложение вошло в его аккаунт и настроено

Цифры — наши замеры на реальных сетях, с датой и условиями. Пиковые «гигабиты на ядро» мы не публикуем, пока не померим их так же.

zero-trust платформа

Не «VPN до офиса», а Zero-Trust: доступ решается на каждом шаге

Туннель — только транспорт. Кого пускать, с какого устройства и куда, решает панель, а шлюзы исполняют это на лету, без перезапуска.

  1. 01 · КТО

    Личность

    Вход через ваш IdP по OIDC, второй фактор, пользователи и группы из каталога по SCIM.

  2. 02 · С ЧЕМ

    Устройство

    Клиент сообщает шифрование диска, блокировку экрана, антивирус, файрвол и версию ОС. Из этого считается trust score с вашими весами и историей.

  3. 03 · КУДА

    Политика

    ACL группы на сеть — полный или раздельный туннель, правила файрвола раздаются шлюзам. Для внутренних приложений — отдельные ZTNA-политики, в том числе с mTLS.

  4. 04 · ВСЕГДА

    Проверка не заканчивается на входе

    Отозвали устройство — живая сессия на шлюзе рвётся, и следующее рукопожатие не пройдёт. Каждое действие — в журнале с именами.

trust score · androidпример
80/ 100 · высокий
  • Шифрование диска +25
  • Антивирус 0 / 20
  • Файрвол +15
  • Версия ОС +15
  • MFA +15
  • Блокировка экрана +10
Веса по умолчанию — меняются в консоли под вашу политику.
почему не очередной wireguard-конфигуратор

Цензор читает форму трафика. Поэтому Wave начинается с формы.

Три способа, которыми сегодня ломают VPN, и что на каждый отвечает Outpost.

✗ режут

WireGuard по сигнатуре

Фиксированные размеры рукопожатия и байт типа в каждом пакете — DPI узнаёт протокол с первого пакета.

→ wave

Нет магических байтов

Ни одного постоянного поля на проводе: идентификатор сессии маскирован, всё остальное — шифротекст.

✗ режут

Обфускацию по форме

Случайные байты без структуры — ровно тот класс UDP, который мобильные операторы глушат после нескольких пакетов.

→ wave

Ведёт TLS на 443

Первая ступень — одна TLS-сессия с белым SNI. На UDP клиент меняет 5-tuple раньше, чем сеть исчерпает бюджет пакетов.

✗ не хватает

Прокси без платформы

L4-прокси проходят, но это конфиг, а не сеть: нет пользователей, групп, политик доступа, аудита и SSO.

→ outpost

L3-туннель + control plane

Весь трафик устройства, а не одного приложения. Пользователи, группы, ACL, Zero-Trust и журнал — из коробки.

протокол wave

Лестница транспортов: режут одну ступень — клиент берёт следующую

Wave — собственный протокол: рукопожатие Noise IK, AEAD на данных, маскированный идентификатор сессии. Снаружи его несут три транспорта, и клиент проходит их сам — без звонка в поддержку и без ручной смены конфига.

Выберите, что делает сеть, — и посмотрите, как ответит клиент:

  • › ступень STREAM · tls :443 · sni ‹белый домен›
  • ✔ данные прошли в обе стороны — ступень принята
  • Самый быстрый путь: одна TLS-сессия на 443 с SNI, который вы задаёте для сети в панели. Пакеты идут пачками, без UDP-камуфляжа.
  • › STREAM · ✗ данные не идут — ступень понижена
  • › ступень DIRECT · udp · ✔ данные в обе стороны
  • Рукопожатие, которое сеть пропустила, не считается — только данные. Если STREAM заглох посреди сессии, туннель не падает: клиент понижает ступень на ходу.
  • › STREAM ✗ · DIRECT · сеть глушит UDP-поток после N пакетов
  • › ⟳ новый порт и 5-tuple раньше, чем бюджет кончится — поток живёт дальше лимита
  • Бюджет не угадываем, а меряем на вашей сети: outpost-wave-cli -dpi-calibrate. Шлюз слушает диапазон портов и отвечает туда, откуда пришли данные.
  • › STREAM ✗ · DIRECT ✗ — напрямую до шлюза не дойти
  • › ступень RELAY · MASQUE CONNECT-UDP через релей · ✔ принята
  • Та же сессия Wave в другом конверте: HTTP/3 через релей на UDP 443, ключ релея закреплён в клиенте.
ПРОБУЕТ

Ступени по порядку

STREAM → DIRECT → RELAY. Порядок и параметры приходят из панели для каждой сети.

ПРОВЕРЯЕТ

Данные, а не рукопожатие

Ступень принята, когда по ней прошёл трафик в обе стороны. Рукопожатие, которое сеть пропустила, а данные — нет, не считается.

ПОНИЖАЕТ

Замолчавшую ступень

Если на ходу ступень глохнет, клиент понижает её и переходит на следующую, не роняя туннель.

рукопожатие
Noise IK
Взаимная аутентификация ключами, forward secrecy.
данные
ChaCha20-Poly1305
AEAD на каждом пакете, окно защиты от повторов.
на проводе
Маскированный CID
Ни одного постоянного поля, по которому пакет узнаётся как Wave.
защита от DoS
MAC1/MAC2 + cookie
Под нагрузкой шлюз требует cookie до дорогой криптографии.
кластер шлюзов

Шлюзы в любых регионах — одна панель над всеми

Панель и шлюзы — разные бинари. Панель масштабируется горизонтально, а шлюзы подключаются к ней сами: из любого региона, от любого хостера, даже из-за NAT.

работает

Несколько ядер панели

Ядра за балансировщиком делят PostgreSQL и Redis. События расходятся через Redis Pub/Sub, фоновые задачи держит одно ядро по advisory lock — без etcd и ZooKeeper.

работает

Шлюз подключается сам

Шлюз открывает к панели двунаправленный gRPC-стрим — входящие порты для управления ему не нужны. Новый регион — одна роль Ansible.

работает

Изменения — сразу на всех

Выдали или отозвали доступ, поменяли правило — все шлюзы получают это без перезапуска. Отключённый шлюз снимает свои пиры меньше чем за секунду.

работает

Здоровье на виду

Статус каждого шлюза — в консоли и на карте топологии, метрики сессий и рукопожатий — в Prometheus.

в работе

Пул без общего состояния

Идентификатор сессии Wave стоит первым в пакете, поэтому пул шлюзов можно поставить за L4-балансировщик (IPVS-DSR) без синхронизации между ними. В протокол заложено, развёртывание впереди.

в работе

Переход клиента между шлюзами

В CLI-клиенте уже есть перебор шлюзов с проверкой данных. Следующий шаг — приложения.

возможности

То, ради чего Outpost ставят вместо конфига на VPS

онбординг

Одна ссылка — и телефон настроен

Админ жмёт «Пригласить» на строке пользователя и отправляет ссылку в любой мессенджер. Человек тапает — приложение открывается, входит в его аккаунт и забирает туннели. Никаких конфигов, QR на мониторе и инструкций на три экрана. Для своего телефона — вход по QR-коду из консоли.

приложения

Туннель по приложениям

Выбираете, что идёт через VPN, а что напрямую. Правило доезжает до туннеля без переподключения.

диагностика

DPI-калибровка сети

Меряем, по какому признаку режет конкретная сеть, вместо того чтобы гадать.

надёжность

Kill switch и авто-переподключение

Туннель упал — трафик мимо VPN не уходит. Сменилась сеть — клиент переподключается сам. Режимы настоящие: переключатель в настройках доходит до платформы, а не только красит экран.

прозрачность

Счётчики берутся у туннеля

Скорость и объём сессии на главном экране читаются из плоскости данных, а не рисуются. Диагностика в приложении меряет размер пакета на вашей сети и отдаёт отчёт без adb.

Для администратора

организации

Multi-tenant

Организации, сети, шлюзы и устройства изолированы на уровне запросов к БД.

аудит

Журнал с именами

Кто, что и над чем — людьми и ресурсами, а не hex-строками. Выгрузка в CSV.

сеть

Карта топологии

Шлюзы и все устройства на одной карте: зум, панорама, полный экран.

филиалы

Site-to-site

Офисы и площадки в одну частную сеть, плюс умные маршруты.

протоколы

WireGuard kernel-mode

Для сетей без цензуры — netlink, без оверхеда userspace.

консоль

Веб-консоль

Встроена в бинарь, RU и EN, без трекеров.

наблюдаемость

Prometheus

Сессии, байты, рукопожатия и ошибки протокола — на /metrics.

деплой

Docker · Helm · Ansible

Стенд одной командой, прод — одной ролью Ansible.

кому

Три покупателя — один набор бинарей

компаниям с филиалами и удалёнкой

Доступ сотрудников из любой сети — под контролем

Люди в разных странах и сетях, VPN то режут, то забывают отозвать у тех, кто ушёл.

  • SSO через ваш IdP, SCIM и MFA
  • ZTNA: доступ по состоянию устройства
  • Журнал с именами и выгрузкой в CSV
  • Site-to-site для офисов
Запросить пилот →
командам и частным пользователям

Свой VPN вместо чужого сервиса

Коммерческий VPN — это чужие логи, чужие серверы и блокировки по списку IP.

  • Свой сервер, свои ключи, логи только у вас
  • Self-hosted бесплатно, без лимита устройств
  • Клиенты для Android и десктопа
  • Близким — одна ссылка вместо инструкции
Telegram @freeoutpostvpn →
сравнение

Где Outpost уже впереди — и честно, где нет

Сравниваем с тем, что обычно ставят сами: чистый WireGuard, AmneziaWG и VLESS+REALITY.

СвойствоOutpostVLESS+REALITYAmneziaWGWireGuard
Весь трафик устройства (L3-туннель)✓✗L4-прокси✓✓
Проходит как TLS на 443 с белым SNI✓✓✗✗
Несколько транспортов с автопереключением✓с проверкой данных~в конфиге клиента✗✗
Ротация 5-tuple под бюджет сети✓✗✗✗
Пользователи, группы, ACL, аудит✓~сторонние панели~✗
SSO (OIDC), SCIM, MFA✓✗✗✗
Маскировка active probing настоящим сайтом~в разработке✓✗✗

Оценки — по публичной документации проектов и нашему аудиту от 14.09.2026. Строку про active probing мы честно отдаём REALITY: нативная маскировка настоящим сайтом у нас пока в ветке, не в релизе.

пилот

Пилот за 7 дней: замеры на ваших сетях, а не презентация

Таблице можно не верить — проверьте на своих операторах. Через неделю у вас цифры рядом с тем, чем вы пользуетесь сейчас.

  1. День 1

    Стенд

    Поднимаем панель и шлюз в нужном регионе — на вашем сервере или на нашем.

  2. Дни 2–3

    Калибровка

    Меряем ваших операторов: что режут, после скольких пакетов и по какому признаку. Под это настраиваем лестницу.

  3. Дни 4–6

    Ваши люди

    Подключаем устройства одной ссылкой и меряем скорость рядом с вашим текущим решением.

  4. День 7

    Отчёт и решение

    Цифры по каждой сети и понятный следующий шаг: Self-hosted, Managed или Enterprise.

статус

Что работает сегодня, а что в пути

Мы не продаём то, что не включено у пользователей. Вот граница на сегодня.

Работает

У живых пользователей на боевом стенде.

  • Лестница Wave: TLS :443, UDP с ротацией, MASQUE
  • WireGuard kernel-mode
  • Android-клиент: Wave и WireGuard
  • Онбординг одной ссылкой и вход по QR
  • Туннель по приложениям, kill switch
  • ZTNA: posture, trust score, политики, отзыв на лету
  • Несколько ядер панели, шлюзы в любых регионах
  • Multi-tenant, SSO, MFA, SCIM, аудит
  • Веб-консоль RU/EN, карта топологии

Реализовано, включаем

Код и тесты в репозитории, в продукте пока выключено.

  • Post-quantum: гибрид X25519 + ML-KEM-768 (FIPS 203), векторы Go ↔ Rust совпадают байт в байт
  • DAITA: паддинг и тайминги против анализа трафика
  • Data plane Wave на Rust: Tokio, AWS-LC

В разработке

Ведём открыто, с замерами до релиза.

  • REALITY-класс: пробер видит настоящий сайт-прикрытие
  • iOS-клиент с Wave
  • Скорость загрузки на мобильной ступени TLS
  • Автопереход телефона на резервный шлюз
  • Пул шлюзов за L4-балансировщиком
  • Автоблокировка устройства по trust score
  • AF_XDP fast-path на шлюзе
редакции

Open-core. Платите за то, что лицензией не выдать

Функции платформы по тарифам не режутся: self-hosted получает всё. Деньги — за хостинг, SLA, поддержку и право встраивать наш data plane в продукт, который вы продаёте.

community

Self-hosted

Бесплатнобез лимита на устройства
  • Панель, шлюз, веб-консоль, клиенты
  • WireGuard, multi-tenant, ZTNA, аудит
  • Wave для своего и внутрикорпоративного использования
  • Обновления наравне с платными планами
Как развернуть →
enterprise

Enterprise

По запросумасштаб и кастомизация
  • Коммерческая лицензия на data plane Wave и SDK
  • White-label клиенты под ваш бренд
  • Air-gapped установка, документы для комплаенса
  • Дежурство 24/7 и выделенный архитектор
Запросить условия
вопросы

Что обычно спрашивают до пилота

Нужен свой сервер?

Для Self-hosted — да: подойдёт обычный VPS с Docker. Стенд поднимается одной командой, прод — одной ролью Ansible. В Managed серверы держим мы.

Что будет, если заблокируют IP шлюза?

Шлюз — отдельный сервер, который сам подключается к панели по gRPC, даже из-за NAT, поэтому новый поднимается одной ролью Ansible. А лестница снижает шанс, что до этого дойдёт: STREAM на 443 с белым SNI держится там, где режут UDP. Автопереход телефона на резервный шлюз — в работе.

Чем это лучше Amnezia, Outline или панели для Xray?

Они дают туннель или прокси. Outpost — сеть целиком: L3-туннель, лестница из трёх транспортов с проверкой данных, пользователи, группы, SSO, ZTNA и аудит в одной панели. Где мы пока уступаем — честно написано в сравнении.

На каких устройствах работает?

Android — Wave и WireGuard, у живых пользователей. Десктоп-клиенты — macOS, Windows, Linux. iOS — в разработке.

Где хранятся данные и логи?

У вас: PostgreSQL на вашем сервере — единственный источник правды. Обязательной телеметрии наружу нет. Журнал аудита лежит у вас и выгружается в CSV.

Сколько стоит?

Self-hosted — бесплатно и без лимита устройств. Managed и Enterprise считаем под вашу нагрузку: устройства, регионы, SLA. Обычно — после пилота, когда цифры уже на столе.

Можно под своим брендом?

Да: white-label клиенты и коммерческая лицензия на data plane Wave входят в Enterprise.

Можно посмотреть код?

Репозиторий откроем к release candidate. Раньше — по NDA: для аудита безопасности или проверки лицензионной чистоты.

под капотом

Стек, который ваш инженер прочитает за вечер

control plane

Go · gRPC · pgx/v5

Один бинарь: API, gRPC-хаб и веб-консоль.

data plane

Go + Rust

Rust-реализация Wave на Tokio и AWS-LC.

хранилище

PostgreSQL 17 + Redis 7

PostgreSQL — единственный источник правды.

клиенты

Flutter

Android, macOS, Windows, Linux — один код.

Доступ к коду

Репозиторий откроем публично к release candidate. Ранний доступ, аудит кода или проверка лицензионной чистоты — по NDA, просто напишите.

связь

Расскажите, где режет, — предложим, как пройти

Провайдер, компания или своя команда — напишите регион, операторов, число устройств и платформы. Ответим с планом пилота. NDA — по запросу. Пишите на русском или английском.