7 Avr

VPN sur PfSense

Sous Pfsense, on peut mettre en place plusieurs types de VPN

  • Peer to peer (SSL/TLS) : pour monter un VPN site-à-site en utilisant une authentification par certificat.
  • Peer to peer (Shared Key) : pour monter un VPN site-à-site en utilisant une authentification par clé partagée.
  • Remote Access (SSL/TLS) : pour monter un accès distant pour clients nomades en utilisant une authentification par certificat.
  • Remote Access (User Auth) : pour monter un accès distant pour clients nomades en utilisant une authentification par login/password.
  • Remote Access (SSL/TLS + User Auth) : pour monter un accès distant pour clients nomades en utilisation une authentification par certificat et par login/password.

Mise en œuvre OpenVPN – SSL/TLS

Le module VPN permet créer soit un client et ou un serveur. Lors de l’activation du service VPN cela va générer une carte virtuelle OPT qui permettra d’envoyer les paquets vers le VPN distant.

On peut aussi faire plusieurs types de serveur sur un Pfsense, à condition d’utiliser un réseau/tunnel différent.

OpenVPN est basé sur un mode de fonctionnement client-serveur. Lorsque l’on connecte deux sites, l’un est client l’autre serveur, ce qui permet de connecter plusieurs sites distants sur un site principal.

Le serveur héberge le certificat de l’autorité ainsi que son propre certificat et sa clé privée.

C’est aussi depuis le serveur que l’on crée les fichiers nécessaires aux clients: un certificat client ainsi qu’une clé et le fichier openvpn client qui va dépendre de la plateforme cliente (android, windows, mac).

Ici un pdf avec le détail des actions a effectuer en parallèle sur les deux serveurs

Gestion des certificats

Prè-requis, avoir un Pfsense installé.

Recommandation : en TP, ce n’est pas comme en environnement réel, utilisez de petites clés afin de ne pas surcharger votre processeur.

  • Aller dans le menu System/Certificate Manage CA – Cliquer sur add et saisir les champs. Rien de bien compliquer. Attention à correctement nommer votre certificat d’autorité.
  • Puis dans l’onglet Certificates  – faire Add et créer le certificat serveur .  Attention :  faites le lien avec les informations du certificat de l’autorité de certification.

Serveur OpenVPN

Saisir les infos toujours en cohérence avec les infos des certificats

Aller dans le Menu VPN, OpenVPN, aller dans serveur et Add.

  • Server Mode : Peer to peer SSL/TLS
  • Device Mode : TUN travaille avec des paquets IP. TAP travaille avec des trames Ethernet.
  • Interface : l’interface sur laquelle le serveur va recevoir les connexions entrantes. Généralement WAN ou OPT1.
  • Local port : port d’écoute du serveur OpenVPN. Par défaut, c’est le 1194. Il est à noter que chaque serveur VPN doit disposer de son propre port d’écoute. De la même manière, il est important de s’assurer qu’aucun autre service ne soit déjà en écoute sur le port choisi.
  • Description : nom que l’on souhaite donner à ce serveur VPN. C’est ce nom qui apparaîtra dans les listes déroulantes de sélection de VPN se trouvant aux différents endroits du WebGUI pfSense. Dans notre cas, nous saisissons « VPN-Initiale ».
  • (Shared Key : si vous utiliser ce mode, laisser coché la case « Automatically generate a shared key ». La clé sera à copier/coller côté client.)
  • Encryption algorithm : ce paramètre doit être le même côté client et côté serveur si l’une des deux parties ne supporte pas le protocole NCP. N’importe quel algorithme travaillant avec une clé d’au moins 128 bits sera bon. 256 bits sera encore mieux. CAST/DES/RC2 sont moins sécurisés, et donc à bannir. Notre choix se porte sur AES 256 bits CBC
  • Enable NCP : cocher la case permet d’activer le protocole NCP pour que le client et le serveur négocie le protocole de chiffrement le plus approprié. A laisser cochée.
  • NCP Algorithms : Les algortithmes de chiffrement que nous souhaitons supporter côté serveur.
  • Auth digest algorithm : nous laissons la valeur par défaut SHA256.
  • Hardware Crypto : précise si le serveur dispose d’un support cryptographique.
  • IP v4 Tunnel Network : réseau utilisé pour le tunnel VPN. N’importe quel réseau privé inutilisé dans l’espace d’adressage de la RFC 1918 peut être utilisé. Pour une connexion site-à-site, l’utilisation d’un /30 est suffisant (inutile d’utiliser un /24).
  • IPv4 Remote network(s) : désigne le ou les réseaux distants accessibles par le serveur. Il convient d’utiliser la notation CIDR (ex : 192.168.1.0/24). Dans le cas où l’on souhaite indiquer plusieurs réseaux, il faut les séparer par une virgule.
  • Concurrent connections : précise le nombre de connexion client possible en simultanée sur ce serveur. Dans le cas d’un VPN site-à-site, ce paramètre peut être renseigné à 1.
  • Compression : permet d’activer la compression LZO/LZ4 sur l’ensemble des flux transitant par ce tunnel VPN. Si les données transitant dans ce tunnel VPN sont principalement des données chiffrées (HTTPS, SSH, etc.), cocher cette option ne fera qu’ajouter un overhead inutile aux paquets.
  • Custom options : permet de passer des paramètres avancés à OpenVPN. Cela peut notamment être utile si l’on décide de faire du VPN natté (entre deux sites ayant le même plan d’adressage) ou pour pousser des routes spécifiques. Nous ne rentrerons pas dans le détail ici.

Une fois la configuration renseignée, nous cliquons sur « Save » pour valider notre configuration.

Configurer le firewall

Pour permettre la connexion du client OpenVPN vers celui-ci le serveur VPN.

Puis cliquez sur « Add » pour ajouter une nouvelle règle.

Pour cela allez sous l’onglet « Firewall » de la barre de navigation puis cliquez sur « Rules ».

Onglet WAN = autoriser les paquets UDP (si c’est le protocole choisi

La source « any » pour accepter toutes les sources, si besoin.

« This firewall (self) » est l’option la plus adéquate.

Si vous avez laissé le port d’origine (1194), choisir l’option correspondant au port dans le menu déroulant « From » et « To » .

Vous pouvez maintenant sauvegarder votre configuration à l’aide du bouton « Save ».

Il faut aussi une règle pour l’interface OPT-VPN afin que les paquets puissent circuler entre les réseaux distants.

Pour le second serveur

La configuration est la même que pour un client – simplement dans le server mode il faut choisir Peer to peer SSL/TLS

Pour créer le client voici la doc : VPN sur PFsense.

L’objectif final est qu’un poste du réseau LAN derrière le premier Pfsense puisse se connecter à un poste / serveur derrière le second Pfsense.

A tester avec un tracert / traceroute

Pour faire avec de l’IPSEC http://www.vanexpert.fr/base-de-connaissance/parametrage-pfsense-tunnel-ipsec-site-to-site/

Les sites qui m’ont inspiré : https://www.supinfo.com/articles/single/3103-creation-vpn-site-to-site-deux-pfsense-openvpn

https://www.provya.net/?d=2014/06/15/15/20/04-

Une réflexion au sujet de « VPN sur PfSense »

  1. Ping : Sofolio » VPN

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.