Desarrollado por ZeroTier. Una guía práctica para construir redes virtuales. Parte 1


Continuando con la historia sobre ZeroTier, a partir de la teoría presentada en el artículo " Switch inteligente de Ethernet para el planeta Tierra ", paso a la práctica en la que:

  • Crear y configurar un controlador de red privado.
  • Crea una red virtual
  • Configurar y conectar nodos a él
  • Verifique la conectividad de red entre ellos.
  • Cerrar el acceso a la GUI del controlador de red desde el exterior

Controlador de red


Como se mencionó anteriormente, para crear redes virtuales, administrarlas y también conectar nodos, el usuario necesita un controlador de red, una interfaz gráfica (GUI) para la cual existe de dos maneras:

Opciones de GUI ZeroTier
  • Uno del desarrollador ZeroTier, disponible como una solución de nube pública proporcionada por el modelo SaaS, con cuatro planes de suscripción, incluido gratuito, pero limitado en la cantidad de dispositivos administrados y el nivel de soporte
  • El segundo es de un desarrollador independiente, algo simplificado en funcionalidad, pero disponible como una solución privada de código abierto para uso local o en recursos en la nube.

En mi práctica, utilicé ambos, y como resultado, sin embargo, me decidí por el segundo. La razón de esto fueron las advertencias del desarrollador.

“Los controladores de red sirven como autoridades de certificación para redes virtuales ZeroTier. Los archivos que contienen las claves secretas del controlador deben guardarse cuidadosamente y archivarse de forma segura. Comprometerlos les permite a los atacantes no autorizados crear configuraciones de red fraudulentas. Y la pérdida conduce a la pérdida de la capacidad de controlar y administrar la red, haciéndola efectivamente inutilizable ”

Enlace a la documentación

Y también, signos de su propio paranoico del IB :)

  • Incluso si viene Cheburnet, aún debería tener acceso a mi controlador de red;
  • Solo yo debería usar el controlador de red. Si es necesario, proporcionar acceso a sus representantes autorizados;
  • Debería ser posible restringir el acceso al controlador de red desde el exterior.

Para detenerme por separado sobre cómo implementar un controlador de red y una GUI para él en recursos físicos o virtuales locales, en este artículo no veo mucho sentido. Y también hay 3 razones para esto:

  • más cartas de lo planeado
  • Esto ya se describe en GitHab GUI Developer
  • tema sobre otro

Por lo tanto, al elegir el camino de menor resistencia, usaré en esta narrativa un controlador de red con una GUI basada en VDS creada a partir de una plantilla desarrollada amablemente por mis colegas de RuVDS.

Configuración inicial


Después de crear el servidor a partir de la plantilla especificada, el usuario obtiene acceso a la GUI web del controlador a través del navegador contactando en https: // <IP del servidor>: 3443


De forma predeterminada, el servidor ya contiene un certificado TLS / SSL autofirmado previamente creado. Esto es suficiente para mí, ya que bloqueo el acceso desde afuera. Para aquellos que desean usar otros tipos de certificados, hay una instrucción para instalar un desarrollador de GUI en GitHab.

Cuando un usuario inicia sesión por primera vez en el sistema de inicio de sesión con el nombre de usuario y la contraseña predeterminados, admin y contraseña :


Ella sugiere cambiar la contraseña predeterminada al usuario


Actúo de manera un poco diferente: no cambio la contraseña de un usuario existente, sino que creo una nueva: Crear usuario .

Configuré el nombre del nuevo usuario - Nombre de usuario :
Configuré una nueva contraseña. Ingrese una nueva contraseña :
Confirmo la nueva contraseña - Vuelva a ingresar la contraseña :

Los caracteres ingresados ​​distinguen entre mayúsculas y minúsculas, ¡tenga cuidado!

Casilla de verificación que confirma el cambio de contraseña en el siguiente inicio de sesión - Cambiar contraseña en el siguiente inicio de sesión: no lo marco.

Para confirmar los datos ingresados, presione Establecer contraseña :


Luego: conectado - Cerrar sesión / Iniciar sesión , ya bajo las credenciales del nuevo usuario:


A continuación, voy a la pestaña Usuarios - Usuarios y elimino al usuario administrador haciendo clic en el icono de la papelera que se encuentra a la izquierda de su nombre.


En el futuro, puede cambiar la contraseña de usuario haciendo clic en su nombre o establecer contraseña.

Creando una red virtual


Para crear una red virtual, el usuario debe ir a la pestaña Agregar red . Desde el elemento Usuario , esto se puede hacer a través de la página de inicio, la página principal de la GUI web, en la que se muestra la dirección ZeroTier de este controlador de red y hay un enlace a la lista de redes creadas a través de él.


En la página Agregar red , el usuario asigna nuevamente el nombre de la red que está creando.


Al aplicar los datos de entrada: Crear red, el usuario accede a una página con una lista de redes en las que se indican:

Nombre de red: nombre de red en forma de enlace, cuando hace clic en el que puede cambiarlo
ID de red - ID de red
detalle : enlace a una página con parámetros de red detallados
configuración fácil : enlace a una página para una configuración fácil
miembros - enlace a la página de administración del sitio


Para una configuración adicional, haga clic en el enlace de configuración fácil . En la página que se abre, el usuario establece el rango de direcciones IPv4 para la red que se está creando. Esto se puede hacer automáticamente presionando el botón Generar dirección de red o manualmente ingresando la máscara de red de la red CIDR en el campo correspondiente.


Una vez confirmada la entrada exitosa de datos, debe regresar a la página con la lista de redes con el botón Atrás. En esto, la configuración básica de la red puede considerarse completa.

Conectando hosts


  1. Primero, debe instalar el servicio ZeroTier One en el nodo que el usuario desea conectar a la red.

    ¿Qué es ZeroTier One?
    ZeroTier One es un servicio que se ejecuta en computadoras portátiles, computadoras de escritorio, servidores, máquinas virtuales y contenedores, que proporciona conexiones a una red virtual a través de un puerto de red virtual, como un cliente VPN.

    Después de instalar e iniciar el servicio, puede conectarse a redes virtuales utilizando sus direcciones de 16 dígitos. Cada red se parece a un puerto de red virtual en el sistema, que se comporta igual que un puerto Ethernet normal.

    Los enlaces a las distribuciones, así como los comandos de instalación se pueden encontrar en la página del fabricante .

    Puede administrar el servicio instalado a través del terminal de línea de comando (CLI) con derechos de administrador / root. En Windows / MacOS, también usando la interfaz gráfica. En Android / iOS, solo usando la GUI.
  2. Comprobación del éxito de la instalación del servicio:

    CLI:

    zerotier-cli status 

    Resultado:

    200 info ebf416fac1 1.4.6 ONLINE
    GUI

    El hecho mismo de su operación de aplicación y la presencia en él de una línea con ID de nodo con la dirección de nodo.
  3. Conectando el nodo a la red:

    CLI:

     zerotier-cli join <Network ID> 

    Resultado:

    200 join OK

    GUI

    Windows: haga clic derecho en el icono de ZeroTier One en la bandeja del sistema y seleccione - Unirse a la red .


    MacOS: inicie la aplicación ZeroTier One en el menú de la barra, si aún no se está ejecutando. Haga clic en el icono ⏁ y seleccione Unirse a la red .

    Android / iOS: + (más imagen) en la aplicación


    En el campo que aparece, ingrese la ID de red especificada en la GUI del controlador de red y haga clic en Unirse / Agregar red .
  4. Asignación de una dirección IP a un host
    Ahora volvemos al controlador de red y en la página con la lista de redes, vaya al enlace de miembros . Si en la pantalla vio una imagen similar a esta, significa que su controlador de red recibió una solicitud para confirmar la conexión a la red desde el nodo conectado.


    En esta página, dejamos todo como está y, mediante el enlace de asignación de IP, vamos a la página de destino del nodo de dirección IP:


    Después de asignar la dirección, con el botón Atrás , volvemos a la página de la lista de nodos conectados y establecemos el nombre - Nombre del miembro y marcamos la casilla de verificación para autorizar el nodo en la red - Autorizado . Por cierto, esta casilla de verificación es muy conveniente para desconectarse / conectarse a la red host en el futuro.


    Guarde los cambios con el botón Actualizar .
  5. Comprobación del estado de conexión del nodo a la red:
    Para verificar el estado de la conexión en el nodo en sí, realizamos:
    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

    El estado de la red debe estar bien

    Para conectar los nodos restantes, repita los pasos 1-5 para cada uno de ellos.

Verificar la conectividad de red de nodos


Lo hago ejecutando el comando ping <dirección IP de otro nodo de red> en el dispositivo conectado a la red que controlo actualmente.


En la captura de pantalla del controlador Web-GUI, puede ver tres nodos conectados a la red:

  1. ZTNCUI - 10.10.10.1 - mi controlador de red con GUI - VDS en uno de los DC de RuVDS. Para el trabajo normal, no es necesario agregarlo a la red, pero lo hice porque quiero bloquear el acceso a la interfaz web desde el exterior. Más sobre esto más tarde.
  2. MyComp - 10.10.10.2 - mi computadora de trabajo es una PC física
  3. Copia de seguridad - 10.10.10.3 - VDS en otro DC.

Por lo tanto, desde mi computadora de trabajo, verifico la disponibilidad de otros nodos con los 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


El usuario tiene derecho a usar otras herramientas para verificar la disponibilidad de nodos en la red, ambos integrados en el sistema operativo, como NMAP, Advanced IP Scanner, etc.

Ocultar el acceso a la GUI del controlador de red desde el exterior.


En general, puedo reducir la probabilidad de acceso no autorizado al VDS, en el que se encuentra mi controlador de red, utilizando el firewall en mi cuenta RuVDS. Este tema es más probable para un artículo separado. Por lo tanto, aquí mostraré cómo proporcionar acceso a la GUI del controlador solo desde la red que creé en este artículo.

Para hacer esto, conéctese a través de SSH al VDS en el que se encuentra el controlador, abra el archivo de configuración con el comando:

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

En el archivo que se abre, después de la línea "HTTPS_PORT = 3443" que contiene la dirección del puerto donde se abre la GUI, debe agregar una línea adicional con la dirección donde se abrirá la GUI; en mi caso, esto es HTTPS_HOST = 10.10.10.1.

A continuación, guarde el archivo

trl+C
Y
Enter


y ejecuta el comando:

 systemctl restart ztncui 

Y eso es todo, ahora la GUI de mi controlador de red está disponible solo para los nodos de red 10.10.10.0.24.

En lugar de una conclusión


Con esto, quiero terminar la primera parte de la guía práctica sobre la creación de redes virtuales basadas en ZeroTier. Esperando sus comentarios.

Mientras tanto, para pasar el tiempo hasta la publicación de la siguiente parte, en la que le diré cómo combinar una red virtual con una física, cómo organizar un modo de "guerrero de la carretera" y algo más, le sugiero que intente organizar su propia red virtual utilizando un controlador de red privado con GUI basada en VDS del mercado en el sitio web de RUVDS. ¡Además, para todos los nuevos clientes hay un período de prueba gratuito de 3 días!

PD Sí! ¡Casi lo olvido! Puede eliminar un nodo de la red utilizando el comando en la CLI de este nodo.

 zerotier-cli leave <Network ID> 

200 leave OK

o el comando Eliminar en la GUI del cliente en el nodo.

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


All Articles