VPN Site-to-Site IPsec entre deux Pfsense
I. Présentation
Un VPN (Virtual Private Network) Site-to-Site (aussi appellé LAN-to-LAN) est un VPN qui permet de joindre deux réseaux de type LAN distants de manière à faire en sorte qu'ils puissent communiquer comme s'ils étaient sur le même réseau et qu'un simple routeur les séparait. On peut trouver ce genre de VPN entre des agences et un siège d'entreprise par exemple. Les agences doivent pouvoir se connecter aux ressources du siège de manière transparente malgré leur distance. On établie alors un VPN au travers Internet afin de joindre les deux réseaux mais également de manière à sécuriser ces flux au travers un chiffrement.
Il existe plusieurs outils et technologies permettant de faire du VPN LAN-to-LAN. On peut par exemple citer OpenVPN que j'ai déjà présenté dans un précédent tutoriel (Installation d'OpenVPN). Nous allons ici travailler avec IPSEC (Internet Protocol Security) qui est un ensemble de protocoles utilisant des algorithmes permettant le transport de données sécurisées sur un réseau. Il se caractérise comme étant un standard ouvert travaillant sur la couche 3 et supportant de multiple algorithmes de chiffrement et d'authentification.
II. Architecture
Pour illustrer la mise en place de notre VPN Site-to-Site entre nos routeurs, nous allons utiliser le pare-feu Pfsense et se baser sur le schéma de test suivant :
Nous aurons donc une interface WAN (192.168.1.0+24) et LAN (172.16.X.0+24) sur chacun de nos Pfsense, le but final sera donc que les deux clients (172.16.1.10 et 172.16.2.10) puissent communiquer entre eux via ce tunnel. J'effectue ce tutoriel sur des Pfsense version 2.1 et les clients seront des simples machines Debian 7 en CLI. On part donc du principe que les Pfsense et les clients sont déjà en place et que ces derniers ont déjà un accès au WAN via un simple NAT des Pfsense.
III. Mise en place
On commence donc par accéder à l'interface d'administration de notre premier Pfsense (172.16.1.10 dans mon cas). On se rend directement dans le menu "VPN" puis dans "IPsec" :
On va commencer par cocher la case "Enable IPsec" qui se situe dans le cadre puis sur "Save". On va ensuite cliquer sur le "+" pour ajouter une nouvelle configuration IPsec à ce tableau :
On se retrouve alors avec beaucoup d'options, toutes ont leur importance et leur pertinence mais il n'est pas utile de toute les modifier. Nous allons ici nous contenter de faire un VPN simple et fonctionnel, la compréhension, la modification et l'utilisation des différentes options dépend de votre cadre d'utilisation. On commence par remplir l'IP de notre partenaire VPN. Étant sur mon Pfsense 192.168.1.10, je mets l'IP 192.168.1.12. On peut également y mettre une description :
Dans le second cadre qui se nomme "Phase 1 proposal", on va remplir le champ "Pre-Shared Key" et ce parce que le champ "Authentication method" est positionné sur "Mutual PSK", on aurait pu choisir "Mutual RSA" mais cela n'entre pas dans le cadre du tutoriel :
Note : On peut également choisir l'algorithme de chiffrement qui par défaut est 3DES (112 ou 168bits), l'algorithme de hashage qui par défaut est SHA1 et le groupe Diffie Helmann. Pour une simple utilisation, il est possible de laisser ces trois valeurs par défaut.
On fini par cliquer sur "Save" puis sur "Apply changes" sur la page suivante. On va alors cliquer sur le "+" présent en dessous de la première ligne du tableau qui se situe sur la page :
Puis à nouveau sur le "+" au bout de cette nouvelle ligne. On arrive sur une nouvelle page de configuration sur laquelle nous allons remplir le champ "Remote Network" dans lequel nous allons mettre la plage IP du LAN distant :
A nouveau, il n'est pas nécessaire de modifier les autres paramètres si vous ne savez pas à quoi ils correspondent. On clique sur "Save" puis sur "Apply changes" sur la page suivante. Si on redéveloppe le tableau principal avec le "+", nous aurons quelque chose qui ressemble à cela :
Nous avons donc un résumé de notre configuration VPN. Il faut maintenant effectuer exactement la même configuration du coté de notre deuxième Pfsense en adaptant bien entendu les IP et les plages IP précisées et ne cochant la case "Enable PFsense" uniquement après avoir saisi les configurations.
Sur nos deux routeurs, on va alors aller dans "Firewall" puis "rules" pour aller dans l'onglet "IPsec" et cliquer sur le "+" à droite du tableau pour ajouter une règle qui va autoriser tous les flux à arriver depuis l'interface IPsec (ceci est bien entendu à adapter selon vos besoins) la configuration de votre règle doit ressembler à cela :
Une fois ces deux configurations faites, on peut attendre une bonne minute que les pare-feu négocient la construction du VPN.
Note : Si comme moi dans le cadre de mon test les réseaux WAN ont des plages IP de réseaux internes (comme ceux définis dans le RFC 1918) veillez bien à décocher la case " Block private networks" dans les pages "Interfaces" > "WAN" des deux routeurs sinon le pare-feu va tout simplement bloquer les paquets arrivant du WAN et ainsi bloquer la négociation du VPN.
IV. Test du VPN
Afin de tester le fonctionnement de nos Pfsense, nous pouvons dans un premier temps nous rendre dans la partie "Status" puis "IPsec" :
L'icône vert dans "Status" indique ici que le VPN est fonctionnel. Vous trouverez également des informations utiles dans "Status" puis "System Logs" et enfin dans l'onglet "IPsec" des deux machines afin de débugger si besoin.
On peut également effectuer un ping entre les deux machines clientes pour vérifier leur bonne communication :
Notre VPN est donc bien fonctionnel et les deux LAN arrivent désormais à communiquer au travers de notre tunnel IPsec !
suis ravi de votre tutoriel,
imaginons les WAN est de deux FAI différents comment se fera la configuration.
ex: WAN 1 : 41.207.122.X LAN: 192.168.1.x
WAN 2 : 172.40.3.X LAN: 192.168.10.x
merci d’avance
vous avez pu trouver une solution pour votre configuration ?
Bonjour,
Je pense qu’il faut passer le routeur du FAI en mode « bridge » et configurer l’adresse IP du WAN (pfsense) manuellement … J’ai pu tester au boulot mais via des machines virtuelles et ce n’est pas possible pour moi d’effectuer la config dont je vous parle au dessus étant donné que nous avons ici un FW Juniper déjà présent.
à vous d’essayer et de me dire si ça fonctionne ..
deja le WAN 2 est une adresse privée et donc ne communiqueras jamais avec la 41.207…
Bonjour,
je viens de finaliser une configuration similaire à la votre avec deux ipcop version 2.
vpn ipsec site-to-site. Je cherche un client vpn pour établir la connexion en vain. J’ai utilisé shrewSoft vpn client. Mais à ma grande surprise un login et un mot de passe m’est demandé. Ce qui me surprend car je n’ai pas spécifier de login pendant les config. J’ai générer un certificat sur chaque site et j’ai fait connaître les deux serveurs. Le vpn est bien ouvert.
Bonjour,
Très bon article, juste une question, est-il possible de réaliser ce VPN entre deux clusters pfsense, c’est-à-dire que le VPN s’établisse entres deux IPs virtuels ?
Merci d’avance 🙂
merci, super article, merci..
Bonjour, tout d’abord merci pour cet article, je souhaiterai savoir comment faire si je dois ajouter un client en plus. Je m’explique, dans ce cas de figure on a 2 site mais si on avait 3, 4, 5 sites, comment les interconnectés à travers le VPN IPsec.
Merci pour vos réponses
Bonjour,
Je pense que le mieux serait une connexion en étoile :
Site 1 Site 2
Site 1 site 3
Site 1 Site 4
Etc….
Chaque site à une seule ligne pour paramétrer l’IPSEC sauf le 1 qui en à une par site.
Après voir si ils doivent dialoguer entre eux ou seulement le site principal (ici 1) c’est dans les règles IPSEC.
bonjour, ma question est la suivante, les lan doivent avoir des plages différentes je suppose ?
cordialement
Bonjour,
Oui les deux Lan doivent avoir une plage différente.
Cordialement
Bonjour M. J’aimerai savoir si c’est possible de de faire ce même lab avec deux réseaux Wan différents svp! J’ai déjà essayer mais je n’ai pas pu donc si c’est possible je veux l’explication svp!