Architecture VPN Site A Site
Architecture VPN Site A Site
Architecture VPN Site A Site
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.
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é.
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 ».
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.
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.
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 ».
1. Commencez par vous connecter à l’interface web de votre second PfSense. 192.168.1.254
dans mon cas. (login : admin | password : pfsense)
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).
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.
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 ».
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.
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.
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).
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.
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...
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.
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.
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.
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.
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).