Comment configurer un VPN pour votre équipe de développement Web

Publié: 2021-10-11

La principale caractéristique de l'Internet moderne est sa disponibilité constante. Il n'est pas nécessaire de stocker les données localement, qui sont rapidement accessibles sur le réseau. D'autres problèmes surviennent si ces données deviennent soudainement indisponibles à un moment imprévisible. La plupart des développeurs travaillent à distance et peuvent manquer de ressources s'ils viennent de certaines parties. Dans cet article, nous verrons comment configurer un VPN pour votre équipe de développement Web.

Problèmes Internet courants

Que signifie concrètement l'inaccessibilité d'une ressource Internet ?

- Certaines bibliothèques ne sont pas téléchargées - l'environnement de développement du projet ne va pas se produire. C'est le principal et le plus gros problème !

- Zoom, Slack ou Telegram ne fonctionnent pas - vous ne pourrez pas contacter vos collègues.

- Certains sites sont indisponibles, par exemple, GitHub - il est impossible de publier votre travail.

Ce ne sont pas tous des exemples possibles, mais même ils peuvent réduire considérablement la productivité de l'équipe.

Qui est coupable ?

En pratique, les restrictions décrites ci-dessus sont généralement mises en œuvre par le fournisseur d'accès Internet. Et cela n'a aucun sens d'en blâmer le fournisseur car les restrictions ont été introduites par les actes administratifs des États. Le fournisseur doit être engagé dans les affaires et non dans la lutte politique.

Mais parfois, le fournisseur s'avère être un méchant. Par exemple, pour une raison inconnue, ils peuvent bloquer le trafic sur des ports TCP spécifiques ou modifier le trafic http non chiffré et modifier le code html de la page, ajouter des publicités. C'est ce que vous attendez de certains escrocs, mais certainement pas d'une grande entreprise, donc c'est doublement désagréable (si vous êtes intéressé, google "la publicité sur les sites des autres").

Que faire?

Une fois que l'ampleur du problème a clairement indiqué qu'il devait être résolu au niveau de l'entreprise et non laissé à la merci des membres de l'équipe, vous pouvez utiliser la technologie VPN.

VPN est un réseau privé virtuel. Il s'agit du nom d'un groupe de technologies qui vous permettent de créer un réseau informatique physique virtuel inexistant (superposition) basé sur un réseau informatique physique existant.

Cela offre des possibilités supplémentaires d'augmenter la confidentialité. Dans un réseau physique, en première approximation, votre trafic est disponible pour tous les participants à l'échange réseau, tous les routeurs, etc. Il n'y a pas de participants supplémentaires dans le réseau virtuel, seulement vous et le point auquel vous vous connectez. Si vous en configurez un pour votre équipe de développement Web, il s'agit d'un serveur VPN. Un tunnel crypté est posé entre vous deux.

Les interfaces réseau virtuelles TUN sont créées sur la machine cliente et le serveur. L'échange de données cryptées se produit directement entre eux. Vos données sont efficacement protégées contre les attaques man-in-the-middle (MITM). Aucune personne ayant un accès physique à l'équipement par lequel passe votre trafic ne peut intercepter ou remplacer vos informations.

Il vous permet également d'accéder à des ressources non disponibles sur votre réseau domestique mais disponibles à partir du serveur VPN.

Avec la technologie VPN, le client fait partie du sous-réseau dont le serveur fait partie. Et peut accéder aux ressources de ce sous-réseau. Cela peut être utilisé pour contourner les restrictions et résoudre tout autre problème nécessitant une connexion distante et sécurisée à un sous-réseau.

Choisir une implémentation VPN

Décider n'est pas faire. Il existe plusieurs implémentations courantes de technologie VPN gratuite. Vous pouvez essayer cet essai gratuit de Surfshark VPN pour avoir une expérience de ce que vous pourriez obtenir.

Quoi d'autre vous pouvez choisir après avoir obtenu le bon VPN

IPsec est un ensemble de protocoles pour la transmission sécurisée de données. Il est apparu au milieu des années 90. Il est grand et flexible mais difficile à configurer et de bas niveau. Trop compliqué pour certains usages.

WireGuard est un jeune projet (2015) visant à une préparation rapide au travail. Transfert de données potentiellement plus rapide que d'autres VPN, utilise des protocoles de cryptage plus modernes - multiplateforme, disponible sur tous les principaux systèmes. L'inconvénient est le même que l'avantage. Pour assurer une installation rapide et facile, de nombreuses décisions de bas niveau sont prises au cœur du programme. Par exemple, l'utilisation du protocole UDP, qui pourrait ne pas être efficace pour tous.

Choisir la manière de démarrer et d'utiliser

Manuellement

Le moyen le plus évident est de louer un VPS, de se connecter via SSH et de créer un serveur en suivant le guide. Il s'agit d'un processus assez long en raison de nombreuses commandes et fichiers qui doivent être déplacés manuellement.

Avec cette méthode, chaque fois que vous créez un nouveau serveur, vous devrez le refaire. Pour gagner du temps, vous pouvez utiliser des systèmes de gestion de configuration ou des systèmes de conteneurisation.

Les systèmes de gestion de configuration sont des logiciels qui permettent d'automatiser la configuration de serveurs distants (puppet, ansible, etc.). L'avantage de cette approche est que vous pouvez configurer un serveur VPN distant en quelques commandes. Et toutes les configurations, les modèles de configuration sont explicitement placés au format texte sur la machine de contrôle. Vous pouvez créer vous-même un script de déploiement ou en prendre un prêt à l'emploi, par exemple sur GitHub.

Une approche légèrement différente est adoptée dans les systèmes de conteneurisation. Le système de conteneurisation virtuelle le plus courant est docker. L'installation d'un conteneur docker avec un VPN sur un serveur distant peut être encore plus rapide que l'installation d'un serveur via ansible, ce qui est un plus. Cependant, la liste des configurations disponibles peut être limitée par les développeurs d'images. Les images sont des fichiers binaires, donc cela peut ne pas fonctionner si vous devez corriger une configuration exotique.

Architecture de serveur

Premièrement, comme déjà mentionné, la technologie VPN peut être utilisée pour se connecter, par exemple, à un sous-réseau fermé via un ordinateur faisant partie de ce sous-réseau et, en même temps, un serveur VPN. Si vous avez des ressources précieuses sur votre sous-réseau, vous aimeriez que personne ne se connecte au serveur VPN. Pour ce faire, la plupart des VPN en font généralement une machine distincte, non liée à un réseau du tout, peut-être dans un coffre-fort (sans blague). Et les demandes de signature et les certificats signés sont transférés sur un support amovible.

Démarrage du serveur

Pour exécuter le script ansible, vous devez installer ansible sur votre ordinateur, louer un serveur virtuel avec Debian/Ubuntu et configurer l'accès au serveur via SSH. Lors de la location d'un serveur, gardez à l'esprit que certains services ne vous permettent pas de créer une interface tun ou d'effectuer un transfert de paquets. Veuillez vérifier cela avant d'acheter.

Toutes les interactions avec le serveur sont effectuées par trois commandes :

1. Exécutez le script de création d'un serveur et d'une autorité de certification.

2. Enregistrement d'un nouvel utilisateur.

3. Révoquer un certificat par nom de client.

Le développement de moyens de contourner les blocages est à bien des égards similaire à la relation entre les prédateurs et les proies dans la nature. Pour chaque nouveau coup, il y a un contre-coup. Les connexions VPN ne font pas exception.

Lorsque vous utilisez un VPN, vous pouvez utiliser une variété de ressources réseau. Mais, comme toutes les données vous parviennent via le tunnel depuis le serveur VPN, pour le fournisseur, il semble que vous échangez des données avec une seule adresse IP.