Об этом проекте
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 и маяки.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.