Публикуван е проектът 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). От участниците в оверлейната мрежа могат да се формират групи, например, за разделяне на сървъри и работни станции, до които се прилагат отделни правила за филтриране на трафика.
Поддържа се създаването на защитни стени за разделяне на достъпа и филтриране на трафика между възлите в оверлейната мрежа Nebula. За филтриране се прилагат ACL с привързване на тагове. Всеки хост в мрежата може да определя собствени правила за филтриране по хостове, групи, протоколи и мрежови портове. В този случай хостовете се филтрират не по IP адреси, а по удостоверени цифрово подписани идентификатори на хоста, които не могат да бъдат подправени без компрометиране на удостоверяващия център, координиращ работата на мрежата.
В новото издание:
- Добавена е нова настройка default_local_cidr_any, която променя поведението при обработка на подсетите «local_ip» в правилата на защитната стена, за да се предотврати неоправданото разрешение на трафика към хостове, изброени в блока unsafe_routes. В версия 1.9 настройката е зададена на «true», но в следващото издание 1.10 ще бъде заменена с «false», което ще доведе до отчита на локалните подсети при прилагане на правилата на защитната стена към хостове, достъпни чрез небезопасни маршрути (за отваряне на достъп до такива хостове ще е необходимо задължително посочване на local_cidr).
- Предоставен е официален образ за системата Docker, който позволява бързо разгръщане на оверлейна мрежа на базата на 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
