Débuter avec la mise en réseau définie par logiciel et créer un VPN avec ZeroTier One

introduction

De nos jours, de plus en plus de projets logiciels sont construits par des équipes dont les membres travaillent ensemble à partir de lieux géographiques distincts. Ce flux de travail présente de nombreux avantages évidents, mais il arrive que de telles équipes souhaitent connecter leurs ordinateurs entre eux via Internet et les traiter comme si elles se trouvaient dans la même pièce. Par exemple, vous pouvez tester des systèmes distribués comme Kubernetes ou créer une application multiservice complexe. Parfois, la productivité est améliorée si vous pouvez traiter les machines comme si elles étaient côte à côte, car vous n’auriez pas besoin de risquer d’exposer vos services inachevés à Internet. Ce paradigme peut être atteint grâce au réseau défini par logiciel (SDN, Software-Defined Networking), une technologie relativement nouvelle qui fournit une structure de réseau dynamique dont l’existence est entièrement constituée de logiciels.

ZeroTier One est une application à source ouverte qui utilise certains des développements les plus récents de SDN pour permettre aux utilisateurs de créer des réseaux sécurisés et faciles à gérer et de traiter les périphériques connectés comme s’ils se trouvaient dans le même réseau. emplacement physique. ZeroTier fournit une console Web pour la gestion de réseau et un logiciel d’extrémité pour les clients. C’est une technologie cryptée d’égal à égal, ce qui signifie que contrairement aux solutions VPN traditionnelles, les communications n’ont pas besoin de passer par un serveur ou un routeur central - les messages sont envoyés directement d’un hôte à l’autre. En conséquence, il est très efficace et garantit une latence minimale. Parmi les autres avantages, citons le processus de déploiement et de configuration simple de ZeroTier, une maintenance simple et le fait qu’il permet un enregistrement et une gestion centralisés des nœuds autorisés via la console Web.

En suivant ce tutoriel, vous allez connecter un client et un serveur dans un réseau simple, point à point. Dans la mesure où le réseau défini par logiciel n’utilise pas la conception client / serveur traditionnelle, il n’ya pas de serveur VPN central à installer et à configurer; cela simplifie le déploiement de l’outil et l’ajout de nœuds supplémentaires. Une fois la connectivité établie, vous aurez la possibilité d’utiliser la fonctionnalité VPN de ZeroTier en utilisant certaines fonctionnalités astucieuses de Linux pour permettre au trafic de quitter votre réseau ZeroTier de votre serveur et d’inviter un client à le renvoyer dans cette direction.

Conditions préalables

Avant de suivre ce didacticiel, vous aurez besoin des ressources suivantes:

  • Un serveur sous Ubuntu 16.04. Sur ce serveur, vous aurez également besoin d’un utilisateur non root doté des privilèges sudo, qui peut être configuré à l’aide de notre https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-. 04 [Guide de configuration initiale du serveur pour Ubuntu 16.04].

  • Un compte avec ZeroTier One, que vous pouvez configurer en vous rendant sur My ZeroTier. Dans le cadre de ce didacticiel, vous pouvez utiliser la version gratuite de ce service, qui n’entraîne aucun coût ni engagement.

  • Un ordinateur local pour rejoindre votre SDN en tant que client. Dans les exemples de ce didacticiel, le serveur et l’ordinateur local exécutent Ubuntu Linux, mais tout système d’exploitation répertorié sur la page ZeroTier fonctionnera sur le client.

Avec ces conditions préalables en place, vous êtes prêt à configurer un réseau défini par logiciel pour votre serveur et votre ordinateur local.

Étape 1 - Créer un réseau défini par logiciel avec ZeroTier One

La plate-forme ZeroTier fournit le point de contrôle central pour votre réseau défini par logiciel. Là, vous pouvez autoriser et retirer l’autorisation des clients, choisir un schéma d’adressage et créer un ID de réseau vers lequel vous pouvez diriger vos clients lors de la configuration.

Connectez-vous à votre compte ZeroTier, cliquez sur * Réseaux * en haut de l’écran, puis cliquez sur * Créer *. Un nom de réseau généré automatiquement apparaîtra. Cliquez dessus pour afficher l’écran de configuration de votre réseau. Notez le * ID réseau * affiché en jaune car vous devrez le mentionner plus tard.

Si vous préférez modifier le nom du réseau en un nom plus descriptif, modifiez le nom à gauche de l’écran. vous pouvez également ajouter une description, si vous le souhaitez. Toutes les modifications que vous apportez seront enregistrées et appliquées automatiquement.

Ensuite, choisissez la plage d’adresses IPv4 sur laquelle le SDN fonctionnera. Sur le côté droit de l’écran, dans la zone intitulée * Assignation automatique IPv4 *, sélectionnez une plage d’adresses dans laquelle vos nœuds se placeront. Pour les besoins de ce tutoriel, toute plage peut être utilisée, mais il est important de laisser la case * Assignation automatique à partir de plage * cochée.

Assurez-vous que * Contrôle d’accès * à gauche reste défini sur * Certificat (réseau privé) *. Cela garantit que seules les machines approuvées peuvent se connecter à votre réseau, et pas uniquement les personnes connaissant votre identifiant réseau!

Une fois terminé, vos paramètres devraient ressembler à ceux-ci:

image: https: //assets.digitalocean.com/articles/zerotier-1604/ZeroTierSettings-updated.png [Configuration des paramètres ZeroTier]

À ce stade, vous avez réussi à mettre en place les bases d’un réseau ZeroTier défini par logiciel. Ensuite, vous installerez le logiciel ZeroTier sur votre serveur et sur vos ordinateurs clients pour leur permettre de se connecter à votre SDN.

Étape 2 - Installation du client ZeroTier One sur votre serveur et votre ordinateur local

ZeroTier One étant un logiciel relativement récent, il n’a pas encore été inclus dans les référentiels de logiciels Ubuntu. Pour cette raison, ZeroTier fournit un script d’installation que nous utiliserons pour installer le logiciel. Cette commande est un script signé par GPG, ce qui signifie que le code que vous téléchargez sera vérifié tel que publié par ZeroTier. Ce script comporte quatre parties principales, et voici une explication pièce par pièce de chacune d’elles:

  • + curl -s 'https: //pgp.mit.edu/pks/lookup? op = get & search = 0x1657198823E52A61' + - Ceci importe la clé publique ZeroTier à partir de MIT.

  • + gpg --import + - Cette section de la commande ajoute la clé publique ZeroTier à votre trousseau d’autorités local afin de faire confiance aux packages que vous tentez d’installer. La prochaine partie de la commande ne sera exécutée que si l’importation de GPG se termine avec succès

  • `+ si z = $ (curl -s 'https://install.zerotier.com/' | gpg); then echo "$ z" + `- Il y a quelques incidents dans cette section, mais ils se traduisent essentiellement par:“ Si le script d’installation signé de manière cryptographique et téléchargé de ZeroTier.com passe par GPG et n’est pas rejeté comme non signé par ZeroTier, coller cette information à l’écran. "

  • `+ sudo bash; fi + `- Cette section reprend le script d’installation nouvellement validé et l’exécute avant de terminer la routine.

Utilisez une console SSH pour vous connecter au serveur que vous venez de créer et exécutez la commande suivante en tant qu’utilisateur normal (une explication de la commande est fournie ci-dessous). Assurez-vous que vous ne l’exécutez pas en tant que root, car le script demande automatiquement votre mot de passe pour augmenter son niveau de privilège, et n’oubliez pas de laisser la console ZeroTier ouverte dans votre navigateur afin que vous puissiez interagir avec celui-ci si nécessaire.

curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

Une fois le script terminé, vous verrez deux lignes de sortie similaires à celles présentées ci-dessous. Notez votre adresse ZeroTier (sans les crochets) et le nom du système qui a généré cette adresse, dont vous aurez besoin ultérieurement:

Output*** Waiting for identity generation...

*** Success! You are ZeroTier address [  ].

Répétez cette étape sur votre ordinateur local si vous utilisez Ubuntu ou suivez les étapes appropriées à votre système d’exploitation sur la page Download du site Web de ZeroTier. Encore une fois, assurez-vous de noter l’adresse ZeroTier et la machine qui a généré cette adresse. Vous aurez besoin de ces informations à la prochaine étape de ce didacticiel lorsque vous joindrez votre serveur et votre client au réseau.

Étape 3 - Rejoindre votre réseau ZeroTier

Maintenant que le logiciel ZeroTier est exécuté sur le serveur et le client, vous êtes prêt à les connecter au réseau que vous avez créé dans la console Web ZeroTier.

Utilisez la commande suivante pour demander à votre client de demander l’accès au réseau ZeroTier via sa plate-forme. La demande initiale du client sera rejetée et laissée en suspens, mais nous allons y remédier dans un instant. Assurez-vous de remplacer par l’ID de réseau que vous avez noté précédemment dans la fenêtre de configuration de votre réseau.

sudo zerotier-cli join
Output200 join OK

Vous recevrez un message +200 join OK + rejoindre, confirmant que le service ZeroTier sur votre serveur a bien compris la commande. Si vous ne le faites pas, revérifiez l’ID de réseau ZeroTier que vous avez entré.

Comme vous n’avez pas créé de réseau public accessible à n’importe qui dans le monde, vous devez maintenant autoriser vos clients. Accédez à la console Web ZeroTier et faites défiler très loin vers le bas, où se trouve la section * Members *. Vous devez repérer deux entrées marquées comme * en ligne *, avec les mêmes adresses que celles notées précédemment.

Dans la première colonne marquée * Auth? *, Cochez les cases pour les autoriser à rejoindre le réseau. Le contrôleur de Zerotier attribuera une adresse IP au serveur et au client à partir de la plage que vous avez choisie précédemment lors de l’appel suivant du SDN.

L’attribution des adresses IP peut prendre un moment. En attendant, vous pouvez fournir un * Nom abrégé * et une * Description * pour vos nœuds dans la section * Membres *.

Avec cela, vous aurez connecté deux systèmes à votre réseau défini par logiciel.

Jusqu’à présent, vous avez acquis une connaissance de base du panneau de configuration de ZeroTier, vous avez utilisé l’interface de ligne de commande pour télécharger et installer ZeroTier, puis vous avez connecté le serveur et le client à ce réseau. Ensuite, vous allez vérifier que tout a été appliqué correctement en effectuant un test de connectivité.

Étape 4 - Vérification de la connectivité

À ce stade, il est important de valider que les deux hôtes peuvent réellement se parler. Il est possible que, même si les hôtes prétendent être connectés au réseau, ils ne puissent pas communiquer. En vérifiant la connectivité maintenant, vous n’aurez plus à vous soucier des problèmes d’interconnexion de base qui pourraient poser problème par la suite.

Un moyen facile de trouver l’adresse IP ZeroTier de chaque hôte consiste à consulter la section * Membres * de la console Web ZeroTier. Vous devrez peut-être l’actualiser après avoir autorisé le serveur et le client avant que leurs adresses IP ne s’affichent. Vous pouvez également utiliser la ligne de commande Linux pour rechercher ces adresses. Utilisez la commande suivante sur les deux machines - la première adresse IP indiquée dans la liste est celle à utiliser. Dans l’exemple ci-dessous, cette adresse est + 203.0.113.0 +.

ip addr sh zt0 | grep 'inet'
Outputinet 203.0.113.0/24 brd 203.0.255.255 scope global zt0
inet6 fc63:b4a9:3507:6649:9d52::1/40 scope global
inet6 fe80::28e4:7eff:fe38:8318/64 scope link

Pour tester la connectivité entre les hôtes, exécutez la commande + ping + d’un hôte, suivie de l’adresse IP de l’autre. Par exemple, sur le client:

ping

Et sur le serveur:

ping

Si les réponses sont renvoyées par l’hôte opposé (comme indiqué dans le résultat ci-dessous), les deux nœuds communiquent avec succès via le réseau SDN.

OutputPING 203.0.113.0 (203.0.113.0) 56(84) bytes of data.
64 bytes from 203.0.113.0: icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from 203.0.113.0: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 203.0.113.0: icmp_seq=3 ttl=64 time=0.043 ms

Vous pouvez ajouter autant de machines que vous le souhaitez à cette configuration en répétant l’installation de ZeroTier et rejoindre les processus décrits ci-dessus. N’oubliez pas que ces machines ne doivent en aucun cas être proches les unes des autres.

Maintenant que vous avez vérifié que votre serveur et votre client sont capables de communiquer, lisez la suite pour savoir comment ajuster le réseau afin de fournir une passerelle de sortie et de créer votre propre VPN.

Étape 5 - Activation de la capacité VPN de ZeroTier

Comme mentionné dans l’introduction, il est possible d’utiliser ZeroTier en tant qu’outil VPN. Si vous ne prévoyez pas d’utiliser ZeroTier en tant que solution VPN, vous n’êtes pas obligé de suivre cette étape et vous pouvez passer à l’étape 6.

L’utilisation d’un VPN masque la source de vos communications avec des sites Web sur Internet. Il vous permet de contourner les filtres et les restrictions pouvant exister sur le réseau que vous utilisez. Pour l’Internet plus large, vous semblerez naviguer à partir de l’adresse IP publique de votre serveur. Pour utiliser ZeroTier en tant qu’outil VPN, vous devez apporter quelques modifications supplémentaires à la configuration de votre serveur et de votre client.

Activation de la traduction d’adresses réseau et du transfert IP

La traduction d’adresse réseau, plus communément appelée «NAT», est une méthode par laquelle un routeur accepte les paquets d’une interface étiquetés avec l’adresse IP de l’expéditeur, puis remplace cette adresse par celle du routeur. Un enregistrement de cette permutation est conservé dans la mémoire du routeur afin que, lorsque le trafic de retour revient dans la direction opposée, le routeur puisse traduire l’IP en son adresse originale. NAT est généralement utilisé pour permettre à plusieurs ordinateurs de fonctionner derrière une adresse IP publique, ce qui est pratique pour un service VPN. Un exemple de NAT en pratique est le routeur domestique que votre fournisseur de service Internet vous a fourni pour connecter tous les périphériques de votre domicile à Internet. Votre ordinateur portable, votre téléphone, vos tablettes et tous les autres appareils activés pour Internet semblent partager la même adresse IP publique avec Internet, car votre routeur exécute la fonction NAT.

Bien que la NAT soit généralement effectuée par un routeur, un serveur est également capable de le faire. Tout au long de cette étape, vous utiliserez cette fonctionnalité sur votre serveur ZeroTier pour activer ses fonctionnalités VPN.

IP forwarding est une fonction effectuée par un routeur ou un serveur dans laquelle il transfère le trafic d’une interface à une autre si ces adresses IP se trouvent dans des zones différentes. Si un routeur était connecté à deux réseaux, le transfert IP lui permet de transférer le trafic entre eux. Cela peut sembler simple, mais sa mise en œuvre réussie peut être étonnamment complexe. Dans le cas de ce tutoriel, il suffit simplement de modifier quelques fichiers de configuration.

En activant le transfert IP, le trafic VPN de votre client sur le réseau ZeroTier arrivera sur l’interface ZeroTier du serveur. Sans ces modifications de configuration, le noyau Linux éliminera (par défaut) les paquets non destinés à l’interface sur laquelle ils arrivent. Ce comportement est normal pour le noyau Linux, car tous les paquets arrivant sur une interface et ayant une adresse de destination pour un autre réseau pourraient être causés par une mauvaise configuration de routage ailleurs sur le réseau.

Il est utile de penser que le transfert IP informe le noyau Linux qu’il est acceptable de transférer des paquets entre interfaces. Le réglage par défaut est + 0 + - équivalent à «Off». Vous basculerez sur + 1 + - équivalent à «On».

Pour voir la configuration actuelle, exécutez la commande suivante:

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 0

Pour activer le transfert IP, modifiez le fichier + / etc / sysctl.conf + sur votre serveur et ajoutez-le à la ligne requise. Ce fichier de configuration permet à un administrateur de remplacer les paramètres par défaut du noyau. Il s’appliquera toujours après les redémarrages et vous éviterez ainsi de le configurer à nouveau. Utilisez + nano + ou votre éditeur de texte favori pour ajouter la ligne suivante au bas du fichier.

sudo nano /etc/sysctl.conf

/etc/sysctl.conf

. . .

Enregistrez et fermez le fichier, puis exécutez la commande suivante pour déclencher l’adoption de la nouvelle configuration par le noyau.

sudo sysctl -p

Le serveur adoptera toutes les nouvelles directives de configuration du fichier et les appliquera immédiatement, sans redémarrage requis. Exécutez la même commande que précédemment et vous verrez que le transfert IP est activé.

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 1

Maintenant que le transfert IP est activé, vous en ferez bon usage en fournissant au serveur certaines règles de routage de base. Puisque le noyau Linux a déjà une fonctionnalité de routage réseau intégrée, il vous suffit d’ajouter quelques règles pour indiquer au pare-feu et au routeur intégrés que le nouveau trafic qu’il voit sera acceptable et à quel endroit l’envoyer. .

Pour ajouter ces règles à partir de la ligne de commande, vous devez d’abord connaître les noms qu’Ubuntu a attribués à la fois à votre interface Zerotier et à votre interface Ethernet classique connectée à Internet. Ce sont typiquement + zt0 + et + eth0 + respectivement, bien que ce ne soit pas toujours le cas.

Pour trouver les noms de ces interfaces, utilisez la commande + ip link show +. Cet utilitaire de ligne de commande fait partie de + iproute2 +, une collection d’utilitaires d’espace utilisateur qui sont installés par défaut sur Ubuntu:

ip link show

Dans la sortie de cette commande, les noms des interfaces sont directement à côté des numéros qui identifient une interface unique dans la liste. Ces noms d’interface sont mis en évidence dans l’exemple de sortie suivant. Si le vôtre diffère des noms indiqués dans l’exemple, remplacez le nom de votre interface de manière appropriée dans ce guide.

Output1: : <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
   link/ether 72:2d:7e:6f:5e:08 brd ff:ff:ff:ff:ff:ff
3: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
   link/ether be:82:8f:f3:b4:cd brd ff:ff:ff:ff:ff:ff

Avec ces informations en main, utilisez + iptables + pour activer la traduction d’adresses réseau et le masquage IP:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Autorisez le transfert de trafic et suivez les connexions actives:

sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Ensuite, autorisez le transfert du trafic de + zt0 + à + ​​eth0 +. Une règle inverse n’est pas nécessaire car, dans ce tutoriel, il est supposé que le client appelle toujours via le serveur, et non l’inverse:

sudo iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT

Il est important de se rappeler que les règles iptables que vous avez définies pour le serveur ne persistent pas automatiquement entre les redémarrages. Vous devrez sauvegarder ces règles pour vous assurer de leur remise en vigueur si le serveur est redémarré. Sur votre serveur, exécutez les commandes ci-dessous. En suivant les instructions à l’écran pour enregistrer les règles IPv4 actuelles, IPv6 n’est pas requis.

sudo apt-get install iptables-persistent
sudo netfilter-persistent save

Après avoir lancé + sudo netfilter-persistent save +, il peut être intéressant de redémarrer votre serveur pour vérifier que les règles iptables ont été correctement enregistrées. Un moyen facile de vérifier est d’exécuter + sudo iptables-save +, ce qui permettra de vider la configuration actuelle chargée en mémoire sur votre terminal. Si vous voyez des règles similaires à celles ci-dessous en ce qui concerne le masquage, le transfert et l’interface + zt0 +, elles ont été correctement enregistrées.

sudo iptables-save
Output# Generated by iptables-save v1.6.0 on Tue Apr 17 21:43:08 2018
. . .
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
. . .
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i zt0 -o eth0 -j ACCEPT
COMMIT
. . .

Maintenant que ces règles ont été appliquées à votre serveur, il est prêt à jongler avec le trafic entre le réseau ZeroTier et l’Internet public. Cependant, le VPN ne fonctionnera pas à moins que le réseau ZeroTier soit informé que le serveur est prêt à être utilisé comme passerelle.

Activation de votre serveur pour gérer l’itinéraire global

Pour que votre serveur puisse traiter le trafic provenant de n’importe quel client, vous devez vous assurer que les autres clients du réseau ZeroTier savent qu’ils leur envoient leur trafic. Pour ce faire, vous devez définir un itinéraire global dans la console ZeroTier. Les personnes qui connaissent bien les réseaux informatiques peuvent aussi décrire cela comme une "route par défaut". C’est là que tout client envoie son trafic par défaut, c’est-à-dire tout le trafic qui ne devrait pas aller à un autre endroit spécifique.

Allez en haut à droite de votre page ZeroTier Networks et ajoutez une nouvelle route avec les paramètres suivants. Vous pouvez trouver l’adresse IP ZeroTier de votre serveur dans la section * Membres * de la page de configuration de votre réseau ZeroTier. Dans le champ * réseau / bits *, entrez «+ 0.0.0.0 / 0 +», dans le champ * (LAN) *, entrez l’adresse IP de votre serveur ZeroTier.

Lorsque les détails sont en place, cliquez sur le symbole “* + *” et une nouvelle règle apparaîtra sous la règle existante. Il y aura un globe orange pour indiquer qu’il s’agit bien d’une route mondiale:

image: https: //assets.digitalocean.com/articles/zerotier-1604/zerotierGlobalRouteRule-updated.png [Règle de route globale]

Avec votre réseau ZeroTier prêt à fonctionner, il ne reste plus qu’une configuration à effectuer avant que le VPN ne fonctionne: celle des clients.

Configuration des clients Linux

Si votre client exécute Linux, vous devrez apporter une modification manuelle à son fichier + / etc / sysctl.conf +. Ce changement de configuration est nécessaire pour modifier la vue du noyau quant au chemin de retour acceptable pour le trafic de votre client. En raison de la configuration du VPN ZeroTier, le trafic renvoyé par votre serveur sur votre client peut parfois sembler provenir d’une adresse réseau différente de celle à laquelle il a été envoyé. Par défaut, le noyau Linux les considère comme non valides et les supprime, ce qui oblige à remplacer ce comportement.

Ouvrez + / etc / sysctl.conf + sur votre ordinateur client:

sudo nano /etc/sysctl.conf

Ajoutez ensuite la ligne suivante:

Output. . .

Enregistrez et fermez le fichier, puis exécutez + sudo sysctl -p + pour adopter les modifications.

sudo sysctl -p

Ensuite, indiquez au logiciel ZeroTier Client que votre réseau est autorisé à transporter du trafic par défaut. Cela modifie le routage du client et est donc considéré comme une fonction privilégiée, raison pour laquelle elle doit être activée manuellement. La commande imprimera une structure de configuration sur la sortie. Cochez cette case pour confirmer qu’elle affiche ++ en haut:

sudo zerotier-cli set  allowDefault=1

Si, à un moment quelconque, vous souhaitez cesser d’utiliser ZeroTier en tant que VPN avec tout votre trafic acheminé via ce dernier, définissez + allowDefault + sur '+ 0 + `:

sudo zerotier-cli set  allowDefault=0

Chaque fois que le service ZeroTier sur le client est redémarré, la valeur + allowDefault = 1 + est réinitialisée à 0. N’oubliez donc pas de le réexécuter pour activer la fonctionnalité VPN.

Par défaut, le service ZeroTier est configuré pour démarrer automatiquement au démarrage pour le client Linux et le serveur. Si vous ne souhaitez pas que cela soit le cas, vous pouvez désactiver la routine de démarrage à l’aide de la commande suivante.

sudo systemctl disable zerotier-one

Si vous souhaitez utiliser d’autres systèmes d’exploitation sur votre réseau ZeroTier, lisez la section suivante. Sinon, passez à la section Gestion des flux.

Configuration de clients non Linux

Le logiciel client ZeroTier est disponible pour de nombreux systèmes et pas seulement pour les systèmes d’exploitation Linux - même les smartphones sont pris en charge. Les clients existent pour Windows, macOS, Android, iOS et même des systèmes d’exploitation spécialisés tels que les systèmes QNAP, Synology et WesternDigital.

Pour joindre des clients macOS et Windows au réseau, lancez l’outil ZeroTier (que vous avez installé à l’étape 1) et entrez votre identifiant réseau dans le champ fourni avant de cliquer sur * Rejoindre *. N’oubliez pas de vérifier dans la console ZeroTier pour cocher le bouton * Autoriser * pour autoriser un nouvel hôte sur votre réseau.

Assurez-vous de cocher la case * Acheminez tout le trafic par ZeroTier *. Si vous ne le faites pas, votre client sera connecté à votre réseau ZeroTier, mais ne vous ennuierez pas d’essayer de lui envoyer son trafic Internet.

Utilisez un outil de vérification IP tel que ICanHazIP pour vérifier que votre trafic apparaît sur Internet à partir de l’IP de votre serveur. Pour vérifier cela, collez l’URL suivante dans la barre d’adresse de votre navigateur. Ce site Web affichera l’adresse IP que son serveur (et le reste de l’Internet) vous voit utiliser pour accéder au site:

http://icanhazip.com

Ces étapes terminées, vous pouvez commencer à utiliser votre VPN comme bon vous semble. La section facultative suivante couvre une technologie intégrée au SDN ZeroTier appelée «règles de flux», mais elle n’est en aucun cas requise pour que la fonctionnalité VPN fonctionne.

Étape 6 - Gestion des flux (facultatif)

L’un des avantages d’un réseau défini par logiciel est le contrôleur centralisé. En ce qui concerne ZeroTier, le contrôleur centralisé est l’interface utilisateur Web qui repose sur le service SDN ZeroTier global. À partir de cette interface, il est possible d’écrire des règles appelées flow rules qui spécifient ce que le trafic sur un réseau peut ou ne peut pas faire. Par exemple, vous pouvez spécifier une interdiction générale sur certains ports réseau acheminant du trafic sur le réseau, limiter les hôtes pouvant communiquer entre eux et même rediriger le trafic.

Il s’agit d’une fonctionnalité extrêmement puissante qui prend effet presque instantanément, car toutes les modifications apportées à la table de flux sont transmises aux membres du réseau et prennent effet au bout de quelques instants. Pour modifier les règles de flux, revenez à l’interface utilisateur Web ZeroTier, cliquez sur l’onglet * Réseau * et faites défiler jusqu’à ce que vous voyiez une zone intitulée * Règles de flux * (elle peut être réduite et doit être développée). Cela ouvre un champ de texte dans lequel vous pouvez entrer les règles de votre choix. Un manuel complet est disponible dans la console ZeroTier dans une boîte juste en dessous de la zone de saisie * Règles de flux *, intitulée * Aide du moteur de règles *.

Voici quelques exemples de règles pour vous aider à explorer cette fonctionnalité.

Pour bloquer tout trafic lié au serveur DNS + 8.8.8.8 + de Google, ajoutez cette règle:

drop
   ipdest 8.8.8.8/32
;

Pour rediriger le trafic destiné au serveur DNS public de Google vers l’un de vos nœuds ZeroTier, ajoutez la règle suivante. Cela pourrait être un excellent fourre-tout pour remplacer les recherches DNS:

redirect
   ipdest 8.8.8.8/32
;

Si votre réseau a des exigences de sécurité particulières, vous pouvez supprimer toute activité sur les ports FTP, Telnet et HTTP non chiffré en ajoutant cette règle:

drop
   dport 80,23,21,20
;

Lorsque vous avez terminé d’ajouter des règles de flux, cliquez sur le bouton * Enregistrer les modifications *. ZeroTier enregistrera vos modifications.

Conclusion

Dans ce didacticiel, vous faites un premier pas dans le monde des réseaux définis par logiciel, et l’utilisation de ZeroTier donne un aperçu des avantages de cette technologie. Si vous avez suivi l’exemple du VPN, alors que la configuration initiale peut être différente de celle d’autres outils que vous utilisiez peut-être, la facilité d’ajouter de nouveaux clients peut être une raison impérieuse d’utiliser la technologie ailleurs.

Pour résumer, vous avez appris à utiliser ZeroTier en tant que fournisseur SDN, ainsi qu’à configurer et attacher des nœuds à ce réseau. L’élément VPN vous aura permis de mieux comprendre le fonctionnement du routage au sein d’un tel réseau. L’un ou l’autre des chemins de ce didacticiel vous permettra d’utiliser la puissante technologie de règles de flux.

Maintenant qu’il existe un réseau point à point, vous pouvez le combiner avec une autre fonctionnalité telle que le partage de fichiers. Si vous avez un serveur NAS ou un serveur de fichiers chez vous, vous pouvez le lier à ZeroTier et y accéder instantanément. Si vous souhaitez le partager avec vos amis, vous pouvez leur montrer comment rejoindre votre réseau ZeroTier. Les employés répartis sur une grande surface peuvent même être reliés au même espace de stockage central. Pour commencer à créer le partage de fichiers pour l’un de ces exemples, consultez la page https://www.digitalocean.com/community/tutorials/how-to-set-up-a-samba-share-for-a- small-organization-on-ubuntu-16-04 [Comment configurer un partage Samba pour une petite organisation sur Ubuntu 16.04].