Desenvolvido por ZeroTier. Um guia prático para a construção de redes virtuais. Parte 1


Continuando a história sobre o ZeroTier, a partir da teoria apresentada no artigo “ Switch Ethernet Inteligente para o Planeta Terra ”, volto-me à prática em que:

  • Crie e configure um controlador de rede privado
  • Crie uma rede virtual
  • Configurar e conectar nós a ele
  • Verifique a conectividade de rede entre eles.
  • Feche o acesso à GUI do controlador de rede a partir do exterior

Controlador de rede


Como mencionado anteriormente, para criar redes virtuais, gerenciá-las e também conectar nós, o usuário precisa de um controlador de rede, uma interface gráfica (GUI) para a qual existe de duas maneiras:

Opções da GUI ZeroTier
  • Um do desenvolvedor ZeroTier, disponível como uma solução de nuvem pública fornecida pelo modelo SaaS, com quatro planos de assinatura, incluindo gratuitos, mas limitados no número de dispositivos gerenciados e no nível de suporte
  • O segundo é de um desenvolvedor independente, um pouco simplificado em funcionalidade, mas disponível como uma solução de código aberto privada para uso no local ou em recursos da nuvem.

Na minha prática, usei ambos e, como resultado, não obstante, resolvi o segundo. O motivo disso foram os avisos do desenvolvedor.

“Os controladores de rede servem como autoridades de certificação para redes virtuais ZeroTier. Os arquivos que contêm as chaves secretas do controlador devem ser cuidadosamente protegidos e arquivados com segurança. O comprometimento deles permite que invasores não autorizados criem configurações de rede fraudulentas e a perda leva à perda da capacidade de controlar e gerenciar a rede, tornando-a inutilizável. ”

Link para a documentação

E também, sinais de seu próprio IB paranóico :)

  • Mesmo se o Cheburnet vier, eu ainda deveria ter acesso ao meu controlador de rede;
  • Somente eu devo usar o controlador de rede. Se necessário, fornecer acesso aos seus representantes autorizados;
  • Deve ser possível restringir o acesso ao controlador de rede a partir do exterior.

Para discutir separadamente como implantar um controlador de rede e uma GUI para recursos físicos ou virtuais no local, neste artigo não vejo muito sentido. E há também três razões para isso:

  • mais letras do que o planejado
  • Isso já está descrito no GitHab GUI Developer
  • tópico sobre outro

Portanto, escolhendo o caminho de menor resistência, usarei nesta narrativa um controlador de rede com uma GUI baseada em VDS criada a partir de um modelo gentilmente desenvolvido por meus colegas do RuVDS.

Configuração inicial


Após criar o servidor a partir do modelo especificado, o usuário obtém acesso à GUI da Web do controlador por meio do navegador entrando em contato com https: // <IP do servidor>: 3443


Por padrão, o servidor já contém um certificado TLS / SSL autoassinado pré-criado. Isso é o suficiente para mim, pois bloqueio o acesso a partir do exterior. Para aqueles que desejam usar outros tipos de certificados, há uma instrução para instalar um desenvolvedor de GUI no GitHab.

Quando um usuário faz login pela primeira vez no sistema de Login com o nome de usuário e senha padrão - admin e senha :


Ela sugere alterar a senha padrão para usuário


Eu ajo de maneira um pouco diferente - não altero a senha de um usuário existente, mas crio uma nova - Criar Usuário .

Defino o nome do novo usuário - Nome de usuário :
Defino uma nova senha - Digite a nova senha :
Confirmo a nova senha - Redigite a senha :

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

Caixa de seleção confirmando a alteração da senha no próximo login - Altere a senha no próximo login: Eu não a marquei.

Para confirmar os dados inseridos, pressione Definir senha :


Então: logado - Logout / Login , já sob as credenciais do novo usuário:


Em seguida, vou para a guia Usuários - Usuários e excluo o usuário administrador clicando no ícone da lixeira localizado à esquerda do nome dele.


No futuro, você pode alterar a senha do usuário clicando no nome dele ou configurando a senha.

Criando uma rede virtual


Para criar uma rede virtual, o usuário precisa ir para a guia Adicionar rede . No item Usuário, isso pode ser feito na página inicial - a página principal da GUI da Web, na qual o endereço ZeroTier desse controlador de rede é exibido e há um link para a lista de redes criadas por ele.


Na página Adicionar rede , o usuário atribui o nome da rede que está criando novamente.


Ao aplicar os dados de entrada - Criar rede, o usuário acessa uma página com uma lista de redes nas quais são indicados:

Nome da rede - nome da rede na forma de um link, quando você clica no qual você pode alterá-lo
ID da rede - ID da rede
detalhe - link para uma página com parâmetros de rede detalhados
configuração fácil - link para uma página para configuração fácil
members - link para a página de gerenciamento do site


Para mais configurações, clique no link de configuração fácil . Na página exibida, o usuário define o intervalo de endereços IPv4 para a rede que está sendo criada. Isso pode ser feito automaticamente pressionando o botão Gerar endereço de rede ou manualmente, inserindo a máscara de rede da rede CIDR no campo correspondente.


Após a confirmação da entrada de dados bem-sucedida, você deve retornar à página com a lista de redes usando o botão Voltar. Com isso, a configuração básica da rede pode ser considerada completa.

Conectando hosts


  1. Primeiro, você precisa instalar o serviço ZeroTier One no nó que o usuário deseja conectar à rede.

    O que é o ZeroTier One?
    O ZeroTier One é um serviço executado em laptops, desktops, servidores, máquinas virtuais e contêineres, que fornece conexões a uma rede virtual através de uma porta de rede virtual, como um cliente VPN.

    Após instalar e iniciar o serviço, você pode conectar-se a redes virtuais usando seus endereços de 16 dígitos. Cada rede se parece com uma porta de rede virtual no sistema, que se comporta da mesma forma que uma porta Ethernet comum.

    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 através do terminal da linha de comandos (CLI) com direitos de administrador / root. No Windows / MacOS, também usando a interface gráfica. No Android / iOS, apenas usando a 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 sua operação de aplicativo e a presença nela de uma linha com Node ID com o endereço do nó.
  3. Conectando o nó à rede:

    CLI:

     zerotier-cli join <Network ID> 

    Resultado:

    200 join OK

    GUI:

    Windows: clique com o botão direito do mouse no ícone ZeroTier One na bandeja do sistema e selecione - Ingressar na rede .


    MacOS: inicie o aplicativo ZeroTier One no menu da barra, se ainda não estiver em execução. Clique no ícone and e selecione Ingressar na rede .

    Android / iOS: + (mais imagem) no aplicativo


    No campo exibido, digite o ID da rede especificado na GUI do controlador de rede e clique em Ingressar / Adicionar 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, vamos ao link de membros . Se na tela você viu uma imagem semelhante a esta, significa que o seu controlador de rede recebeu uma solicitação para confirmar a conexão com a rede a partir do nó conectado.


    Nesta página, deixamos tudo como está e, pelo link de atribuição de IP, vamos para a página de destino do nó de endereço IP:


    Após atribuir o endereço, pelo botão Voltar , retornamos à página da lista de nós conectados e definimos 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 é uma coisa muito conveniente para desconectar / conectar-se à rede host no futuro.


    Salve as alterações usando o botão Atualizar .
  5. Verificando o status da conexão do nó com a rede:
    Para verificar o status da conexão no próprio nó, executamos:
    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 etapas de 1 a 5 para cada um deles.

Verifique a conectividade de rede dos nós


Eu faço isso executando o comando ping <endereço IP de outro nó de rede> no dispositivo conectado à rede que eu controle atualmente.


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 do RuVDS. Para o trabalho normal, não há necessidade de adicioná-lo à rede, mas fiz isso porque quero bloquear o acesso à interface da Web a partir do exterior. Mais sobre isso mais tarde.
  2. MyComp - 10.10.10.2 - meu computador de trabalho é um PC físico
  3. Backup - 10.10.10.3 - VDS em outro controlador de domínio.

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 usar outras ferramentas para verificar a disponibilidade de nós na rede, ambos integrados ao sistema operacional, como NMAP, Advanced IP Scanner, etc.

Ocultar o acesso à GUI do controlador de rede a partir do exterior.


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

Para fazer isso, conecte-se via SSH ao VDS no qual o controlador está localizado, abra o arquivo de configuração usando o comando:

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

No arquivo que é aberto, após a linha “HTTPS_PORT = 3443” que contém o endereço da porta em que a GUI é aberta, é necessário adicionar uma linha adicional com o endereço em que a GUI será aberta - no meu caso, é HTTPS_HOST = 10.10.10.1.

Em seguida, salve 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


Com isso, quero terminar a primeira parte do guia prático sobre a criação de redes virtuais baseadas no ZeroTier. Aguardando seus comentários.

Enquanto isso, para passar o tempo até a publicação da próxima parte, na qual explicarei como combinar uma rede virtual com uma física, como organizar um modo "road warrior" e mais alguma coisa, sugiro que você tente organizar sua própria rede virtual usando um controlador de rede privado com GUI baseada em VDS do mercado no site da RUVDS. Além disso, para todos os novos clientes, há um período de teste gratuito de 3 dias!

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

 zerotier-cli leave <Network ID> 

200 leave OK

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

Source: https://habr.com/ru/post/pt485914/


All Articles