OpenVPN sous Pfsense

INTRODUCTION


Problématique de base :

Imaginons que nous ayons une entreprise avec plusieurs sites géographiques.

Chaque site géographique possède sa propre liaison Internet.

Au niveau de la législation française, nous sommes obligés d’authentifier et d’archiver l’activité de nos utilisateurs.

Pour ce faire, nous avons décidé d’installer sur chaque site un serveur PfSense.

Tous nos administrateurs sont au niveau du site principal. Il faut donc que nos administrateurs puissent accéder à distance à chaque serveur PfSense Distant.

Nous allons donc mettre en place une liaison VPN entre notre site principal et nos sites isolés. Cela nous permettra :

– de pouvoir administrer nos sites distants de manière sécurisés
– d’avoir un échange de donnée possible entre nos LAN Internet (enregistrement centralisé des Logs, intégration de nos ordinateurs distants dans un domaine unique, etc.)

 

Avec un serveur PfSense, nous pouvons mettre en place plusieurs types de VPN :

IPSec (nécessite 2 IP WAN fixes)
L2TP (nécessite 2 IP WAN fixes)
OpenVPN (nécessite un seul IP WAN fixe)
PPTP (nécessite 2 IP WAN fixes)

 

Dans notre cas, nous allons partir sur la mise en place d’un OpenVPN.

Pourquoi ? Car ce VPN à l’avantage de fonctionner en mode client/serveur et donc ne nécessite qu’une seul IP WAN Fixe sur un de nos sites.

 

Vu que nous allons raccorder plusieurs OpenVPN sur notre site principal, le plus judicieux est de mettre l’adresse IP publique de notre site principale en fixe.

Tout fournisseur d’accès proposent ce service (généralement payant).

 

 

 

Configuration de notre liaison OpenVPN



Pour ce faire, nous allons configurer ce dernier étape par étape.

Afin de mieux comprendre comment le mettre en place, nous allons commencer au niveau de notre poste d’administration (situé sur la partie serveur).

 

 

Configuration PfSense du site principale



 

Configuration de l’OpenVPN


Jusqu’ici, rien de compliqué. Nous avons un Lan qui va être NATé via l’IP Wan de notre box pour qu’il puisse naviguer sur internet.

La première chose à faire sur notre PfSense c’est de créer notre partie « Serveur ».

Pour ce faire, nous devons aller dans l’onglet « VPN > OpenVPN ».

Dans l’onglet « Serveur », nous allons cliquer sur le petit “+” afin de créer notre serveur OpenVPN.

 

 

Les paramètres à mettre en place sont les suivants :

 

Server Mode : Peer to Peer (Shared Key).

Pour monter notre VPN, nous allons utiliser un secret partagé (shared key).

Ce secret va être commun à tous nos clients ainsi qu’avec notre serveur. Il va falloir le copier-coller à chaque fois que nous allons paramétrer une connexion OpenVPN.

Ce secret est automatiquement généré par le serveur.

Interface : Interface WAN.

IPv4 Tunnel Network : Mettez une adresse réseau type 10.10.10.0 /24 (ce réseau est un réseau privé de classe A).

Le tunnel OpenVPN a besoin de cette information pour fonctionner, il faut juste faire attention à ce que le réseau choisi soit assez grand pour d’accueillir tous nos clients OpenVPN et qu’il ne soit pas utilisé autre part.

Une fois le paramétrage fini, cliquez sur « Save ».

Notre serveur OpenVPN est configuré !

Il ne reste plus qu’à intervenir sur notre firewall afin de laisser passer les flux dont nous avons besoin.

 

Configuration du Firewall


Pour ce faire, aller dans l’onglet « Firewall > Rules ».

On peut voir que chaque interface possède un firewall.

Par défaut, personne ne peut emprunter notre tunnel et toutes les demandes de connexion VPN venant de l’extérieur sont bloquées par le firewall WAN. Nous allons donc autoriser ces flux.

 

Au niveau du firewall OpenVPN :

 

Au niveau du firewall WAN :

 

 

Configuration de notre accès Internet


Par défaut, une box refuse toutes demandes de connexion venant de l’extérieur vu qu’elle ne sait pas à qui cette demande est destinée (vu que la box fait du NAT).

Nous allons donc indiquer à la box que si une demande de connexion VPN vient de l’extérieur, sur le port par défaut utilisé par OpenVPN (UDP 1194), elle devra la rediriger vers notre Pfsense.

Pour ce faire, nous allons mettre en place du port-forwarding (redirection de port).

Vu le nombre de box différentes présentes sur le marché, le mieux est de faire une recherche sur Google avec la référence de la box ainsi que le mot “port-forwarding”.

 

 

Configuration PfSense de nos sites isolés



 

Configuration de l’OpenVPN


La première chose à faire sur notre PfSense c’est de créer notre partie « Client » (vous trouverez la configuration sur l’image ci-dessous).

 

 

 

 

 

 

Server host or address 

Il va falloir mettre l’adresse IP du serveur OpenVPN telle qu’elle est vue sur Internet. Ce sera donc l’adresse IP de la patte WAN de la box « maison mère ».

Comment obtenir cette adresse ? Il faut aller sur le site www.mon-ip.com à partir d’un poste de la maison mère et le tour est joué !

Shared Key

Copier-coller le secret partagé du serveur ici.

IPv4 Tunnel Network

Mettre le même Network que le serveur.

Il ne reste plus qu’à intervenir sur notre firewall afin de laisser passer les flux dont nous avons besoin !

 

Configuration du Firewall


Pour ce faire, aller dans l’onglet « Firewall > Rules ».

Comme c’est le client qui doit faire la demande de connexion, il n’est pas nécessaire d’ajouter une règle au niveau du firewall WAN. Nous allons uniquement intervenir sur le firewall OpenVPN pour ajouter les mêmes règles que la partie serveur :

 

Configuration de notre accès INTERNET


Il n’y à pas d’action à mener sur les BOX Internet de nos sites isolés vu qu’ils sont en mode “Client”. Ce sont eux qui font faire la demande d’ouverture du tunnel OpenVPN.

 

 

Test de bon fonctionnement



Pour tester votre connexion VPN, essayerzd’accéder à la page d’administration du PfSense distant depuis un poste du site principal.

Si cela ne fonctionne pas, il va falloir vérifier les logs de nos firewalls ou si l’un de nos flux n’a pas été bloqué.

Ce schéma de principe peut vous aider dans votre recherche de panne :

 

 

En espérant que vous avez apprécié cet article !

N’hésitez pas à me la faire savoir !!

FingerInTheNet.com