Публикувана версия на проекта Nebula 1.9, предлагаща инструменти за изграждане на защитени оверлейни мрежи, които позволяват обединяване на географски разпределени хостове в отделна изолирана мрежа, работеща върху глобалната мрежа. Проектът е предназначен за създаване на собствени оверлейни мрежи за разнообразни нужди, например обединяване на корпоративни компютри в различни офиси, сървъри в различни центрове за данни или виртуални среди при различни облачни доставчици. Кодът е написан на езика Go и се разпространява под MIT лиценз. Проектът е основан от компанията Slack, която разработва едноименния корпоративен мессенджър. Поддържа работа в Linux, FreeBSD, macOS, Windows, iOS и Android.
Възлите в мрежата Nebula взаимодействат помежду си директно в P2P режим — когато възникне необходимост от обмен на данни между възлите, се създават директни VPN-връзки. Идентичността на всеки хост в мрежата се потвърдиява чрез цифров сертификат, а свързването с мрежата изисква преминаване на автентикация - всеки потребител получава сертификат, който потвърджава IP адреса в мрежата Nebula, името и членството в групите на хостовете. Сертификатите се подписват от вътрешен удостоверяващ център, който се внедрява от създателя на всяка отделна мрежа на собствените им ресурси и се прилага за удостоверяване на правомощията на хостовете, които имат право на свързване с конкретна оверлейна мрежа, свързана с удостоверяващия център.
За създаване на аутентифициран защитен канал за комуникация в Nebula се използва собствен тунелен протокол, основан на протокола за размяна на ключове Диффи—Хелмана и шифъра AES-256-GCM. Имплементацията на протокола се основава на готови и проверени примитиви, предоставени от фреймворка Noise, който също се използва в проекти като WireGuard, Lightning и I2P. Утвърдил е, че проектът е преминал независим одит за сигурност.
За откриване на други възли и координация на свързванията с мрежата се създават специални възли „lighthouse“, глобалните IP адреси на които са фиксирани и известни на участниците в мрежата. Участниците нямат привързаност към външно IP адрес, те се идентифицират чрез сертификати. Собствениците на хостове не могат произволно да променят подписаните сертификати и в отличие от традиционните IP мрежи не могат да се представят за друг хост просто чрез смяна на IP адреса. При създаването на тунел идентичността на хоста се потвърдява чрез индивидуален личен ключ.
На създадената мрежа се присвоява определен диапазон от интранет адреси (например, 192.168.10.0/24) и се осъществява свързване на вътрешните адреси с сертификатите на хостовете. Предоставят се различни механизми за заобикаляне на транслаторите на адреси (NAT) и междудинамичните екрани. Възможна е организация на маршрутизацията през оверлейната мрежа на трафика от трети хостове, които не са част от мрежата Nebula (unsafe route). От участниците в оверлейната мрежа могат да се формират групи, например за разделяне на сървъри и работни станции, към които се прилагат отделни правила за филтриране на трафика.
Поддържа се създаването на защитни стени за разделяне на достъпа и филтриране на трафика между възлите в overlay мрежата Nebula. За филтрация се използват ACL с привързване на тагове. Всеки хост в мрежата може да определи свои собствени правила за филтриране спрямо хостове, групи, протоколи и мрежови портове. В този случай хостовете се филтрират не по IP адреси, а по заверени с цифров подпис идентификатори на хостове, които не могат да бъдат фалшифицирани без компрометиране на удостоверяващия център, координиращ работата на мрежата.
В новото издание:
- Добавена е нова настройка default_local_cidr_any, която променя поведението при обработката на подсетите „local_ip“ в правилата за защитната стена с цел предотвратяване на неоснователно разрешаване на трафика към хостовете, изброени в блока unsafe_routes. В версия 1.9 настройката е настроена на „true“, но в следващото издание 1.10 ще бъде заменена със стойност „false“, което ще доведе до отчитане на локалните подсети при прилагане на правилата на защитната стена към хостовете, достъпни чрез небезопасни маршрути (за отваряне на достъпа до подобни хостове е необходимо задължително посочване на local_cidr).
- Предоставен е официален образ за системата Docker, позволяващ бързо разгръщане на overlay мрежа на базата на Nebula или възел за нея.
- Добавени са експериментални версии за архитектурата Loong64.
- Реализиран е сервизен скрипт за системата за инициализация OpenRC.
- Във фоновия процес SSH е добавена поддръжка за удостоверяване с сертификати, заверени от удостоверяващия център (sshd.trusted_cas). Възможността за вграждане на хост ключове в блока настройки sshd.host_key е реализирана.
- Осигурена е поддръжка за презареждане на настройките „tun.unsafe_routes“.
- Поддръжката на остарялата настройка local_range е премахната, вместо която трябва да се използва preferred_ranges.
- За компилация сега е необходима инструментална среда go 1.22. Минималните изисквания за версиите на Windows са повишени до Windows 10 и Windows Server 2016.
Източник: opennet.ru
