Udgaven af Nebula 1.5-projektet tilbyder værktøjer til opbygning af sikre overlay-netværk. Nettet kan forbinde fra et par til titusinder af geografisk spredte værter, der er placeret hos forskellige udbydere og danner et separat, isoleret netværk oven på det globale net. Projektet er skrevet i Go og distribueres under MIT-licensen. Projektet er grundlagt af Slack, som udvikler den samme virksomhedsbesked-app. Det understøtter arbejde på Linux, FreeBSD, macOS, Windows, iOS og Android.
Noderne i Nebula-netværket interagerer direkte med hinanden i P2P-tilstand — efterhånden som der opstår behov for datatransmission mellem noderne, oprettes der dynamisk direkte VPN-forbindelser. Identiteten for hver vært i netværket bekræftes med et digitalt certifikat, og tilslutning til netværket kræver godkendelse - hver bruger får et certifikat, der bekræfter IP-adressen i Nebula-netværket, navnet og medlemskaberne i værtets grupper. Certifikaterne underskrives af et internt certifikationscenter, som netværkets skaber implementerer internt og bruges til at attesterer beføjelserne for værter, der har ret til at tilslutte sig overlay-netværket.
For at oprette en autentificeret sikker kommunikationskanal i Nebula anvendes et eget tunnelprotokol baseret på Diffie-Hellman-nøgleudvekslingsprotokollen og AES-256-GCM-krypteringen. Implementeringen af protokollen er baseret på færdige og gennemprøvede primitive funktioner, som tilbydes af Noise-rammeværket, der også anvendes i projekter som WireGuard, Lightning og I2P. Det hævdes, at projektet har bestået en uafhængig sikkerhedsrevision.
For at opdage andre noder og koordinere forbindelser til netværket oprettes der specielle «lighthouse»-noder, hvis globale IP-adresser er faste og kendte for netværkets deltagere. Deltagernoderne har ikke binding til eksterne IP-adressen, de identificeres via certifikater. Ejerne af værter kan ikke selv ændre de underskrevne certifikater, og i modsætning til traditionelle IP-netværk kan de ikke lade som om, de er en anden vært blot ved at ændre IP-adressen. Ved oprettelse af en tunnel bekræftes værtens identitet ved hjælp af en individuel privat nøgle.
Det oprettede net tildeles et bestemt interval af intranetadresser (f.eks. 192.168.10.0/24), og der oprettes bindinger mellem interne adresser og værtens certifikater. Deltagere i overlay-netværket kan dannes i grupper, for eksempel til at adskille servere og arbejdsstationer, hvilket anvender separate trafikfiltreringsregler. Der tilbydes forskellige mekanismer til at omgå adresseoversættere (NAT) og firewalls. Ruting af trafik fra tredjeparts værter, der ikke tilhører Nebula-netværket (usikker rute), er også mulig.
Der understøttes oprettelse af firewalls for at adskille adgang og filtrere trafikken mellem noder i Nebula-overlay-netværket. Til filtrering anvendes ACL med tagbindinger. Hver vært i netværket kan definere sine egne filtreringsregler baseret på værter, grupper, protokoller og netværksporte. Værter filtreres ikke baseret på IP-adresser, men på attestede identifikationsnumre underskrevet med digital signatur, som ikke kan forfalskes uden at kompromittere det koordinerende netværks certifikationscenter.
I den nye version:
- Flaget "-raw" er blevet tilføjet til print-cert-værktøjet for at udskrive PEM-repræsentationen af certifikatet.
- Understøttelse af den nye Linux-arkitektur riscv64 er blevet tilføjet.
- Tilføjet en eksperimentel indstilling remote_allow_ranges til at knytte tilladte værtlister til specifikke subnet.
- Tilføjet indstillingen pki.disconnect_invalid til at nulstille tunneler efter ophør af tillid eller udløb af certifikatets levetid.
- Tilføjet indstillingen unsafe_routes..metric til at angive vægten for en bestemt ekstern rute.
Kilde: opennet.ru
