Routage VPN site à site expliqué en détail

  • par

Introduction

Une configuration site à site consiste à connecter deux (ou plusieurs) réseaux différents à l’aide d’un seul tunnel OpenVPN. Dans ce modèle de connexion, les appareils d’un réseau peuvent atteindre les appareils de l’autre réseau, et vice versa. La mise en œuvre de ce modèle est relativement simple, pour autant que l’Access Server soit impliqué. La partie la plus difficile est celle qui concerne les pare-feu et les options de filtrage de sécurité, ainsi que la modification des tables de routage dans les routeurs et les passerelles Internet, car il en existe un si grand nombre, de marques et de modèles différents, qu’il est impossible de les documenter tous. Cependant, les routeurs devraient tous avoir une chose en commun : la capacité d’acheminer le trafic à l’aide de routes statiques. Avec cette capacité vient le moyen d’envoyer le trafic d’un réseau à un autre, à travers un système de passerelle qui fournit la connectivité à l’autre réseau. Un serveur d’accès OpenVPN avec un client passerelle VPN Linux constitue un tel système de passerelle, pour former un pont entre deux réseaux. Si votre équipement réseau est ensuite correctement ajusté également, alors une configuration de site à site qui fonctionne de manière transparente pour tous les appareils des deux réseaux peut être réalisée.

Sur cette page, nous visons à vous fournir un guide qui donne un aperçu de la façon dont cela fonctionne, pour vous donner une compréhension de la façon dont les choses devraient être configurées pour que les choses fonctionnent.

Vue d’ensemble d’un exemple de configuration de site à site

Dans le schéma ci-dessus, le siège de notre entreprise exemple se trouve à droite, et il y a des ordinateurs et des serveurs. L’un des serveurs a le produit OpenVPN Access Server installé. Tous les ordinateurs et serveurs de ce réseau sont connectés à un routeur (la petite boîte carrée plate avec une icône d’engrenage) qui fournit également un accès à Internet. À gauche se trouve une filiale qui possède également quelques ordinateurs et serveurs, tous connectés à leur propre routeur qui fournit également un accès à Internet.

L’un des serveurs de la filiale possède un programme client OpenVPN installé sur un système d’exploitation Linux, qui possède une connexion tunnel OpenVPN active vers le serveur d’accès OpenVPN du siège social. Dans cet exemple de configuration site à site, un accès complet a été ouvert entre les ordinateurs et les serveurs du siège et de la filiale. En d’autres termes, un utilisateur assis sur un ordinateur dans la filiale peut accéder aux serveurs du siège comme s’il y était, grâce à une connexion tunnel OpenVPN entre les deux réseaux. Ce tunnel OpenVPN voyage sur Internet et son contenu est crypté de manière sécurisée.

Description étape par étape de la façon dont le trafic circule

Nous avons créé une série d’images qui montrent comment une requête provenant d’un ordinateur client dans la filiale atteint un serveur d’application au siège social, et comment une réponse est renvoyée. Chaque étape du processus est clairement représentée par des lignes en surbrillance et des informations pertinentes sur le réseau. Il suffit de parcourir les images pour voir une progression étape par étape. Il est important de noter que ce type de configuration permet toujours à d’autres clients VPN de se connecter au serveur d’accès OpenVPN et d’accéder à n’importe quel appareil de ces deux réseaux. De plus, une configuration site à site n’a pas besoin d’être limitée à un seul réseau subsidiaire, elle peut être multiple tout aussi facilement.

Comment configurer un serveur d’accès OpenVPN pour un site-à site

Nous supposons que vous avez déjà une installation de serveur d’accès OpenVPN qui fonctionne, et qu’il est installé dans votre réseau privé derrière un routeur avec un accès Internet et qu’il a une adresse IP privée, avec une redirection de port configurée pour qu’il puisse être atteint depuis l’extérieur, et avec des paramètres appropriés effectués pour qu’il soit effectivement atteignable avec un programme client OpenVPN depuis l’extérieur. En d’autres termes, vous devez avoir installé un serveur d’accès OpenVPN qui fonctionne et permet aux clients OpenVPN de se connecter. Si vous n’avez pas encore installé Access Server, faites-le d’abord. Consultez la page des options d’installation du serveur d’accès pour plus d’informations.

Cette section décrit ici les paramètres à configurer dans le serveur d’accès OpenVPN pour rendre possible une installation site à site. Nous allons supposer que nous configurons la configuration site-à-site comme indiqué dans les images ci-dessus, avec les sous-réseaux utilisés à cet endroit. Si vos sous-réseaux sont différents, et il est fort probable qu’ils le soient, vous devez les adapter à votre situation. Remarque importante : il est nécessaire pour que le site-à-site fonctionne que les sous-réseaux soient différents dans les deux réseaux.

Allez dans l’interface utilisateur d’administration et allez dans les paramètres VPN. Dans l’élément intitulé Should VPN clients have access to private subnets (Les clients VPN doivent-ils avoir accès aux sous-réseaux privés), définissez la sélection sur Yes, using routing (advanced) (Oui, en utilisant le routage (avancé)) et dans le grand champ de texte juste en dessous, spécifiez le sous-réseau du réseau où se trouve votre serveur d’accès OpenVPN. Pour comparer avec l’exemple de configuration site à site décrit dans la série d’images ci-dessus, ce serait 192.168.70.0/24. Assurez-vous que la case pour permettre l’accès à partir des sous-réseaux privés est laissée cochée. Maintenant, enregistrez les paramètres et mettez à jour les serveurs en cours d’exécution.

Puis allez dans Autorisations de l’utilisateur et créez un nouvel utilisateur et un mot de passe. Si vous utilisez un système d’authentification externe comme PAM, RADIUS ou LDAP, assurez-vous que le compte y existe. Vous devrez être en mesure de vous connecter et d’utiliser ce compte, bien sûr. Sur le nouveau compte utilisateur, cochez la case des privilèges de connexion automatique. Cliquez ensuite sur Show pour afficher d’autres paramètres. Définissez l’option Configurer la passerelle VPN sur oui et dans le grand champ de texte qui apparaît alors en dessous, entrez le sous-réseau du réseau distant où le système de passerelle client OpenVPN Linux va être installé. Dans l’exemple de configuration site à site décrit dans la série d’images ci-dessus, ce serait 10.0.60.0/24. Maintenant, enregistrez les paramètres et mettez à jour les serveurs en cours d’exécution.

En ce qui concerne le programme OpenVPN Access Server, c’est ce qui termine la configuration d’une installation site-à-site de ce côté. Il reste un certain nombre de choses à configurer. Le routeur du réseau où se trouve le serveur d’accès doit être informé qu’il existe des sous-réseaux supplémentaires et qu’ils peuvent être atteints en contactant l’adresse IP privée de l’installation du serveur d’accès. Dans notre exemple de réseau, le serveur d’accès OpenVPN a une adresse IP de 192.168.70.222. Il a également un sous-réseau client VPN de 172.16.0.0/20 et il aura éventuellement une connexion site-à-site fonctionnant sur le sous-réseau 10.0.60.0/24. Pour que le routeur soit conscient de ces sous-réseaux supplémentaires, consultez la documentation de votre routeur et cherchez comment ajouter des routes statiques. Voici les routes statiques qui doivent être ajoutées :

  • Réseau 172.16.0.0 avec masque de sous-réseau 255.255.240.0 par la passerelle 192.168.70.222
  • Réseau 10.0.60.0 avec masque de sous-réseau 255.255.255.0 par la passerelle 192.168.70.222

Vous remarquerez que nous spécifions un masque de sous-réseau. La plupart des équipements de routage veulent qu’il soit spécifié de cette manière au lieu d’utiliser le format CIDR avec les /24 et /20 et ainsi de suite. Il existe des tables que vous pouvez consulter en ligne et que vous pouvez utiliser pour convertir facilement l’un en l’autre.

Avec les nouvelles routes statiques en place, chaque fois que le trafic arrive maintenant au routeur qui a comme destination une adresse IP quelque part dans 172.16.0.0/20 ou 10.0.60.0/24, il saura qu’il doit le transférer au serveur d’accès OpenVPN à l’adresse IP 192.168.70.222. Il le transmettra ensuite là où il doit aller, car il sait comment contacter ces deux sous-réseaux.

Comment configurer le client OpenVPN Linux Gateway

Nous préférons utiliser un système d’exploitation Linux pour gérer le rôle d’un client VPN qui sert également de passerelle. Nous préférons Ubuntu LTS sur une machine virtuelle ou un matériel dédié. Nous avons simplement les meilleures expériences avec lui, et il y a des outils simples disponibles sur Linux qui sont gratuits et faciles à installer et à utiliser pour diagnostiquer les problèmes qui peuvent survenir. De plus, Linux est gratuit et peut fonctionner sur du matériel très léger. Même un Raspberry Pi3 ou autre peut s’acquitter de cette tâche, et il existe également des systèmes embarqués qui peuvent le faire. L’équipement mis à part, si vous avez un système d’exploitation Linux avec un client OpenVPN qui peut se connecter au serveur d’accès OpenVPN, et vous pouvez activer quelque chose appelé IP forwarding, alors vous devriez être en mesure d’obtenir un client OpenVPN Linux Gateway opérationnel assez facilement. Vous n’avez pas besoin d’installer le programme du serveur d’accès OpenVPN lui-même sur ce système client Linux.

Ce dont vous avez besoin est le programme client open source OpenVPN pour Linux. Sur Ubuntu, vous pouvez l’installer avec la commande apt-get install openvpn. Maintenant que le programme client est installé, il va vérifier s’il y a des fichiers *.conf dans le répertoire /etc/openvpn/ et au démarrage du système, il va essayer de les connecter et de les garder connectés. Ce dont nous avons besoin ensuite est d’obtenir le profil de connexion auto-login pour le compte utilisateur créé pour la connectivité site-à-site, et de le sauvegarder dans le répertoire /etc/openvpn/. Pour cela, nous devons d’abord obtenir le fichier :

Allez sur l’interface utilisateur client du serveur d’accès OpenVPN à l’aide d’un navigateur web, cliquez sur le menu déroulant connecter et basculez-le sur connexion. Entrez le nom d’utilisateur et le mot de passe du compte utilisateur que vous avez créé pour la connectivité site à site et cliquez sur go. Une liste de fichiers disponibles pour ce compte d’utilisateur vous sera présentée. Localisez le profil d’auto-login et téléchargez-le. Il s’appellera client.ovpn.

Transférez ce fichier client.ovpn vers votre système client Linux (avec SCP ou WinSCP ou en copiant et collant le contenu du fichier dans un éditeur de texte comme nano) et placez-le dans le répertoire /etc/openvpn/. Renommez le fichier en quelque chose comme headquarters.conf. Le nom du fichier n’est pas particulièrement important, mais l’extension doit se terminer par .conf pour que le démon OpenVPN le récupère. Maintenant redémarrez le système d’exploitation client Linux. Il devrait maintenant se connecter automatiquement et vous devriez pouvoir voir cette connexion apparaître sur l’aperçu des utilisateurs actuels du serveur d’accès OpenVPN.

Suivant, activez la redirection d’IP sur le système client Linux. La redirection IP est la fonction d’un système d’exploitation qui lui permet d’accepter un paquet réseau entrant sur une interface réseau et, si la destination est sur un autre réseau, de l’y transférer. C’est ce dont vous avez besoin lorsque des paquets provenant de votre réseau doivent aller vers le tunnel VPN, ou vice versa. Sur Ubuntu, vous pouvez faire cela assez facilement en ouvrant /etc/sysctl.conf avec un éditeur de texte comme nano, et en décommentant la ligne #net.ipv4.ip_forward=1. Décommenter signifie que vous supprimez le caractère #. Ensuite, quittez et enregistrez le fichier. Maintenant, redémarrez le système d’exploitation client Linux.

En ce qui concerne le système de passerelle client OpenVPN Linux, c’est ce qui termine une configuration de configuration site-à-site de ce côté. Il ne reste maintenant plus qu’une seule chose à configurer. Le routeur du réseau où se trouve le client Gateway Linux doit être informé qu’il existe des sous-réseaux supplémentaires et qu’ils peuvent être atteints en contactant l’adresse IP privée de l’installation du client Gateway Linux. Dans notre exemple de réseau, le système de passerelle client OpenVPN Linux a une IP de 10.0.60.55. Il fait également partie du sous-réseau client VPN de 172.16.0.0/20 qui existe sur le serveur d’accès et il aura maintenant une connexion site à site fonctionnant sur le sous-réseau 192.168.70.0/24. Pour que le routeur soit conscient de ces sous-réseaux supplémentaires, consultez la documentation de votre routeur et cherchez comment ajouter des routes statiques. Veuillez noter que vous devez ajouter ces routes statiques sur le routeur du réseau de la filiale où se trouve le système client de la passerelle OpenVPN Linux, et non sur le réseau où se trouve le serveur d’accès. Voici les routes statiques qui doivent être ajoutées :

  • Réseau 172.16.0.0 avec masque de sous-réseau 255.255.240.0 par la passerelle 10.0.60.55
  • Réseau 192.168.70.0 avec masque de sous-réseau 255.255.255.0 par la passerelle 10.0.60.55

Comme pour les routes statiques sur l’autre routeur, vous remarquerez que nous spécifions un masque de sous-réseau. La plupart des équipements de routage veulent qu’il soit spécifié de cette manière au lieu d’utiliser le format CIDR avec les /24 et /20 et ainsi de suite. Il existe des tables que vous pouvez consulter en ligne et que vous pouvez utiliser pour convertir facilement l’un en l’autre.

Avec les nouvelles routes statiques en place, chaque fois que le trafic arrive maintenant au routeur qui a comme destination une adresse IP quelque part dans 172.16.0.0/20 ou 192.168.70.0/24, il saura qu’il doit le transférer au client de la passerelle OpenVPN Linux à l’adresse IP 10.0.60.55. Il le transmettra ensuite là où il doit aller, car il sait comment contacter ces deux sous-réseaux.

Dépannage

Avec les étapes de configuration ci-dessus suivies, le serveur d’accès OpenVPN et le client OpenVPN Linux Gateway devraient fonctionner parfaitement. Il y a cependant un grand nombre de problèmes possibles qui peuvent être rencontrés avec les équipements environnants. Par exemple, il peut y avoir des pare-feu sur les ordinateurs clients et serveurs qui bloquent le trafic provenant de sous-réseaux « inconnus ». Sur les réseaux en nuage comme Amazon AWS, les groupes de sécurité et la vérification de la source peuvent être un facteur de blocage du trafic. En outre, les routes statiques peuvent avoir été mal configurées, de sorte qu’elles fonctionnent du réseau local vers l’interface du réseau étendu, et qu’elles tentent d’envoyer le trafic vers l’Internet au lieu de rester purement du côté du réseau local du routeur. Malheureusement, il y a trop de problèmes possibles qui se trouvent complètement en dehors du serveur d’accès OpenVPN et de son client Gateway OpenVPN Linux connecté pour les documenter tous. Au lieu de cela, nous avons donc essayé de fournir les moyens de diagnostiquer la connexion vous-même.

Nous avons un guide de dépannage qui aidera à déterminer le point où le trafic s’interrompt. Cela conduira ensuite à des conclusions pour résoudre efficacement le problème.

La question est de savoir si l’on peut résoudre le problème par soi-même.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *