pfSense: VPN Client à Site

pfSense: VPN Client à Site

14 octobre 2018 Non Par Mairien Anthony

 

Second article traitant du Router/Firewall OpenSource de référence, j’ai nommé: pfSense. Ici, nous allons voir comment se passe la mise en place d’un tunnel OpenVPN pour permettre à nos postes clients de se connecter à distance à notre réseau local, et ce de manière sécurisée.

 

Comme dit plus haut, nous allons donc réaliser un lab sous VMware Workstation en reprenant donc notre réseau local créé précédemment (voir l’article en question) sauf que nous allons :

  • Créer un second réseau virtuel isolé lui aussi ;
  • Installer et configurer un serveur OpenVPN sur un des deux pfSense ;
  • Installer le logiciel client OpenVPN sur une machine Fedora et une Windows 10.

Sans plus attendre, voici le schéma:

 

 

Bien, mais avant de se lancer dans le bain, un petit rappel s’impose !

 

Un tunnel VPN, c’est quoi au juste ?

Déjà, VPN signifie Virtual Private Network, traduit littéralement en Réseau virtuel privé. Un tunnel VPN est donc un tunnel chiffré qui va relier un ou plusieurs sites distants sans que d’autres machines puissent intercepter ou modifier les données y transitant.

 

OpenVPN, Ipsec, PPTP… quelle(s) différence(s) ?

  • PPTP:  signifiant Point-to-point tunneling protocol, il permet donc de créer un tunnel privé pour faire transiter des données grâce à l’authentification par mot de passe des différents périphériques, ce qui implique qu’il n’y a pas de matériel supplémentaire nécessaire. Cependant, à lui seul il ne permet aucun chiffrage ou sécurités supplémentaires
  • OpenVPN:  c’est à la fois un protocole utilisant SSL pour sécuriser les données et en même temps un logiciel open source. Il nécessite un logiciel et l’installation de la configuration peut s’avérer plus complexe que les autres, mais il est le plus rapide/sécurisé d’entre eux.
  • IPsec: signifiant quand à lui Internet Security Protocol, il est un des protocoles les plus utilisés. Il permet de chiffrer les données tout comme OpenVPN.


Bien, maintenant que nous sommes à jour, nous pouvons commencer !

1) Création du serveur OpenVPN

La première étape après avoir installé chaque VMs et chaque routeur/pare-feu pfSense est donc de se rendre sur celui sur lequel nos utilisateurs distants vont se connecter, ici ce sera le pfsense-02.

On se rend donc sur l’interface d’administration web, puis nous allons dans VPNOpenVPN, puis Wizard:

 

 

Ici, on choisi de gérer nos utilisateurs de manière locale, bien que l’on pourrait le faire via un serveur externe sous Radius ou LDAP.

Ensuite, nous devons créer une autorité de certification, choisir la longueur de la clé qui sera génére, la durée de vie, le code ISO du pays, la province et ville, et enfin le nom de la société:

 

 

Vient ensuite la création du certificat serveur :

 

 

Globalement, rien ne change niveau configuration. Une fois notre certificat créé, nous devons ensuite paramétrer le fameux serveur OpenVPN:

 

 

Ici, on choisi l’interface sur laquelle le serveur va écouter, c’est-à-dire l’interface WAN, puis ensuite le type de protocole utilisé, le port d’écoute, et enfin une description générique.

On continue la configuration:

 

 

Ici je ne vais pas tout détailler, seulement les points importants pour nous. Comme vous pouvez le voir, j’ai simplement choisi l’algorithme de hashage SHA256 et je n’ai pas sélectionné de « Hardware Crypto », qui est un périphérique matériel permettant d’accélérer le chiffrement/déchiffrement, permettant donc d’utiliser des algorithmes encore plus lourds.

Ensuite, on passe à la partie configuration du tunnel. Ici, j’a choisi une adresse pour le réseau virtuel par lequel les clients vont passer pour atteindre notre réseau local distant. J’ai ensuite indiqué l’adresse du réseau local distant, choisi le nombre maximum d’utilisateurs autorisés à utiliser le tunnel VPN simultanément et pour finir j’ai choisi la compression par défaut de OpenVPN.

On continue de descendre et on arrive à la dernière partie:

 

  

Ici, on peut choisir de configurer son client OpenVPN, en renseignant par exemple le choix d’une IP dynamique ou non, le nom de domaine local, l’adresse du ou des serveur(s) DNS, l’adresse du serveur NTP, etc.

On ne touche à rien de tout ça, et on valide !

2) Configuration du pare-feu

Étape très rapide tant pfSense nous mâche le travail ! Nous avons simplement à cocher deux cases pour autoriser le trafic venant des clients (WAN) vers le serveur OpenVPN, ainsi que le trafic des clients au travers de notre tunnel VPN.

 

 

3) Installation du package open-vpn-client, et création des utilisateurs

Après avoir validé toute notre configuration du serveur et valider, on peut déjà avoir un aperçu rapide en nous rendant dans VPNOpenVPNServers:

  

 

On va simplement modifier notre configuration pour choisir l’authentification simple (nom d’utilisateur/mot de passe) :

  

 

On valide, et on sort. Ensuite, on va installer le paquet openvpn-client-export qui va nous permettre d’exporter très facilement notre configuration OpenVPN. Pour cela, on se rend dans SystemPacket Manager, puis dans Available Packages et il nous suffit de taper son nom et de l’installer, rien de plus !

Une fois l’installation terminée on se rend de nouveau dans Sytem, mais cette fois nous allons dans le User Manager, puis Groups :

 

 

On rajoute donc un simple groupe pour nos utilisateurs nomades, que l’on va créer de la même façon qu’au dessus, sauf en allant dans Users bien entendu:

 

 

Une fois fini, on valide et on sort. Vient ensuite la dernière étape ! L’exportation de notre configuration OpenVPN… Pour cela, on se rend dans VPNOpenVPN, puis Client Export et on choisi l’installateur de notre choix (pour Windows, prenez le Current Windows Installer et pour Linux ce sera le Viscosity Bundle) : 

 

 

4) Installation d’OpenVPN sur les postes clients

Rendons-nous en premier lieu sur notre machine Windows 10, se trouvant donc dans le LAN-01 et qui va donc se connecter en VPN sur le LAN-02. On installe le logiciel OpenVPN en cochant simplement suivant, suivant, et on rentre notre nom d’utilisateur et mot de passe:

 

 

Lorsque le logiciel va demander l’autorisation pour ajouter une carte réseau virtuelle, on dit oui bien entendu. Ensuite, on démarre le OpenVPN GUI puis on clique droit sur l’icône dans la barre des tâches et on choisi Se connecter en rentrant donc nos identifiants créés en début sur le pfsense-02 :

 

 

 On patiente un peu et… tadaaa !

 

 

Notre connexion VPN est fonctionnelle ! On peut le vérifier en nous rendant sur l’adresse de notre serveur web présent dans le lan distant:

 

 

Bien, maintenant passons à notre client Fedora ! On télécharge donc le Viscosity Bundle comme dit plus haut, on le décompresse, et on se rend dans Connexion Réseau. Ici, on clique sur AddImport a saved VPN configuration, puis on choisi le fichier config.conf se trouvant dans le dossier viscosity.visc :

 

 

On renseigne notre nom d’utilisateur et mot de passe, et au passage on peut renommer cette configuration :

 

  

On enregistre notre configuration, puis clic droit sur l’icône réseau dans la barre des tâches et on active le VPN en renseignant notre mot de passe.  

Et voilàààà ! Nous sommes à présent connecté à notre réseau local distant !

 

 

A noter que si vous avez obtenu une erreur liée à SELinux lors de l’activation du VPN, vous pouvez désactiver ce dernier en éditant le fichier /etc/selinux/config et en modifiant la configuration pour obtenir SELINUX=disabled.

 

 

Et bien voilà qui conclut donc cet article sur l’installation d’un VPN OpenVPN Point-to-Site via pfSense ! Le tout est entièrement fonctionnel, que ce soit sous Linux ou Windows.

Une fois n’est pas coutume, je vous conseille de vous rendre sur le site officiel de pfsense ou de regarder du côté d’autres tutoriels concernant le Networking et la gestion de VPN si vous avez des questions ou des soucis, et bien entendu je suis disponible par e-mail si besoin est 😉