Достъпен е новият проект Nebula 1.5, който предлага инструменти за изграждане на защитени overlay мрежи. Мрежата може да свързва от няколко до десетки хиляди териториално разделени хостове, разположени при различни доставчици, формирайки отделна изолирана мрежа над глобалната. Проектът е написан на езика Go и се разпространява под MIT лиценз. Инициатор на проекта е компанията Slack, разработваща едноименния корпоративен месинджър. Поддържа работа в Linux, FreeBSD, macOS, Windows, iOS и Android.
Възлите в мрежата Nebula взаимодействат помежду си директно в режим P2P — при необходимост от предаване на данни между възлите динамично се създават директни VPN-съединения. Идентичността на всеки хост в мрежата се потвърджа чрез цифров сертификат, а свързването към мрежата изисква преминаване на аутентификация — всеки потребител получава сертификат, удостоверяващ IP адреса в мрежата Nebula, името си и членството в групите хостове. Сертификатите се подписват от вътрешен удостоверяващ център, разгръщан от създателя на мрежата на собствените му ресурси и използван за удостоверяване на правомощията на хостовете, които имат право да се свързват с overlay мрежата.
За създаване на аутентифициран защитен канал за комуникация в Nebula се използва собствен тунелен протокол, базиран на протокола за обмен на ключове Диффи—Хелман и шифъра AES-256-GCM. Реализацията на протокола се основава на готови и проверени примитиви, предоставяни от фреймворка Noise, който също се използва в такива проекти като WireGuard, Lightning и I2P. Утвърдило се е, че проектът е преминал независим одит за сигурност.
За откриване на други възли и координация на свързването с мрежата се създават специални възли „lighthouse“, глобалните IP адреси на които са фиксирани и известни на участниците в мрежата. Възлите-участници нямат привързаност към външното IP-адресу, те се идентифицират по сертификати. Собствениците на хостове сами по себе си не могат да правят промени в подписаните сертификати и в отличие от традиционните IP мрежи не могат да се представят за друго хост с проста смяна на IP адреса. При създаване на тунел идентичността на хоста се потвърдва с индивидуален тайен ключ.
На създадената мрежа се присвоява конкретен диапазон от интра мрежови адреси (например, 192.168.10.0/24) и се извършва свързване на вътрешните адреси с сертификатите на хостовете. От участниците в overlay мрежата могат да се формират групи, например за разделяне на сървърите и работни станции, за които се прилагат отделни правила за филтриране на трафика. Предоставят се разнообразни механизми за обход на NAT (преобразуватели на адреси) и защитни стени. Възможно е организирането на маршрутизация през overlay мрежата на трафик от външни хостове, които не са част от мрежата Nebula (unsafe route).
Поддържа се създаването на защитни стени за разделяне на достъпа и филтриране на трафика между узлите в overlay мрежата Nebula. За филтриране се използват ACL с привързване на тагове. Всеки хост в мрежата може да определя свои собствени правила за филтриране по хостове, групи, протоколи и мрежови портове. Важно е, че хостовете се филтрират не по IP адреси, а по удостоверени идентификатори на хостовете с дигитален подпис, които не могат да бъдат подправени без компрометиране на координиращия удостоверяващ център.
В новото издание:
- Към командата print-cert е добавен флаг „-raw“ за извеждане на PEM представянето на сертификата.
- Добавена е поддръжка за новата Linux архитектура riscv64.
- Добавена експериментална настройка remote_allow_ranges за свързване на списъците с разрешени хостове към определени подсистеми.
- Добавена опция pki.disconnect_invalid за нулиране на тунелите след преустановяване на доверието или изтичане на времето за валидност на сертификата.
- Добавена опция unsafe_routes..metric за задаване на тегло на конкретен външен маршрут.
Източник: opennet.ru
