
ziti v1.5.17
Платформа нулевого доверия для сетей, которая делает сервисы невидимыми с помощью криптографической идентификации, политик доступа и сквозного шифрования. Заменяет VPN, защищает IoT и соединяет мультиоблачные среды без открытых портов.
OpenZiti
OpenZiti — это открытая платформа сетевого взаимодействия с нулевым доверием, которая делает сетевые сервисы невидимыми для неавторизованных пользователей. Каждое соединение, будь то от пользователя, сервиса, устройства или рабочей нагрузки, аутентифицируется с помощью криптографической идентичности, авторизуется политикой и шифруется сквозным образом.
OpenZiti работает как с существующими приложениями (с помощью легковесных туннелизаторов без изменения кода), так и с новыми приложениями (с использованием встроенных SDK для самой сильной модели нулевого доверия). Это делает его практичным как для окружений brownfield, так и для разработки greenfield.
Создано и спонсируется NetFoundry. Лицензировано по Apache 2.0.
Содержание
- Варианты использования
- Ключевые возможности
- Три модели развертывания
- Начало работы
- Архитектура
- Нулевое доверие, тёмные сервисы и сквозное шифрование
- SDK
- Сообщество и поддержка
- Участие в разработке
- Внедрившие организации
- Управляемое решение
Варианты использования
OpenZiti позволяет распространять нулевое доверие куда угодно для любых случаев, включая нечеловеческие рабочие нагрузки и рабочие процессы, через несколько сетей и сторонних организаций. Ниже приведены некоторые распространённые варианты использования.
Замена VPN
Обеспечьте безопасный доступ к внутренним сервисам без VPN-клиентов, проблем с разделенным туннелированием или узких мест концентратора. Каждый сервис индивидуально авторизован. Никакой проблемы «как только вы внутри, вы можете добраться до всего».
Тёмные API и сервисы
Сделайте API и сервисы невидимыми для интернета. Ноль прослушивающих портов означает нулевую поверхность атаки. Авторизованные клиенты подключаются через OpenZiti; все остальные ничего не видят.
IoT и нечеловеческая идентичность
Дайте каждому устройству, датчику и машине уникальную криптографическую идентичность. Модель идентичности OpenZiti подходит для нечеловеческих рабочих нагрузок так же хорошо, как и для людей, обеспечивая надёжную аутентификацию для соединений «машина-машина», составляющих основную часть современного сетевого трафика.
Рабочие нагрузки с нулевым доверием
Обеспечьте безопасную связь между рабочими нагрузками через облака и окружения. Сервисы аутентифицируют друг друга с помощью криптографической идентичности, а не сетевого расположения. Никаких общих секретов, IP-белых списков или окружных полномочий.
Агентный ИИ
Обеспечьте безопасную связь агент-сервис и агент-агент с помощью криптографической идентичности для каждого участника ИИ. MCP-серверы, конечные точки инструментов и частные LLM остаются тёмными, без прослушивающих портов или публичных URL. Агенты аутентифицируются с помощью сильных уникальных идентичностей и имеют доступ только к тем ресурсам, которые разрешены политикой, поэтому автономные рабочие процессы получают необходимый доступ без окружных полномочий над всем остальным.
Мультиоблачная и гибридная связь
Одна оверлейная сеть через AWS, Azure, GCP, локальные дата-центры и граничные локации. Никаких облачно-специфичных сетевых инструментов, VPN-туннелей между окружениями или сложных пиринговых соглашений.
Доступ к самостоятельно размещённым сервисам
Получайте доступ к домашним лабораторным или самостоятельно размещённым сервисам, таким как Nextcloud, Home Assistant, медиа-серверы и среды разработки, из любого места. Без открытых портов роутера, без динамического DNS, без зависимости от сторонних туннельных сервисов. Вы контролируете весь путь.
Kubernetes и межкластерные сервисы
Соединяйте сервисы через кластеры Kubernetes без сложных правил входа, сайдкаров сервисной сетки или VPN-туннелей между кластерами. Работает за пределами Kubernetes, поддерживая соединение k8s-сервисов с виртуальными машинами, голым железом, IoT-устройствами или чем угодно ещё в оверлее.
Ключевые возможности
| Возможность | Описание |
|---|---|
| Тёмные сервисы | Сервисы имеют ноль прослушивающих портов. Невидимы для сканеров и неавторизованных пользователей. |
| Идентичность для всего | Криптографическая идентичность для пользователей, сервисов, устройств и нечеловеческих рабочих нагрузок (NHI). Не на основе IP. |
| Операции на основе идентичности | Управление сетями через идентичности и политики вместо IP-адресов и правил брандмауэра. Упрощает эксплуатацию и устраняет ручную настройку сети. |
| Сквозное шифрование | Данные шифруются от источника до назначения с помощью libsodium. mTLS для аутентификации. Нулевое доверие к сетевому пути. |
| Без VPN и открытых портов | Соединения маршрутизируются через оверлей OpenZiti. Никаких VPN-клиентов, входящих правил брандмауэра, открытых портов. |
| Умная маршрутизация | Ячеистая ткань с интеллектуальным выбором пути для производительности и надёжности. |
| Гибкое развертывание | Встраивайте SDK, используйте туннелизаторы или развертывайте на уровне сети. Комбинируйте и сочетайте для каждого сервиса. |
| Доступ на основе политик | Детальные политики на основе идентичности. Доступ может быть отозван в реальном времени, закрывая активные соединения. |
| Программируемые REST API | Полный API управления для автоматизации и интеграции. Включена веб-консоль администратора. |
| Полностью самостоятельное размещение | Запускайте всю платформу на своей инфраструктуре. Никаких зависимостей от вендора. Открытый исходный код, Apache 2.0. |
Три модели развертывания
OpenZiti поддерживает три модели нулевого доверия. Вы можете смешивать их в одной сети и мигрировать между ними со временем.
Сетевой доступ
Разверните периферийный маршрутизатор OpenZiti в доверенной сетевой зоне. Трафик входит в оверлей от аутентифицированных клиентов и выходит в частную сеть, где работают сервисы.
- Изменения кода: Нет
- Агент на хосте сервиса: Нет
- Модель безопасности: Доступ на основе идентичности на границе сети. Аналогично шлюзу, но с криптографической идентичностью и шифрованным транспортом.
Доступ к хосту
Запустите туннелизатор OpenZiti на том же хосте, что и ваш сервис. Туннелизатор отвечает за идентичность, аутентификацию и шифрование. Сервису нужно только принимать соединения с localhost.
- Изменения кода: Нет
- Настройка: Установите туннелизатор, зарегистрируйте идентичность
- Модель безопасности: Доверенная граница на уровне ОС хоста. Сервис тёмен для сети и доступен только через туннелизатор.
Доступ к приложению (самый сильный)
Встраивайте SDK OpenZiti непосредственно в клиентские и/или серверные приложения. Само приложение содержит криптографическую идентичность и шифрует трафик внутри процесса. Прослушивающих портов нет, даже на localhost.
- Изменения кода: Да
- Модель безопасности: Самая сильная. Сквозное шифрование внутри процесса. Полностью тёмный. Идентичность на уровне приложения, а не сети или хоста.
С чего начать: Многие команды начинают с Доступа к хосту (туннелизаторы) для существующих сервисов. Это развертывается за минуты без изменения кода. Для новых разработок или высокозащищённых рабочих нагрузок Доступ к приложению (SDK) обеспечивает наиболее сильную позицию нулевого доверия.
Начало работы
Следующие краткие руководства показывают, как настроить локальную сеть OpenZiti для разработки, тестирования и обучения. Для производственных развертываний смотрите документацию по продукту на https://netfoundry.io/docs/openziti/category/deployments/.
Краткое руководство с Docker
Самый быстрый способ получить локальную сеть OpenZiti:
wget https://get.openziti.io/dock/all-in-one/compose.yml
docker compose up
Это запускает контроллер, периферийный маршрутизатор и консоль Ziti в одном стеке compose. Консоль доступна по адресу https://localhost:1280/zac/. Отсюда вы можете создавать идентичности, определять сервисы и настраивать политики доступа.
Смотрите всё-в-одном Docker quickstart для полных деталей, включая параметры хранения, переменные окружения и использование CLI.
Краткое руководство с CLI
Загрузите последний бинарник ziti из GitHub Releases, затем:
ziti edge quickstart
Это поднимает локальную сеть для разработки: контроллер, маршрутизатор и стандартную административную идентичность. Идеально для тестирования и обучения.
Чтобы добавить Консоль администратора Ziti (ZAC) к работающему контроллеру:
ziti ops console download --location /opt/openziti/console
ziti ops console configure /path/to/controller.yml --all --location /opt/openziti/console
# перезапустите контроллер, затем откройте https://<адрес-контроллера>/zac/
Или запустите ZAC локально без изменения конфигурации контроллера:
ziti run console --version latest
# открывает https://127.0.0.1:8443. укажите в браузере любой контроллер
Узнать больше
| Ресурс | Описание |
|---|---|
| Введение | Основные концепции и как работает OpenZiti |
| Руководства по быстрому старту | Пошаговая настройка для локального, Docker и облачного окружений |
| Модели нулевого доверия | Глубокое погружение в три модели развертывания |
| Справочник по туннелизаторам | Начало работы без изменения кода |
Архитектура
Оверлейная сеть OpenZiti работает поверх существующей инфраструктуры: любая IP-сеть, любое облако, любая комбинация. Основные компоненты:
Контроллер
Контроллер — это плоскость управления. Он отвечает за:
- Управление идентичностями: выпускает и проверяет криптографические идентичности (сертификаты x509) для каждого участника сети
- Применение политик: определяет, какие идентичности могут получить доступ к каким сервисам, через какие периферийные маршрутизаторы
- Состояние сети: отслеживает маршрутизаторы, сервисы и топологию; предоставляет REST API и веб-консоль администратора для управления
Периферийные маршрутизаторы
Периферийные маршрутизаторы образуют плоскость данных — ячеистую ткань, которая передаёт шифрованный трафик между конечными точками.
- Публичные маршрутизаторы доступны из интернета, служат точками входа в сеть
- Частные («тёмные») маршрутизаторы развёртываются внутри частных сетей и устанавливают только исходящие соединения
Маршрутизаторы автоматически находят друг друга, формируют ячеистые соединения и используют умную маршрутизацию для выбора наилучшего пути на основе задержки, пропускной способности и стоимости.
Конечные точки: SDK и туннелизаторы
Конечные точки — это то, как приложения и пользователи подключаются к сети OpenZiti:
-
SDK (Go, C, Python, Node.js, Java, Swift, C#): встраивают нулевое доверие непосредственно в ваше приложение. Само приложение содержит идентичность и обрабатывает шифрование. Никаких сайдкаров, агентов или прослушивающих портов.
-
Туннелизаторы (Linux, Windows, macOS, iOS, Android): лёгкие приложения, которые предоставляют подключение к OpenZiti для неизменённого ПО. Трафик перехватывается и маршрутизируется через оверлей прозрачно. Изменения кода не требуются.
Нулевое доверие, тёмные сервисы и сквозное шифрование
Нулевое доверие и сегментация приложений
Каждый участник (например, пользователь, сервис, устройство, рабочая нагрузка) в сети OpenZiti носит уникальную криптографическую идентичность, основанную на сертификатах x509. При попытке соединения OpenZiti проверяет:
- Идентичность действительна и зарегистрирована
- Существует политика, предоставляющая этой идентичности доступ к запрошенному сервису
- Соединение происходит через авторизованный периферийный маршрутизатор
Если любая проверка не пройдена, соединение отклоняется. Если доступ позже отзывается, активные соединения немедленно завершаются. Нет неявного доверия на основе сетевого расположения. Нахождение в той же LAN даёт не больше доступа, чем через интернет, если политика явно не разрешает это.
Эта модель обеспечивает сегментацию приложений с нулевым доверием: каждый сервис независимо авторизован. Получение доступа к одному сервису не даёт доступа ни к какому другому.
Тёмные сервисы
«Тёмный» сервис не имеет открытых портов. Он не прослушивает ни один сетевой интерфейс для входящих соединений. Вместо этого сервис (или туннелизатор рядом с ним) устанавливает исходящее соединение с периферийным маршрутизатором OpenZiti и регистрируется. Клиенты достигают его только через ткань OpenZiti, после аутентификации и авторизации.
Что это означает на практике:
- Сканирование портов ничего не находит: нет прослушивающих портов для обнаружения
- Нет поверхности атаки: невозможно эксплуатировать то, до чего нельзя добраться
- Устойчивость к DDoS: нет публичной конечной точки для затопления
- Невидимость для неавторизованных пользователей: только идентичности с соответствующей политикой вообще знают о существовании сервиса
- Дружелюбность к NAT и брандмауэрам: все соединения исходящие, поэтому CG-NAT, двойной NAT и строгие брандмауэры не являются проблемой
Периферийные маршрутизаторы также могут быть тёмными. Частные маршрутизаторы устанавливают только исходящие соединения, поэтому входящие правила брандмауэра не нужны в вашей частной сети.
Сквозное шифрование
С OpenZiti SDK трафик шифруется от отправляющего приложения до принимающего с использованием libsodium для пути данных и mTLS для аутентификации идентичности. Даже если маршрутизаторы или промежуточные сети скомпрометированы, трафик не может быть расшифрован или изменён.
С туннелизаторами шифрование покрывает путь от туннелизатора до туннелизатора (или туннелизатора до SDK), обеспечивая шифрование «машина-машина» без изменения приложений.
SDK
Встраивайте сетевые технологии нулевого доверия непосредственно в свои приложения:
| Язык | Репозиторий | Примечания |
|---|---|---|
| Go | sdk-golang | Используется самим проектом OpenZiti |
| C | ziti-sdk-c | Идеально для встраиваемых систем, IoT и высокопроизводительных случаев |
| Java / Kotlin | ziti-sdk-jvm | Включает поддержку Android |
| Swift | ziti-sdk-swift | iOS и macOS |
| Node.js | ziti-sdk-nodejs | |
| C# / .NET | ziti-sdk-csharp | |
| Python | ziti-sdk-py |
Все SDK перечислены в организации OpenZiti на GitHub.
Безопасность
OpenZiti — это проект, ориентированный на безопасность. Ответственное раскрытие уязвимостей помогает нам поддерживать платформу и её пользователей в безопасности.
Сообщение об уязвимости: Если вы обнаружите проблему безопасности, пожалуйста, ознакомьтесь с нашей Политикой раскрытия уязвимостей для получения полной информации. Чувствительные вопросы следует сообщать на [email protected]. Нечувствительные вопросы можно оформить как Issues на GitHub в соответствующем репозитории. Вы должны получить ответ в течение 7 дней.
Как мы обрабатываем уязвимости: Наш Процесс реагирования на инциденты безопасности продукта описывает, как сообщённые уязвимости обрабатываются, документируются и устраняются — включая координацию выпусков CVE с исправлениями.
Безопасная гавань: OpenZiti и NetFoundry не будут предпринимать юридических действий против тех, кто добросовестно исследует и сообщает об уязвимостях. Мы поощряем исследования безопасности и приписываем сообщённые находки их репортерам в уведомлениях и примечаниях к выпускам.
Сообщество и поддержка
OpenZiti имеет активное и растущее сообщество:
- Форум Discourse: Задавайте вопросы, делитесь проектами, получайте помощь от сообщества и мейнтейнеров
- YouTube: Учебники, демонстрации и глубокие погружения
- Блог: Обновления проекта и технические статьи
- Twitter/X: Новости и анонсы
Участие в разработке
Проект OpenZiti приветствует вклад, включая код, документацию, сообщения об ошибках и обратную связь.
Ключевые репозитории
| Репозиторий | Описание |
|---|---|
| openziti/ziti | Основная платформа: контроллер, маршрутизаторы, CLI |
| sdk-golang | Go SDK |
| ziti-sdk-c | C SDK |
| ziti-sdk-jvm | Java / Kotlin / Android SDK |
| ziti-sdk-swift | Swift / iOS SDK |
| ziti-sdk-nodejs | Node.js SDK |
| ziti-sdk-csharp | C# SDK |
| ziti-sdk-py | Python SDK |
| ziti-tunnel-sdk-c | Linux туннелизатор и основной SDK туннелизатора |
| ziti-tunnel-apple | macOS и iOS edge клиенты |
| desktop-edge-win | Windows desktop edge клиент |
| ziti-doc | Сайт документации |
Сборка из исходников
Смотрите руководство по локальной разработке для инструкций по сборке.
Документация для разработчиков
- Обзор для разработчиков
- Локальная разработка
- Локальное развертывание
- PKI контроллера
- Примечания к выпускам
Внедрившие организации
OpenZiti используется в производстве организациями, включая DeltaSecure (управляемый SOC), Resulticks (автоматизация маркетинга), Chirp Wireless (IoT/телеком), GIGO Dev (облачные среды разработки), OSMIT (управляемое ИТ/соответствие GDPR) и проектами с открытым исходным кодом, такими как zrok и BlueBubbles.
Полный список: ADOPTERS.md. Используете OpenZiti? Мы будем рады добавить вас — откройте issue или отправьте PR.
Управляемое решение
Для сетевого взаимодействия с нулевым доверием без управления собственной инфраструктурой NetFoundry предоставляет полностью управляемую глобально распределённую сеть OpenZiti как услугу, с SLA, корпоративной поддержкой и глобальной тканью периферийных маршрутизаторов.
OpenZiti разрабатывается и публикуется как открытый исходный код компанией NetFoundry, Inc.