
Dans ce projet, l’objectif est de mettre en place un VPN Client-to-Site sur un environnement virtuel comprenant une machine virtuelle pfSense avec des interfaces LAN, WAN et DMZ. Un poste client sera configuré sur l’interface LAN et un serveur Windows sera placé dans la zone DMZ.
Ce VPN permettra à un client externe, situé à l’extérieur de l’entreprise, de se connecter de manière sécurisée au réseau interne via un tunnel VPN. Nous utiliserons pfSense pour créer le tunnel VPN et sécuriser les connexions des clients distants qui pourront accéder aux ressources du réseau interne en passant par Internet.
Qu’est-ce qu’un VPN ?
Un VPN (Virtual Private Network) est une technologie qui permet de créer une connexion sécurisée et privée entre deux réseaux ou entre un utilisateur et un réseau via Internet. Il agit comme un tunnel virtuel, chiffrant les données échangées entre les points de connexion, ce qui garantit la confidentialité, l’intégrité et l’authenticité des informations transmises. Lorsqu’un utilisateur se connecte à un VPN, il peut accéder au réseau de l’entreprise comme s’il était sur place, même s’il se trouve à distance, tout en étant protégé des risques liés à Internet (écoute illégale, interception de données, attaques externes, etc.).
En d’autres termes, un VPN permet de simuler une connexion directe au réseau interne de l’entreprise, même si l’utilisateur se trouve à l’autre bout du monde, offrant ainsi une sécurité accrue pour les communications sensibles. Ce système est particulièrement utile pour les travailleurs à distance, les télétravailleurs ou encore pour sécuriser les connexions depuis des réseaux publics comme les Wi-Fi publics dans les cafés ou les aéroports.
Configuration réseau :
PfSense : WAN : 192.168.12.206/24 LAN : 192.168.1.1/24 DMZ : 192.168.2.1/24
Windows Server 2022 : 192.168.2.10/24
PC Client : 192.168.1.101
L’objectif est de permettre au client de communiquer avec le serveur grâce à un VPN
Mise en place du VPN
- Dirigez-vous vers l’interface web du PfSense
- Nous allons configurer OpenVPN, dirigez vous vers VPN > OpenVPN
- Cliquez sur « Wizards »
- Sélectionnez « Local User Access » pour permettre l’authentification des utilisateurs locaux du PfSense
Nous allons crée une certification qui va permettre d’identifier les clients, remplissez les cases indiquer par la flèche
- Cliquez sur « Next »
- Nous allons mettre en place la sécurité du VPN, ajouter une description
- Pour la deuxième partie, nous allons configurer l’algorithme de chiffrement
- La prochaine étape consiste à définir le réseau du tunnel VPN et le réseau qui peut y accéder
- « Tunnel Network » Réseau VPN « Local Network » Réseau Local autorisé
Dans Local network, saisir le réseau du serveur.
- La prochaine partie « Client Settings » et « Advanced Client Settings »n’a pas besoin de modification
- Cochez les cases suivantes, cela va crée des règles de pare-feu automatiquement concernant la connexion VPN
- Cliquez sur « Finish »
- Le serveur OpenVPN sur PfSense est prêt
- Dans le menu Firewall > Rules on peut voir l’interface OpenVPN avec sa règle de pare-feu et dans l’interface WAN on peut aussi apercevoir une règle concernant le VPN
Configuration des clients OpenVPN
Nous allons mettre en place l’identification des utilisateurs pouvant accéder au VPN.
Précédemment nous avons configurer la méthode d’authentification via la base d’utilisateur du PfSense.
Nous allons donc crée un utilisateur pour qu’il puisse se connecter au VPN.
- Dirigez vous vers System > Use Manager
- Cliquez sur « Add »
- Saisissez vos informations
- Cochez la case « Certificate » pour crée un certificat propre à l’utilisateur
- Attribuer un nom à ce certificat
- Cliquez sur « Save »
Installation OpenVPN
Maintenant que la configuration et la création d’un utilisateur est terminé, nous allons installer le plugin pour permettre la connexion à distance.
- Dirigez vous vers System > Package Manager
- Dans « Available Packages » faite la recherche « OpenVPN » puis installer le paquet « Openvpn-client-export »
- Confirmer le choix
- Après quelques secondes, vous devirez avoir cette fenêtre
- L’installation a été effectué
- Dirigez vous vers VPN > OpenVPN > Client Export
- Dans « Remote Acces Server » vous pouvez choisir quel connexion VPN vous souhaitez récupérer, ici nous n’avons qu’un seul choix
- Il n’y a rien à modifier, vous pouvez descendre jusqu’à « OpenVPN Clients »
- On peut apercevoir notre utilisateur avec le certificat qui lui est attribuer
- Dans la colonne « Export », vous disposez de plusieurs liens de téléchargement pour obtenir la configuration nécessaire à la connexion VPN.
- La forme de ces exports va varier en fonction de l’OS client que vous allez utiliser
Utilisation OpenVPN sur client Windows 10
La prochaine étape consiste à installer le VPN sur le poste client
- Dans la zone export, sélectionnez « 10/2016/2019 »
- Exécuter le dossier en Administrateur
- Vous pouvez avancer jusqu’à l’installation
- Le logiciel devrait apparaitre sur le Bureau
- Vous pouvez maintenant lancer OpenVPN GUI. Un double clic sur l’icône présent sur le bureau aura pour effet d’ouvrir l’application dans la barre des tâches représentée par un petit écran avec un cadenas.
- Faite un double-clic sur le logo, l’identifiant sera demande
- Vous devriez avoir un message en bas qui vous confirme la connexion
- Test Client to Site
- Normalement si vous effectuer un « ping » la communication passe
- Si ce n’est pas le cas, il faut crée une règle sur Windows Defender pour autoriser le « ping » du client au server
- Ici le ping ne passe pas, nous allons créer une règle de pare feu
- Dirigez-vous vers le pare feu Windows Defender > Paramètre Avancé
- Dans les « règles de Traffic entrant » crée une nouvelle règle
- Personnalisés > Tous les Programmes > Types de protocoles : ICMPv4
- Dans « Adresse IP locale » saisissez l’IP de votre serveur ; dans « Adresse IP distantes » saisissez l’IP VPN du client (vous pouvez soit rentrer des IP précises soit des adresse réseau)
- Vous pouvez cliquer sur « Suivant » jusqu’à l’étape de l’attribution du nom de la règle puis valider
- Nous allons maintenant « ping » le serveur depuis le client
- La connexion est donc établie.