Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Création d’un VPN Site-to-Site entre deux PfSense. (OPENVPN)

Par Stephen LAMBERT Publié le 25/10/2016 à 19:01:25 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Présentation :

Un VPN Site-to-Site (ou inter site) est utilisé pour interconnecter deux réseaux distants entre eux. Ces deux réseaux seront alors comme sur un même réseau local.

Il permet aussi de chiffrer et donc de sécuriser les données qui transitent entre les deux sites au travers d’internet.

Architecture :

Pour la mise en place de notre VPN Site-to-Site, nous utiliserons deux routeurs Pfsense version 2.3.1 (mais ceci devrait rester valable pour les autres versions) et les rôles client/serveur d’OpenVPN intégrés à ceux-ci.

Je partirai d’une installation fraiche pour ce tutoriel.

Ci-dessous un schéma illustrant notre installation.

Nous avons donc un client sur chaque réseau, chacun d’eux est connecté à son routeur/ firewall PfSense.

Ces deux routeurs vont être connectés entre eux via OpenVPN au travers d’internet.

Cette infrastructure permettra donc l’échange de données d’un réseau à l’autre comme si l’on était sur le même réseau local (LAN) et ceci grâce à notre VPN.

Aucune configuration ne sera nécessaire sur les hôtes de chacun des réseaux. L’utilisateur lambda n’aura aucune idée qu’un VPN est utilisé.

Configuration de notre premier PfSense (partie serveur) :

1. Pour commencer, connectez-vous à l’interface web de votre premier PfSense (serveur), 192.168.100.254 dans mon cas. (Par défaut login : admin | password : pfsense)

2. Une fois sur l’interface d’administration, cliquez sur l’onglet VPN de la barre de navigation puis OpenVPN.

Vous êtes maintenant sur la page d’administration consacrée à OpenVPN.

Assurez-vous d’être bien sur l’onglet « Serveurs » puis cliquez sur « add ».

3. Voilà l’interface de création de notre serveur OpenVPN.

Nous connecterons nos deux PfSense à l’aide d’une authentification par clés partagées.

Il faut donc en premier lieu changer le « Server mode » pour «Peer to Peer ( Shared Key ) ». (Flèche 1 sur l’illustration ci-dessous)

En second lieu, choisissez le port qui vous convient. J’ai personnellement choisi de garder le port d’origine d’OpenVPN. (Flèche 2)

Dans cette partie Crypto. Settings choisissez les options d’encryption qui vous conviennent. Cependant pour notre configuration laissez la checkbox « Shared key : Automatically generate a shared key» cochée.

Pour cette partie Tunnel Settings, nous avons besoin de renseigner au minimum deux parties.

Premièrement « IPv4 Tunnel Network ». Vous devez choisir l’adresse du réseau virtuel sur lequel vont transiter vos données (l’adresse du tunnel VPN). Cette adresse doit être différente de celle utilisée par vos réseaux locaux. Dans mon cas, j’ai choisi le réseau 192.168.50.0/24

Deuxièmement « IPv4 Remote network(s) ». Sur cette partie, vous devez renseigner l’adresse du réseau LAN distant. (192.168.1.0/24 chez moi)

Vous pouvez maintenant cliquer sur « Save » pour sauvegarder votre configuration.

Voilà notre serveur VPN est maintenant configuré.

!!!!!!!!!!!!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!!!!!!

4. Si vous travaillez avec deux serveurs (machines ou VMs) dont les interfaces WAN utilisent un même réseau local vous aurez une rapide configuration à faire au niveau de l’interface WAN du PfSense qui fait office de serveur VPN.

Rendez-vous donc dans l’onglet « Interfaces » de barre de navigation puis WAN.

Scrollez en-bas de la page puis décochez les deux checkbox de la partie « Reserved Network ». Ceci va permettre de ne pas bloquer d’office les paquets venant d’une adresse locale (notre futur client VPN dans notre cas).

Vous pouvez maintenant sauvegarder cette configuration. Fin de la parenthèse.

5. Nous devons maintenant configurer le firewall de notre PfSense serveur pour permettre la connexion du client OpenVPN vers celui-ci.

Pour cela allez sous l’onglet « Firewall » de la barre de navigation puis cliquez sur « Rules ».

Une fois sur la page d’administration du firewall rendez-vous sur l’onglet WAN. (Flèche 1 de l’illustration ci-dessous)

Puis cliquez sur « Add » pour ajouter une nouvelle règle. (Flèche 2)

Nous sommes maintenant sur la page dédiée à la création de règles pour le firewall.

La configuration de cette règle dépendra beaucoup de la configuration que vous avez faite pendant la partie sur la création du serveur OpenVPN.

Dans mon cas, j’avais laissé mon serveur OpenVPN en UDP (le meilleur protocole pour un VPN). Je dois donc laisser passer le protocole « UDP » dans la règle de mon firewall (flèche de la figure suivante).

Dans la partie 1 figure suivante, vous pouvez mettre la source à « any » pour accepter toutes les sources. Mais vous pouvez très bien adapter cette option en fonction de votre configuration.

Pour la partie 2 comme le serveur VPN est installé sur notre PfSense,« This firewall (self) » est l’option la plus adéquate. Pas besoin de s’embêter.

Les parties 3 et 4 dépendront de la configuration de votre serveur VPN. Dans mon cas, j’ai gardé le port d’origine (1194). Je dois donc choisir l’option correspondant à mon port dans le menu déroulant « From » et « To ».

Vous pouvez maintenant sauvegarder votre configuration à l’aide du bouton « Save ».

La configuration de notre serveur VPN est maintenant terminée.

Configuration de notre second PfSense (partie client) :

Passons maintenant à la configuration de notre second PfSense. (Notre client)

1. Commencez par vous connecter à l’interface web de votre second PfSense. 192.168.1.254 dans mon cas. (login : admin | password : pfsense)

2. Rendez-vous sous l’onglet VPN puis OpenVPN.

Une fois sur la page d’administration consacrée à Open VPN vous devez vous rendre sous l’onglet « Clients » de celle-ci (flèche 1 ci-dessous) puis cliquez sur « Add » (flèche 2).

3. Passons maintenant à la configuration du client OpenVPN. Dans un premier temps, il faut impérativement changer le « Server mode » en « Peer to Peer ( Shared Key ) » (Flèche 1).

Il faut ensuite renseigner le « Server host or address » avec l’adresse de votre premier PfSense qui fait office de serveur OpenVPN (flèche 2) puis, bien sûr le port utilisé par celui-ci (flèche 3).

Pour la partie Crypto. Settings de notre client vous devez utiliser la même configuration que sur le serveur. Sinon cela ne fonctionnera pas.

Nous passons maintenant à la partie « Tunnel Settings ».

En premier lieu, nous devons renseigner l’adresse du tunnel (IPv4 Tunnel Network). Mettez la même adresse que l’IPv4 Tunnel Network que vous avez mise dans la configuration du serveur OpenVPN (flèche 1 de l’illustration ci-dessous).

Pour la flèche 2, vous devez mettre l’adresse LAN du réseau distant. (192.168.100.0/24 dans mon cas)

Nous pouvons maintenant sauvegarder la configuration de notre client en cliquant sur « Save ».

4. La configuration de notre client OpenVPN est maintenant presque terminée.

Il nous reste une dernière étape. En effet comme nous avons choisi le mode d’authentification par clés partagées, nous devons copier la clé générée par notre serveur OpenVPN puis la coller sur notre client.

!!!!!!!!!!!!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!!!!!!

Sur votre PfSense faisant office de serveur OpenVPN :

Rendez-vous sur la page d’administration de notre serveur OpenVPN.

Cliquez sur le « crayon » pour éditer la configuration du serveur que nous avons créée au préalable.

Scrollez jusqu'à la partie Crypto. Settings.

Nous pouvons voir qu’une clé a été générée automatiquement par notre serveur. Copiez- la puis quittez l’espace d’édition de notre serveur VPN.

!!!!!!!!!!!!!!!!!!!! ATTENTION !!!!!!!!!!!!!!!!!!!!

5. Retour sur le PfSense faisant office de client OpenVPN :

Rendez-vous sur la page d’administration dédiée à notre client OpenVPN.

Une fois sur cette page, éditez la configuration du client OpenVPN en cliquant sur le « crayon » assigné à celle-ci (flèche 2 ci-dessous).

Scrollez jusqu'à la partie Crypto. Settings.

Il se peut qu’il y ait déjà une clé dans la partie consacrée à la clé partagée (Shared key | flèche de l’image ci-dessous). Supprimez-la puis collez y la clé générée par notre serveur OpenVPN (clé que nous avions copiée précédemment).

Nous pouvons maintenant sauvegarder la configuration en cliquant sur le bouton « Save » en bas de la page.

La configuration de notre client OpenVPN est maintenant terminée.

6. Nous allons maintenant nous assurer que la liaison est bien fonctionnelle. Pour cela rendez-vous sous l’onglet « Status » de la barre de navigation puis cliquez sur « OpenVPN ».

Nous pouvons voir sur cette page que la liaison est bien opérationnelle. 

Notre VPN site-to-site est enfin fonctionnel.

Une dernière chose à faire :

Il nous reste quand même une dernière chose à faire.

En effet si vous essayez maintenant de communiquer avec une machine du réseau LAN distant… Bah cela ne fonctionnera pas comme le prouve l’image suivante...

Nous pouvons utiliser la commande « traceroute IpDeLaCible » pour mieux comprendre (traceroute sous mac et linux | tracert sous windows).

Et nous voyons bien que les paquets sont coincés au niveau de notre Passerelle (gateway).

Pourquoi ? Tout simplement car il manque une règle sur les firewalls de nos PfSense.

En effet l’interface réseau créé par OpenVPN n’a encore aucune règle. Les paquets sont donc bloqués d’office par celui-ci.

Nous allons tout de suite régler ce problème.

1. Pour cela, il vous faut vous rendre sur l’interface web de l’un de vos PfSense puis aller sous l’onglet « Firewall », cliquez sur « Rules ».

2. Sur la page d’administration dédiée au firewall, cliquez sur l’onglet « OpenVPN » (flèche 1) puis « Add » (flèche 2).

3. Vous voilà sur la page de création de règles pour le firewall.

J’ai personnellement choisi de laisser tous les protocoles passés pour mon exemple. J’ai donc mis l’option « Protocol » à « any » (flèche suivante).

Cependant vous pouvez très bien adapter la règle en fonction de vos besoins. Vous pouvez aussi créer le nombre de règles que vous voulez. N’hésitez donc pas à adapter cet exemple.

J’ai aussi laissé la « Source » et « Destination » à « any ». N’hésitez pas à adapter aussi cette partie à vos besoins.

Il y a donc aucun filtrage sur la configuration que je viens de faire. Tous les protocoles, toutes les sources et toutes les destinations seront autorisés.

Cliquez sur le bouton « Save » pour sauvegarder la configuration.

Votre Règle est maintenant créée et opérationnelle comme vous le montre l’image suivante.

4. Reproduisez les étapes précédentes (étapes 1 à 3) sur votre deuxième PfSense. Je ne vais pas détailler cette partie car nous venons juste de la faire.

Donc comme avant onglet « Firewall » puis « Rules ».

Onglet « OpenVPN » de la page « Firewall » puis cliquez sur « Add ».

Créez votre règle puis cliquez sur « Save » pour sauvegarder.

Votre règle est maintenant créée.

5. Passons au test !

Pour ce test, j’ai choisi de pinger (requête ICMP pour les rabat-joie) un hôte distant.

Comme vous pouvez le voir sur l’image suivante, l’hôte 192.168.1.1 arrive à pinger l’hôte 192.168.100.1 du réseau distant.

Magnifique n’est-ce pas ?

Un petit traceroute (tracert sous windows) pour mieux comprendre.

Nous voyons que lorsque nous essayons de contacter un hôte sur le réseau LAN distant :

- Les paquets sont dans un premier temps dirigés vers notre passerelle (gateway).

- Puis ils transitent par notre tunnel VPN (192.168.50.1).

- Et ils arrivent enfin à notre hôte.

Un dernier test du second réseau vers le premier :

Ici aussi tout fonctionne normalement.

Vous pouvez voir les paquets transiter vers la gateway puis dans le tunnel VPN (192.168.50.2) pour finir chez notre cible.

Maintenant votre installation est pleinement fonctionnelle !

En espérant que ce tutoriel vous aura été utile. 

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels