
Continuando a história sobre ZeroTier, da teoria exposta no artigo "Comutador Ethernet Inteligente para o Planeta Terra», passo para a prática, onde:
- Vamos criar e configurar um controlador de rede privado
- Vamos criar uma rede virtual
- Vamos configurar e conectar nós a ela
- Vamos testar a conectividade de rede entre eles
- Vamos fechar o acesso à interface gráfica do controlador de rede externamente
Controlador de Rede
Como mencionado anteriormente, para criar redes virtuais, gerenciá-las e conectar nós, o usuário precisa de um controlador de rede, cuja interface gráfica (GUI) existe em duas formas:
Opções de ZeroTier GUI
- Uma do desenvolvedor do ZeroTier, disponível como uma solução pública em nuvem, oferecida no modelo SaaS, com quatro planos de assinatura, incluindo um gratuito, mas limitado em número de dispositivos gerenciados e nível de suporte.
- A segunda — de um desenvolvedor independente, com funcionalidades um pouco simplificadas, mas disponível como uma solução privada de código aberto, para uso on-premise ou em recursos de nuvem.
Em minha prática, usei ambas e, no final, decidi pela segunda. O motivo foi os avisos do desenvolvedor.
«Os controladores de rede servem como centros de certificação para redes virtuais ZeroTier. Arquivos contendo as chaves secretas do controlador devem ser cuidadosamente protegidos e arquivados de forma segura. Sua compromissão permite que atacantes não autorizados criem configurações fraudulentas de redes; a perda — resulta na perda da capacidade de controlar e gerenciar a rede, tornando-a inutilizável»
E também, sinais da minha própria paranoia em segurança da informação 🙂
- Mesmo que o Cheburnet venha — eu devo manter acesso ao meu controlador de rede;
- O controlador de rede deve ser utilizado apenas por mim. Quando necessário, concedendo acesso a pessoas de confiança;
- Deve haver a possibilidade de restringir o acesso ao controlador de rede externamente.
Parar para discutir como implantar o controlador de rede e sua GUI em recursos físicos ou virtuais on-premise nessa artigo, não vejo grande sentido. E há três razões para isso:
- o texto terminará sendo maior do que eu planejei
- já falamos sobre isso foi relatado no GitHab do desenvolvedor GUI
- o tema do artigo é diferente
Portanto, escolhendo o caminho de menor resistência, vou usar nesta narrativa um controlador de rede com GUI baseado em VDS, criado a partir de um template, gentilmente desenvolvido por meus colegas da ProHoster.
Configuração inicial
Após a criação servidor a partir do template indicado, o acesso ao Web-GUI do controlador é feito pelo navegador, acessando o endereço httрs://:3443

Por padrão servidor já contém um certificado TLS/SSL autoassinado pré-criado. Para mim, isso é suficiente, pois estou restringindo o acesso externo. Para aqueles que desejam usar outros tipos de certificados, há está disponível para instalação no GitHab do desenvolvedor GUI.
Ao acessar o sistema pela primeira vez Iniciar sessão com login e senha padrão — admin e senha:

Ele sugere alterar a senha padrão para uma personalizada

Eu faço um pouco diferente — não altero a senha do usuário existente, mas crio um novo — Criar Usuário.
Defino o nome do novo usuário — Nome de usuário:
Defino a nova senha — Digite a nova senha:
Confirme a nova senha — Reinsira a senha:
Os caracteres digitados são sensíveis a maiúsculas e minúsculas — tenha cuidado!
Caixa de seleção para confirmação da alteração de senha no próximo login — Alterar senha no próximo login: não marco.
Para confirmar os dados inseridos, clico em Definir senha:

Depois: faço logout — Sair / Iniciar sessão, já com as credenciais do novo usuário:

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

Futuramente, é possível 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 deve acessar a guia Adicionar rede. A partir do item User isso pode ser feito pela página Home — a página principal do Web-GUI, onde é exibido o endereço ZeroTier deste controlador de rede e há um link para a página da lista de redes criadas por ele.

Na página Adicionar rede o usuário atribui um nome à nova rede que está sendo criada.

Ao aplicar os dados inseridos — Criar Rede o usuário é levado à página com a lista de redes, onde estão indicados:
Nome da rede — o nome da rede em formato de link, onde ao clicar pode ser alterado
ID da rede — identificador da rede
detalhe — link para a página com os parâmetros detalhados da rede
configuração fácil — link para a página de configuração simples
membros — link to the node management page

For further configuration, we go to the link configuração fácil. On the opened page, the user sets the range of IPv4 addresses for the created network. This can be done automatically by clicking the button Generate network address or manually by entering the network mask into the corresponding field CIDR.

When the data entry is confirmed successfully, it is necessary to return to the network list page using the Back button. At this point, the main network configuration can be considered complete.
Connecting network nodes
- First, the user must install the ZeroTier One service on the node they want to connect to the network.What is ZeroTier One?ZeroTier One — a service running on laptops, desktops, servers, virtual machines, and containers, which provides connections to a virtual network through a virtual network port, similar to a VPN client. After installing and starting the service, you can connect to the virtual networks using their 16-digit addresses. Each network appears as a virtual network port in the system that behaves exactly like a regular Ethernet port.
Links to distributions and installation commands can be found on the manufacturer's page. The installed service can be managed through the command line terminal (CLI) with admin/root rights. In Windows/MacOS also through a graphical interface. In Android/iOS only through the GUI. - Checking the success of the service installation:CLI:
zerotier-cli statusResultado:
200 info ebf416fac1 1.4.6 ONLINE
GUI:The mere fact that the application is running and there is a line with the Node ID addressed to the node.
- Connecting the node to the network:CLI:
zerotier-cli joinResultado:
200 join OKGUI:
Windows: by right-clicking the icon ZeroTier One in the system tray and selecting the item — Join Network.

MacOS: Launch the application ZeroTier One in the bar menu, if it is not already running. Click the ⏁ icon and select Join Network.Android/iOS: + (the plus image) in the app

In the field that appears, enter the network controller specified in the GUI ID da rede, and click Join / Add Network. - Assigning an IP address to the node
Now we return to the network controller and on the page with the list of networks go to the link membros. If you see an image like this on the screen — it means your network controller has received a request to confirm network connection from the connecting node.
On this page, we leave everything as it is for now and follow the link IP assignment vamos para a página de destino do nó com o endereço IP:
Após atribuir o endereço, clique no botão Verso voltamos para a página da lista de nós conectados e definimos o nome — Nome do membro e marcamos 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 o nó da rede posteriormente.
Salve as alterações usando o botão Atualizar. - Verificando o status de conexão do nó à rede:
Para verificar o status de conexão no próprio nó, executamos:
CLI:zerotier-cli listnetworksResultado:
200 listnetworks
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 ser OK
Para conectar os outros nós, repetimos as operações 1-5 para cada um deles.
Verificação da conectividade de rede dos nós
Faço isso executando o comando ping no dispositivo conectado à rede que estou gerenciando no momento.

Na captura de tela do Web-GUI do controlador, é possível ver três nós conectados à rede:
- ZTNCUI — 10.10.10.1 — meu controlador de rede com GUI — VDS em um dos DCs da ProHoster. Para operação normal, não é necessário adicioná-lo à rede, mas eu fiz isso porque quero restringir o acesso à interface web de fora. Farei mais sobre isso mais adiante.
- MyComp — 10.10.10.2 — meu computador de trabalho — um PC físico
- Backup — 10.10.10.3 — VDS em outro DC.
Portanto, do meu computador de trabalho, verifico a acessibilidade dos outros nós com os comandos:
ping 10.10.10.1Enviando ping para 10.10.10.1 com 32 bytes de dados:
Resposta de 10.10.10.1: bytes=32 tempo=14ms TTL=64
Resposta de 10.10.10.1: bytes=32 tempo=4ms TTL=64
Resposta de 10.10.10.1: bytes=32 tempo=7ms TTL=64
Resposta de 10.10.10.1: bytes=32 tempo=2ms TTL=64
Estatísticas do ping para 10.10.10.1:
Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Tempos aproximados de ida e volta em milissegundos:
Mínimo = 2ms, Máximo = 14ms, Médio = 6ms
ping 10.10.10.3Enviando ping para 10.10.10.3 com 32 bytes de dados:
Resposta de 10.10.10.3: bytes=32 tempo=15ms TTL=64
Resposta de 10.10.10.3: bytes=32 tempo=4ms TTL=64
Resposta de 10.10.10.3: bytes=32 tempo=8ms TTL=64
Resposta de 10.10.10.3: bytes=32 tempo=4ms TTL=64
Estatísticas do ping para 10.10.10.3:
Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Tempos aproximados de ida e volta em milissegundos:
Mínimo = 4ms, Máximo = 15ms, Médio = 7ms
O usuário tem o direito de usar outras ferramentas para verificar a acessibilidade dos nós na rede, tanto as integradas ao sistema operacional quanto ferramentas como NMAP, Advanced IP Scanner, etc.
Ocultando o acesso ao GUI do controlador de rede de fora.
Na verdade, para reduzir a probabilidade de acesso não autorizado ao VDS, onde está meu controlador de rede, posso usar firewall na minha conta pessoal da ProHoster. Este tema é mais adequado para um artigo separado. Portanto, aqui mostrarei como garantir o acesso ao GUI do controlador apenas a partir da rede que criei neste artigo.
Para isso, é necessário se conectar via SSH ao VDS onde está o controlador, abrir o arquivo de configuração usando o comando:
nano /opt/key-networks/ztncui/.envNo arquivo aberto, após a linha "HTTPS_PORT=3443", que contém o endereço da porta pela qual a GUI é aberta, é necessário adicionar uma linha adicional com o endereço pelo qual a GUI será acessada — no meu caso, é HTTPS_HOST=10.10.10.1.
Em seguida, salvarei o arquivo
Ctrl+C
Y
Enter
e executarei o comando:
systemctl restart ztncuiE é 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 conclusão
Com isso, quero encerrar a primeira parte do guia prático sobre a criação de redes virtuais baseadas em ZeroTier. Aguardarei seus comentários.
Enquanto isso, para passar o tempo até a publicação da próxima parte, na qual falarei sobre como conectar a rede virtual com a rede física, como organizar o modo "road warrior" e mais algumas coisas, recomendo que você tente organizar sua própria rede virtual usando um controlador de rede privado com GUI baseado em VDS do marketplace da site ProHoster. Além disso, todos os novos clientes têm um período de teste gratuito de 3 dias!
P.S. Ah! Quase me esqueci! Você pode remover um nó da rede com o comando no CLI desse nó.
zerotier-cli leave200 leave OK
ou com o comando Delete na GUI do cliente no nó.
-> Introdução. Parte teórica. Switch Ethernet inteligente para o planeta Terra
-> Guia prático para construção de redes virtuais. Parte 1
-> Guia prático para construção de redes virtuais. Parte 2
Fonte: habr.com





