Об этом проекте

Nebula — это инструмент overlay-сети с открытым исходным кодом, созданный в Slack Technologies. Он создаёт взаимно аутентифицированную одноранговую программно-определённую сеть поверх фреймворка Noise Protocol, позволяя компьютерам соединяться напрямую независимо от их расположения или провайдера облачных услуг. Основные возможности, описанные в README: - Масштабируемость: рассчитан на подключение от нескольких машин до десятков тысяч узлов. - Переносимость: работает на Linux (64/32‑бит, ARM и другие), Windows, macOS, FreeBSD, iOS и Android. Доступны пакеты дистрибутивов для Arch, Fedora, Debian, Alpine, Homebrew и Docker. - Модель безопасности: сертификаты подтверждают IP‑адрес узла, его имя и принадлежность к пользовательским группам. По умолчанию используется обмен ключами ECDH и шифрование AES-256-GCM; кривая по умолчанию — Curve25519, с возможностью использования NIST P256 и режимов сборки FIPS 140-3. - Обнаружение: лёгкие узлы‑«маяки» (lighthouse) с маршрутизируемыми IP‑адресами позволяют узлам находить друг друга, при необходимости используя UDP hole punching для обхода NAT и брандмауэра. - Управление трафиком: пользовательские группы позволяют задавать провайдер‑независимые правила брандмауэра, аналогичные группам безопасности облачных провайдеров. Начало работы включает генерацию центра сертификации с помощью nebula‑cert, подпись сертификатов хостов с указанием IP‑адресов и групп, создание файлов конфигурации для каждого хоста и запуск бинарника nebula. В README предупреждается, что закрытый ключ CA является самым конфиденциальным файлом и его нельзя копировать на отдельные узлы, а также отмечается, что по умолчанию срок действия CA составляет один год. Nebula можно собрать из исходного кода на Go с помощью целей make для всех платформ или конкретных. Проект поддерживается Slack и предоставляет управляемый вариант через Defined Networking для пользователей, которые предпочитают не запускать собственную PKI и маяки.