Propulsé par ZeroTier. Un guide pratique pour la construction de réseaux virtuels. Partie 1


Poursuivant l'histoire de ZeroTier, à partir de la théorie présentée dans l'article « Commutateur Ethernet intelligent pour la planète Terre », je me tourne vers la pratique dans laquelle:

  • Créer et configurer un contrôleur de réseau privé
  • Créer un réseau virtuel
  • Configurez et connectez-y des nœuds
  • Vérifiez la connectivité réseau entre eux.
  • Fermer l'accès à l'interface graphique du contrôleur réseau de l'extérieur

Contrôleur réseau


Comme mentionné précédemment, pour créer des réseaux virtuels, les gérer et également connecter des nœuds, l'utilisateur a besoin d'un contrôleur réseau, une interface graphique (GUI) pour laquelle il existe de deux manières:

Options de l'interface graphique ZeroTier
  • Un du développeur ZeroTier, disponible en tant que solution de cloud public fournie par le modèle SaaS, avec quatre plans d'abonnement, y compris gratuits, mais limités dans le nombre d'appareils gérés et le niveau de support
  • Le second provient d'un développeur indépendant, quelque peu simplifié dans ses fonctionnalités, mais disponible en tant que solution open source privée pour une utilisation sur site ou sur des ressources cloud.

Dans ma pratique, j'ai utilisé les deux, et en conséquence, j'ai quand même choisi la seconde. La raison en était les avertissements du développeur.

«Les contrôleurs de réseau servent d'autorités de certification pour les réseaux virtuels ZeroTier. Les fichiers contenant les clés secrètes du contrôleur doivent être soigneusement protégés et archivés en toute sécurité. Les compromettre permet à des attaquants non autorisés de créer des configurations de réseau frauduleuses. Et la perte entraîne la perte de la capacité de contrôler et de gérer le réseau, le rendant effectivement inutilisable. "

Lien vers la documentation

Et aussi, des signes de leur propre paranoïaque IB :)

  • Même si Cheburnet vient, je dois quand même avoir accès à mon contrôleur réseau;
  • Seul moi devrait utiliser le contrôleur réseau. Si nécessaire, donner accès à leurs représentants autorisés;
  • Il doit être possible de restreindre l'accès au contrôleur réseau de l'extérieur.

Pour m'arrêter séparément sur la façon de déployer un contrôleur réseau et une interface graphique pour celui-ci sur des ressources physiques ou virtuelles sur site, dans cet article, je ne vois pas grand-chose. Et il y a aussi 3 raisons à cela:

  • plus de lettres que prévu
  • Ceci est déjà décrit sur GitHab GUI Developer
  • sujet sur un autre

Par conséquent, en choisissant le chemin de moins de résistance, j'utiliserai dans ce récit un contrôleur de réseau avec une interface graphique basée sur VDS créée à partir d'un modèle gentiment développé par mes collègues de RuVDS.

Configuration initiale


Après avoir créé le serveur à partir du modèle spécifié, l'utilisateur accède à l'interface graphique Web du contrôleur via le navigateur en contactant à https: // <serveur IP>: 3443


Par défaut, le serveur contient déjà un certificat TLS / SSL auto-signé pré-créé. Cela me suffit, car j'en bloque l'accès depuis l'extérieur. Pour ceux qui souhaitent utiliser d'autres types de certificats, il existe une instruction pour installer un développeur GUI sur GitHab.

Lorsqu'un utilisateur se connecte pour la première fois au système de connexion avec le nom d'utilisateur et le mot de passe par défaut - administrateur et mot de passe :


Elle suggère de changer le mot de passe par défaut en utilisateur


J'agis un peu différemment - je ne change pas le mot de passe d'un utilisateur existant, mais j'en crée un nouveau - Créer un utilisateur .

J'ai défini le nom du nouvel utilisateur - Nom d'utilisateur :
J'ai défini un nouveau mot de passe - Entrez un nouveau mot de passe :
Je confirme le nouveau mot de passe - Entrez à nouveau le mot de passe :

Les caractères saisis sont sensibles à la casse - soyez prudent!

Case à cocher confirmant le changement de mot de passe à la prochaine connexion - Changer le mot de passe à la prochaine connexion: je ne le marque pas.

Pour confirmer les données saisies, appuyez sur Définir le mot de passe :


Ensuite: connecté - Déconnexion / Connexion , déjà sous les informations d'identification du nouvel utilisateur:


Ensuite, je vais dans l'onglet Utilisateurs - Utilisateurs et je supprime l'utilisateur administrateur en cliquant sur l'icône de la corbeille située à gauche de son nom.


À l'avenir, vous pouvez modifier le mot de passe de l'utilisateur en cliquant sur son nom ou sur le mot de passe défini.

Création d'un réseau virtuel


Pour créer un réseau virtuel, l'utilisateur doit accéder à l'onglet Ajouter un réseau . À partir de l'élément Utilisateur , cela peut être fait via la page d' accueil - la page Web-GUI principale, qui affiche l'adresse ZeroTier de ce contrôleur de réseau et il existe un lien vers la liste des réseaux créés via celui-ci.


Sur la page Ajouter un réseau , l'utilisateur attribue à nouveau le nom du réseau qu'il crée.


Lors de l'application des données d'entrée - Créer un réseau, l' utilisateur accède à une page avec une liste de réseaux sur lesquels sont indiqués:

Nom du réseau - nom du réseau sous la forme d'un lien, lorsque vous cliquez sur lequel vous pouvez le changer
ID réseau - ID réseau
détail - lien vers une page avec des paramètres réseau détaillés
configuration facile - lien vers une page pour une configuration facile
membres - lien vers la page de gestion du site


Pour plus de configuration, cliquez sur le lien de configuration facile . Sur la page qui s'ouvre, l'utilisateur définit la plage d'adresses IPv4 pour le réseau en cours de création. Cela peut être fait automatiquement en appuyant sur le bouton Générer l'adresse réseau ou manuellement en entrant le masque de réseau du réseau CIDR dans le champ correspondant.


Après confirmation de la réussite de la saisie des données, vous devez retourner à la page avec la liste des réseaux à l'aide du bouton Retour. Sur ce point, la configuration de base du réseau peut être considérée comme terminée.

Connexion d'hôtes


  1. Tout d'abord, vous devez installer le service ZeroTier One sur le nœud que l'utilisateur souhaite connecter au réseau.

    Qu'est-ce que ZeroTier One?
    ZeroTier One est un service qui s'exécute sur des ordinateurs portables, des ordinateurs de bureau, des serveurs, des machines virtuelles et des conteneurs, qui fournit des connexions à un réseau virtuel via un port réseau virtuel, comme un client VPN.

    Après avoir installé et démarré le service, vous pouvez vous connecter à des réseaux virtuels en utilisant leurs adresses à 16 chiffres. Chaque réseau ressemble à un port réseau virtuel du système, qui se comporte de la même manière qu'un port Ethernet standard.

    Les liens vers les distributions ainsi que les commandes d'installation se trouvent sur la page du fabricant .

    Vous pouvez gérer le service installé via le terminal de ligne de commande (CLI) avec des droits d'administrateur / root. Sous Windows / MacOS, également en utilisant l'interface graphique. Sur Android / iOS, uniquement en utilisant l'interface graphique.
  2. Vérification du succès de l'installation du service:

    CLI:

    zerotier-cli status 

    Résultat:

    200 info ebf416fac1 1.4.6 ONLINE
    GUI:

    Le fait même de son fonctionnement applicatif et la présence en son sein d'une ligne avec Node ID avec l'adresse du nœud.
  3. Connexion du nœud au réseau:

    CLI:

     zerotier-cli join <Network ID> 

    Résultat:

    200 join OK

    GUI:

    Windows: cliquez avec le bouton droit sur l'icône ZeroTier One dans la barre d'état système et sélectionnez - Rejoindre le réseau .


    MacOS: lancez l' application ZeroTier One dans le menu de la barre, si ce n'est déjà fait. Cliquez sur l'icône ⏁ et sélectionnez Rejoindre le réseau .

    Android / iOS: + (plus image) dans l'application


    Dans le champ qui apparaît, entrez l' ID réseau spécifié dans l'interface graphique du contrôleur de réseau et cliquez sur Join / Add Network .
  4. Attribution d'une adresse IP à un hôte
    Maintenant, nous revenons au contrôleur de réseau et sur la page avec la liste des réseaux, accédez au lien des membres . Si sur l'écran vous avez vu une image similaire à celle-ci, cela signifie que votre contrôleur réseau a reçu une demande de confirmation de la connexion au réseau du nœud connecté.


    Sur cette page, nous laissons tout tel quel et par le lien d' attribution IP, nous nous dirigeons vers la page de destination du nœud d'adresse IP:


    Après avoir attribué l'adresse, par le bouton Retour, nous revenons à la page de la liste des nœuds connectés et définissons le nom - Nom du membre et cochez la case pour autoriser le nœud sur le réseau - Autorisé . Soit dit en passant, cette case à cocher est très pratique pour se déconnecter / se connecter au réseau hôte à l'avenir.


    Enregistrez les modifications à l'aide du bouton Actualiser .
  5. Vérification de l'état de connexion du nœud au réseau:
    Pour vérifier l'état de la connexion sur le nœud lui-même, nous effectuons:
    CLI:

     zerotier-cli listnetworks 

    Résultat:

    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:

    L'état du réseau doit être OK

    Pour connecter les nœuds restants, répétez les étapes 1 à 5 pour chacun d'eux.

Vérifier la connectivité réseau des nœuds


Je le fais en exécutant la commande ping <adresse IP d'un autre nœud de réseau> sur le périphérique connecté au réseau que je contrôle actuellement.


Dans la capture d'écran du contrôleur Web-GUI, vous pouvez voir trois nœuds connectés au réseau:

  1. ZTNCUI - 10.10.10.1 - mon contrôleur réseau avec GUI - VDS dans l'un des DC RuVDS. Pour un travail normal, il n'est pas nécessaire de l'ajouter au réseau, mais je l'ai fait parce que je veux bloquer l'accès à l'interface Web de l'extérieur. Plus d'informations à ce sujet plus tard.
  2. MyComp - 10.10.10.2 - mon ordinateur de travail est un PC physique
  3. Sauvegarde - 10.10.10.3 - VDS dans un autre DC.

Par conséquent, depuis mon ordinateur de travail, je vérifie la disponibilité des autres nœuds avec les commandes:

 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


L'utilisateur a le droit d'utiliser d'autres outils pour vérifier la disponibilité des nœuds sur le réseau, tous deux intégrés au système d'exploitation, tels que NMAP, Advanced IP Scanner, etc.

Masquez l'accès à l'interface graphique du contrôleur réseau de l'extérieur.


En général, je peux réduire la probabilité d'accès non autorisé au VDS, sur lequel se trouve mon contrôleur de réseau, en utilisant le pare-feu dans le compte personnel de RuVDS. Ce sujet est plus probable pour un article séparé. Par conséquent, je vais montrer ici comment fournir l'accès à l'interface graphique du contrôleur uniquement à partir du réseau que j'ai créé dans cet article.

Pour ce faire, connectez-vous via SSH au VDS sur lequel se trouve le contrôleur, ouvrez le fichier de configuration à l'aide de la commande:

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

Dans le fichier qui s'ouvre, après la ligne «HTTPS_PORT = 3443» contenant l'adresse du port où la GUI s'ouvre, vous devez ajouter une ligne supplémentaire avec l'adresse où la GUI s'ouvrira - dans mon cas, c'est HTTPS_HOST = 10.10.10.1.

Ensuite, enregistrez le fichier

trl+C
Y
Enter


et exécutez la commande:

 systemctl restart ztncui 

Et c'est tout, maintenant l'interface graphique de mon contrôleur de réseau est disponible uniquement pour les nœuds de réseau 10.10.10.0.24.

Au lieu d'une conclusion


Avec cela, je veux terminer la première partie du guide pratique sur la création de réseaux virtuels basés sur ZeroTier. En attente de vos commentaires.

En attendant, afin de passer le temps jusqu'à la publication de la partie suivante, dans laquelle je vais vous dire comment combiner un réseau virtuel avec un réseau physique, comment organiser un mode «road warrior» et autre chose, je vous suggère d'essayer d'organiser votre propre réseau virtuel en utilisant un contrôleur de réseau privé avec Interface graphique basée sur VDS du marché sur le site Web de RUVDS. De plus, pour tous les nouveaux clients, il y a une période d'essai gratuite de 3 jours!

PS Oui! J'ai presque oublié! Vous pouvez supprimer un nœud du réseau à l'aide de la commande dans la CLI de ce nœud.

 zerotier-cli leave <Network ID> 

200 leave OK

ou la commande Supprimer dans l'interface graphique du client sur le nœud.

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


All Articles