Vous êtes sur la page 1sur 21

CREATION D’UN VPN SITE-TO-SITE ENTRE DEUX PFSENSE

(OPENVPN)
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é.

Remarque
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.
Remarque :
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.

Remarque
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… 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.

Vous aimerez peut-être aussi