È stato rilasciato il progetto Nebula 1.9, che offre strumenti per la creazione di reti overlay sicure, consentendo di unire host geograficamente separati in una rete isolata che opera sopra la rete globale. Il progetto è destinato alla creazione di reti overlay personalizzate per qualsiasi esigenza, ad esempio per connettere computer aziendali in diversi uffici, server in vari data center o ambienti virtuali presso diversi fornitori di cloud. Il codice è scritto in Go e distribuito sotto licenza MIT. Il progetto è fondato da Slack, che sviluppa il messenger aziendale omonimo. È supportato su Linux, FreeBSD, macOS, Windows, iOS e Android.
I nodi nella rete Nebula interagiscono tra loro direttamente in modalità P2P: al necessità di trasferire dati tra i nodi, vengono creati dinamicamente collegamenti diretti. VPN-connessioni. L'identità di ciascun host nella rete è confermata da un certificato digitale e la connessione alla rete richiede l'autenticazione: ogni utente riceve un certificato che verifica l'indirizzo IP nella rete Nebula, il nome e la partecipazione a gruppi di host. I certificati sono firmati da un'autorità di certificazione interna, implementata dal creatore di ciascuna rete specifica nelle proprie infrastrutture e utilizzata per attestare le credenziali degli host autorizzati a connettersi a un particolare overlay legato all'autorità di certificazione.
Per creare un canale di comunicazione autenticato e protetto in Nebula viene utilizzato un proprio protocollo di tunneling, basato sul protocollo di scambio chiavi di Diffie-Hellman e sul cifrario AES-256-GCM. L'implementazione del protocollo si basa su primitive collaudate e disponibili fornite dal framework Noise, che è anche utilizzato in progetti come WireGuard, Lightning e I2P. Si sostiene che il progetto abbia superato una revisione indipendente della sicurezza.
Per scoprire altri nodi e coordinare le connessioni alla rete, vengono creati nodi speciali "lighthouse", i cui indirizzi IP globali sono fissi e conosciuti dai partecipanti alla rete. I nodi partecipanti non sono legati a un indirizzo esterno, ma si identificano tramite i certificati. I proprietari degli host non possono apportare modifiche ai certificati firmati e, a differenza delle reti IP tradizionali, non possono fingersi un altro host semplicemente cambiando l'indirizzo IP. Durante la creazione di un tunnel, l'identità dell'host viene confermata da una chiave privata unica. indirizzo IPQuando si crea un tunnel, l'identità dell'host è confermata da una chiave privata individuale.
Alla rete creata viene assegnato un intervallo specifico di indirizzi intranet (ad esempio, 192.168.10.0/24) e viene effettuato un collegamento degli indirizzi interni con i certificati degli host. Vengono forniti vari meccanismi per bypassare traduttori di indirizzi (NAT) e firewall. È possibile organizzare il routing attraverso la rete overlay del traffico di host esterni che non fanno parte della rete Nebula (unsafe route). Dai partecipanti alla rete overlay possono formarsi gruppi, ad esempio per separare server e workstation, ai quali si applicano regole distinte di filtraggio del traffico.
È supportata la creazione di firewall per separare l'accesso e filtrare il traffico tra i nodi nella rete overlay Nebula. Per il filtraggio vengono utilizzati ACL con legami di tag. Ogni host nella rete può definire le proprie regole di filtraggio in base a host, gruppi, protocolli e porte di rete. Gli host vengono filtrati non in base agli indirizzi IP, ma in base agli identificatori firmati digitalmente dell'host, che non possono essere contraffatti senza compromettere l'autorità di certificazione che coordina l'operazione della rete.
Nel nuovo rilascio:
- È stata aggiunta una nuova impostazione default_local_cidr_any, che modifica il comportamento nel trattamento delle subnet "local_ip" nelle regole del firewall per prevenire l'ingiustificata concessione del traffico agli host elencati nel blocco unsafe_routes. Nella versione 1.9, l'impostazione è impostata su "true", ma nella prossima versione 1.10 verrà modificata in "false", il che porterà a considerare le subnet locali durante l'applicazione delle regole del firewall agli host accessibili tramite rotte non sicure (per aprire l'accesso a tali host, sarà necessaria l'indicazione obbligatoria di local_cidr).
- È stata fornita un'immagine ufficiale per il sistema Docker, che consente di implementare rapidamente una rete overlay basata su Nebula o un nodo per essa.
- Sono state aggiunte build sperimentali per l'architettura Loong64.
- È stato implementato uno script di servizio per il sistema di inizializzazione OpenRC.
- È stato aggiunto al processo in background SSH il supporto per l'autenticazione tramite certificati firmati dall'autorità di certificazione (sshd.trusted_cas). È stata implementata la possibilità di incorporare le chiavi degli host nel blocco di impostazioni sshd.host_key.
- È stato garantito il supporto per il riavvio delle impostazioni "tun.unsafe_routes".
- È stata rimossa la supporto per l'impostazione obsoleta local_range, che ora deve essere sostituita con preferred_ranges.
- Per la build è ora necessario l'ambiente Go 1.22. I requisiti minimi per le versioni di Windows sono stati aumentati a Windows 10 e Windows Server 2016.
Fonte: opennet.ru
