Sobre o projeto

Nebula é uma ferramenta de rede overlay de código aberto criada na Slack Technologies. Ela constrói uma rede definida por software peer-to-peer com autenticação mútua sobre o Noise Protocol Framework, permitindo que computadores se conectem diretamente, independentemente de onde estejam ou de qual provedor de nuvem os hospeda. Principais recursos descritos no README: - Escalabilidade: projetada para conectar desde algumas máquinas até dezenas de milhares de hosts. - Portabilidade: roda em Linux (64/32 bits, ARM e outros), Windows, macOS, FreeBSD, iOS e Android. Existem pacotes de distribuição para Arch, Fedora, Debian, Alpine, Homebrew e Docker. - Modelo de segurança: certificados afirmam o endereço IP, o nome e a associação do nó a grupos definidos pelo usuário. A criptografia padrão usa troca de chaves ECDH e AES-256-GCM; Curve25519 é a curva padrão, com modos de compilação opcionais NIST P256 e FIPS 140-3. - Descoberta: nós "lighthouse" leves com IPs roteáveis permitem que os pares se encontrem, opcionalmente usando furar buracos UDP (UDP hole punching) para atravessar NATs e firewalls. - Controle de tráfego: grupos definidos pelo usuário permitem regras de firewall independentes de provedor, semelhantes aos security groups de nuvem. Para começar, é necessário gerar uma autoridade certificadora com o nebula-cert, assinar certificados de host com IPs e grupos, escrever arquivos de configuração por host e executar o binário nebula. O README alerta que a chave privada da CA é o arquivo mais sensível e não deve ser copiada para nós individuais, e observa que as CAs expiram após um ano por padrão. Nebula pode ser compilado a partir do código-fonte com Go usando alvos make para todas as plataformas ou para plataformas específicas. O projeto é mantido pela Slack e oferece uma opção gerenciada por meio da Defined Networking para usuários que preferem não executar sua própria PKI e lighthouses.