Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Continuando a história sobre ZeroTier, a partir da teoria delineada no artigo “Switch Ethernet Inteligente para o Planeta Terra", passo para a prática em que:

  • Vamos criar e configurar um controlador de rede privada
  • Vamos criar uma rede virtual
  • Vamos configurar e conectar nós a ele
  • Vamos verificar a conectividade de rede entre eles
  • Vamos bloquear o acesso externo à GUI do controlador de rede

Controlador de rede

Conforme mencionado anteriormente, para criar redes virtuais, gerenciá-las, bem como conectar nós, o usuário precisa de um controlador de rede, cuja interface gráfica (GUI) existe em duas formas:

Opções de GUI ZeroTier

  • Um do desenvolvedor ZeroTier, disponível como uma solução SaaS de nuvem pública com quatro planos de assinatura, inclusive gratuito, mas limitado no número de dispositivos gerenciados e no nível de suporte
  • A segunda é de um desenvolvedor independente, com funcionalidade um tanto simplificada, mas disponível como uma solução privada de código aberto para uso local ou em recursos na nuvem.

Na minha prática, usei ambos e, como resultado, finalmente decidi pelo segundo. A razão para isso foram os avisos do desenvolvedor.

“Os controladores de rede servem como autoridades de certificação para redes virtuais ZeroTier. Os arquivos contendo chaves secretas do controlador devem ser cuidadosamente guardados e arquivados com segurança. Seu comprometimento permite que invasores não autorizados criem configurações de rede fraudulentas, e sua perda leva à perda da capacidade de controlar e gerenciar a rede, tornando-a efetivamente inutilizável."

Link para documentação

E também, sinais de sua própria paranóia de segurança cibernética :) 

  • Mesmo que o Cheburnet chegue, ainda devo ter acesso ao meu controlador de rede;
  • Só devo usar o controlador de rede. Se necessário, fornecer acesso aos seus representantes autorizados;
  • Deve ser possível restringir o acesso externo ao controlador de rede.

Neste artigo, não vejo muito sentido em me debruçar separadamente sobre como implantar um controlador de rede e a GUI para ele em recursos físicos ou virtuais locais. E também há 3 razões para isso: 

  • haverá mais cartas do que o planejado
  • sobre isso já contou no desenvolvedor GUI GitHab
  • o tópico do artigo é sobre outra coisa

Portanto, escolhendo o caminho de menor resistência, utilizarei nesta história um controlador de rede com interface gráfica baseada em VDS, criado por Do modelo, gentilmente desenvolvido por meus colegas da RuVDS.

Configuração inicial

Após criar um servidor a partir do modelo especificado, o usuário obtém acesso ao controlador Web-GUI através de um navegador acessando https:// :3443

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Por padrão, o servidor já contém um certificado TLS/SSL autoassinado pré-gerado. Isso é o suficiente para mim, pois bloqueio o acesso externo. Para quem deseja utilizar outros tipos de certificados, existe instruções de instalação no desenvolvedor GUI GitHab.

Quando o usuário faz login pela primeira vez Entrar com login e senha padrão - admin и senha:

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Sugere alterar a senha padrão para uma personalizada

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Faço isso de maneira um pouco diferente - não altero a senha de um usuário existente, mas crio uma nova - Criar Usuário.

Eu defini o nome do novo usuário - Nome de Utilizador:
Eu defini uma nova senha - Insira a nova senha
Eu confirmo a nova senha - Digite novamente a senha:

Os caracteres inseridos diferenciam maiúsculas de minúsculas - tome cuidado!

Caixa de seleção para confirmar a alteração da senha no próximo login - Alterar senha no próximo login: Eu não comemoro. 

Para confirmar os dados inseridos, pressione Definir senha:

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Então: eu faço login novamente - Sair / Entrar, já sob as credenciais do novo usuário:

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Em seguida, vou para a guia de usuários - Utilizadores e exclua o usuário adminclicando no ícone da lixeira localizado à esquerda de seu nome.

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Futuramente, você poderá alterar a senha do usuário clicando em seu nome ou em definir senha.

Criando uma rede virtual

Para criar uma rede virtual, o usuário precisa acessar a aba Adicionar rede. Do ponto Utilizador isso pode ser feito através da página Início — a página principal da Web-GUI, que exibe o endereço ZeroTier deste controlador de rede e contém um link para a página da lista de redes criadas através dele.

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Na página Adicionar rede o usuário atribui um nome à rede recém-criada.

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Ao aplicar os dados de entrada - Criar Rede o usuário é levado a uma página com uma lista de redes, que contém: 

Nome da rede — o nome da rede em forma de link, ao clicar nele você pode alterá-lo 
ID da rede - identificador de rede
detalhe — link para uma página com parâmetros de rede detalhados
fácil configuração — link para a página para fácil configuração
membros — link para a página de gerenciamento de nós

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Para configuração adicional siga o link fácil configuração. Na página que é aberta, o usuário especifica um intervalo de endereços IPv4 para a rede que está sendo criada. Isso pode ser feito automaticamente pressionando um botão Gerar endereço de rede ou manualmente inserindo a máscara de rede da rede no campo apropriado CIDR.

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Ao confirmar a entrada de dados com sucesso, você deve retornar à página com a lista de redes através do botão Voltar. Neste ponto, a configuração básica da rede pode ser considerada concluída.

Conectando nós de rede

  1. Primeiramente, o serviço ZeroTier One deve ser instalado no nó que o usuário deseja conectar à rede.

    O que é ZeroTier Um?Zero Nível Um é um serviço executado em laptops, desktops, servidores, máquinas virtuais e contêineres que fornece conexões a uma rede virtual por meio de uma porta de rede virtual, semelhante a um cliente VPN. 

    Depois que o serviço estiver instalado e iniciado, você poderá conectar-se a redes virtuais usando seus endereços de 16 dígitos. Cada rede aparece como uma porta de rede virtual no sistema, que se comporta como uma porta Ethernet normal.
    Links para distribuições, bem como comandos de instalação, podem ser encontrados na página do fabricante.

    Você pode gerenciar o serviço instalado por meio de um terminal de linha de comando (CLI) com direitos de administrador/root. No Windows/MacOS também utilizando uma interface gráfica. No Android/iOS apenas usando GUI.

  2. Verificando o sucesso da instalação do serviço:

    CLI:

    zerotier-cli status

    Resultado: 

    200 info ebf416fac1 1.4.6 ONLINE
    GUI:

    O próprio fato de o aplicativo estar em execução e a presença nele de uma linha com Node ID com o endereço do nó.

  3. Conectando um nó à rede:

    CLI:

    zerotier-cli join <Network ID>

    Resultado: 

    200 join OK

    GUI:

    Windows: clique com o botão direito no ícone Zero Nível Um na bandeja do sistema e selecionando o item - Junte-se à rede.

    Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
    Mac OS: Inicie o aplicativo Zero Nível Um no menu da barra, se ainda não estiver iniciado. Clique no ícone ⏁ e selecione Junte-se à rede.

    Android/iOS: + (mais imagem) no aplicativo

    Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
    No campo que aparece, insira o controlador de rede especificado na GUI ID da redee pressione Junte-se/Adicione Rede.

  4. Atribuindo um endereço IP a um host
    Agora voltamos ao controlador de rede e na página com a lista de redes siga o link membros. Se você vir uma imagem semelhante a esta na tela, significa que seu controlador de rede recebeu uma solicitação para confirmar a conexão à rede do nó conectado.

    Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
    Nesta página deixamos tudo como está por enquanto e seguimos o link Atribuição de IP vá para a página para atribuir um endereço IP ao nó:

    Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
    Após atribuir o endereço, clique no botão Voltar retorne à página da lista de nós conectados e defina o nome - Nome do membro e marque a caixa de seleção para autorizar o nó na rede - Autorizado. A propósito, esta caixa de seleção é muito conveniente para desconectar/conectar da rede host no futuro.

    Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
    Salve as alterações usando o botão revisar.

  5. Verificando o status da conexão do nó com a rede:
    Para verificar o status da conexão no próprio nó, execute:
    CLI:

    zerotier-cli listnetworks

    Resultado:

    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24

    GUI:

    O status da rede deve estar OK

    Para conectar os nós restantes, repita as operações 1 a 5 para cada um deles.

Verificando a conectividade de rede dos nós

Eu faço isso executando o comando pingar no dispositivo conectado à rede que estou gerenciando atualmente.

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1
Na captura de tela do controlador Web-GUI você pode ver três nós conectados à rede:

  1. ZTNCUI-10.10.10.1 - meu controlador de rede com GUI - VDS em um dos DCs RuVDS. Para o trabalho normal, não há necessidade de adicioná-lo à rede, mas fiz isso porque quero bloquear o acesso externo à interface web. Mais sobre isso mais tarde. 
  2. MeuComp - 10.10.10.2 - meu computador de trabalho é um PC físico
  3. Cópia de segurança - 10.10.10.3 — VDS em outro DC.

Portanto, no meu computador de trabalho verifico a disponibilidade de outros nós com os comandos:

ping 10.10.10.1

Pinging 10.10.10.1 with 32 bytes of data:
Reply from 10.10.10.1: bytes=32 time=14ms TTL=64
Reply from 10.10.10.1: bytes=32 time=4ms TTL=64
Reply from 10.10.10.1: bytes=32 time=7ms TTL=64
Reply from 10.10.10.1: bytes=32 time=2ms TTL=64

Ping statistics for 10.10.10.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 14ms, Average = 6ms

ping 10.10.10.3

Pinging 10.10.10.3 with 32 bytes of data:
Reply from 10.10.10.3: bytes=32 time=15ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Reply from 10.10.10.3: bytes=32 time=8ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64

Ping statistics for 10.10.10.3:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 4ms, Maximum = 15ms, Average = 7ms

O usuário tem o direito de utilizar outras ferramentas para verificar a disponibilidade de nós na rede, tanto integradas ao SO quanto como NMAP, Advanced IP Scanner, etc.

Ocultamos o acesso externo à GUI do controlador de rede.

Em geral, posso reduzir a probabilidade de acesso não autorizado ao VDS no qual meu controlador de rede está localizado usando um firewall em minha conta pessoal RuVDS. Este tópico é mais provável para um artigo separado. Portanto, mostrarei aqui como fornecer acesso ao controlador GUI apenas a partir da rede que criei neste artigo.

Para fazer isso, você precisa se conectar via SSH ao VDS no qual o controlador está localizado e abrir o arquivo de configuração usando o comando:

nano /opt/key-networks/ztncui/.env

No arquivo aberto, após a linha “HTTPS_PORT=3443” contendo o endereço da porta na qual a GUI abre, você precisa adicionar uma linha adicional com o endereço em que a GUI será aberta - no meu caso é HTTPS_HOST=10.10.10.1 .XNUMX. 

A seguir vou salvar o arquivo

Сtrl+C
Y
Enter 

e execute o comando:

systemctl restart ztncui

E é isso, agora a GUI do meu controlador de rede está disponível apenas para os nós da rede 10.10.10.0.24.

Em vez de uma conclusão 

É aqui que quero terminar a primeira parte do guia prático para criação de redes virtuais baseadas em ZeroTier. Aguardo seus comentários. 

Enquanto isso, para passar o tempo até a publicação da próxima parte, na qual contarei como combinar uma rede virtual com uma física, como organizar um modo “guerreiro da estrada” e algo mais, sugiro que você tente organizando sua própria rede virtual usando um controlador de rede privada com GUI baseado em VDS do mercado em On-line RUVDS. Além disso, todos os novos clientes têm um período de teste gratuito de 3 dias!

PS Sim! Eu quase esqueci! Você pode remover um nó da rede usando um comando na CLI desse nó.

zerotier-cli leave <Network ID>

200 leave OK

ou o comando Delete na GUI do cliente no nó.

-> Introdução. Parte teórica. Switch Ethernet Inteligente para o Planeta Terra
-> Um guia prático para construir redes virtuais. Parte 1
-> Um guia prático para construir redes virtuais. Parte 2

Desenvolvido por ZeroTier. Um guia prático para construir redes virtuais. Parte 1

Fonte: habr.com

Adicionar um comentário