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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.