pfSense : WireGuard – Configurer le Tunnel VPN

WireGuard est un nouveau protocole VPN Layer 3 conçu pour la rapidité et la simplicité. Il fonctionne presque aussi vite que l’IPsec et ne dispose que d’un petit nombre d’options dans sa configuration.

Les instances WireGuard se composent d’un tunnel et d’homologues (Peer) qui contiennent les clés nécessaires et d’autres données de configuration.


Téléchargez l’image ISO de pfSense en version 2.5.0. (WireGuard a été supprimé des versions après pfSense CE 2.5.0 – Release Notes )

Note : Avant de continuer, consultez ce guide : pfSense : Installation et Configuration


Configuration du Tunnel VPN

Accéder à VPN > WireGuard

Cliquer sur + Add Tunnel

  • Cocher « Enabled« 
  • Entrer une Description (PC2S-VPN)
  • Adresse IP du Tunnel VPN au format CIDR : 10.210.0.1/24 (différente de l’IP WAN et LAN de pfSense)
  • Port d’écoute : 51820  (port par défaut)
  • Cliquer sur « Generate » pour créer un nouvel ensemble de clés Privée et Publique

Copier coller la Clé Publique « Public key » (VLc5wcXNU0…..) du Tunnel VPN dans un fichier texte et Cliquer sur « Save »


Configuration des Clients (Peer)

Sur l’ordinateur Client , Télécharger et installer WireGuard pour Windows

Sélectionner « Ajouter un tunnel vide… »

Renseigner les informations de votre Tunnel VPN sur le Client :

[Interface]
  • PrivateKey = Garder la Clé privée proposée
  • ListenPort = 51820 (Port d’écoute du Tunnel VPN)
  • Address = 10.210.0.2/24 (Adresse IP disponible du Tunnel VPN au format CIDR)
[Peer]
  • PublicKey = Coller la Clé Publique « Public Key » du Tunnel VPN (VLc5wcXNU0…..)
  • AllowedIPs = 0.0.0.0/0 (Autorise toutes les adresses IP)
  • Endpoint = 217.178.212.123:51820 (Adresse IP WAN Publique du Serveur pfSense WireGuard suivie du Port d’écoute du Tunnel VPN)
ListenPort = 51820
Address = 10.210.0.2/24

[Peer]
PublicKey = "Public Key" du Tunnel VPN (VLc5wcXNU0.....)
AllowedIPs = 0.0.0.0/0
Endpoint = 217.178.212.123:51820

Donner un Nom (Client-1) et copier coller la « Clé Publique » du Client (KdD8dzLnRI…..) dans un fichier texte et Cliquer sur « Enregistrer »


Retour sur pfSense > WireGuard > Tunnels : Cliquer sur le Stylo pour modifier

Cliquer sur « +Add peer »

  • Entrer une Description (Client-1)
  • Endpoint : Laisser vide pour les points de terminaison dynamiques
  • Endpoint Port : Laisser vide (Port : 51820 par défaut)
  • Keep Alive : Laisser vide. (Utile pour vérifier que le Tunnel VPN est toujours actif)
  • Public Key : Coller la « Clé Publique » du Client (KdD8dzLnRI…..)
  • Allowed IPs : 10.210.0.2/24 (Adresse IP du Client au format CIDR)
  • Peer WireGuard Address : 10.210.0.2 (Adresse IP du Client)

Cliquer sur « Update »

Cliquer sur « Save »

Cliquer sur « Show peers » pour afficher les Clients


Configurer les règles du Pare-Feu pfSense

Firewall > Rules > WAN : cliquer sur « + Add »

  • Action : Pass
  • Interface : WAN
  • Protocol : UDP
  • Source : any
  • Destination : WAN address
  • Destination Port Range – Custom : 51820

Cliquer sur « Save » et valider « Apply Changes »

Firewall > Rules > WireGuard : cliquer sur « + Add »

  • Action : Pass
  • Interface : WireGuard
  • Protocol : Any
  • Source : any
  • Destination : any

Cliquer sur « Save » et valider « Apply Changes »


Redirection de port sur la Box, Routeur, Modem

Rediriger le port “UDP 51820” arrivant de l’IP WAN Publique vers pfSense pour autoriser le VPN client.

Exemple sur LiveBox 5

Exemple sur Draytek


Retour sur l’ordinateur Client

Cliquer sur « Activer » pour établir la connexion VPN

La connexion est établie. Le « Transfert » affiche un débit en réception et émission.


Configurer un VPN entre des sites distants (site-to-site)

Il est possible de concevoir un réseau VPN Site à Site en créant un serveur pfSense WireGuard sur chaque site distant.

Installer un (deuxième) serveur pfSense WireGuard sur le site distant puis le configurer :

Sélectionner “VPN“, “WireGuard” et cliquer sur + Add Tunnel

  • Cocher “Enabled
  • Entrer une Description (MAISON-VPN)
  • Adresse IP du Tunnel VPN au format CIDR : 10.210.0.200/24 (même plage réseau que le pfSense WireGuard Principal)
  • Port d’écoute : 51820  (port par défaut)
  • Cliquer sur “Generate” pour créer un nouvel ensemble de clés Privée et Publique

Copier coller la Clé Publique “Public key” (JL3p0Jd9FH…..) du Tunnel VPN dans un fichier texte et cliquer sur “Save

Cliquer sur le Stylo pour modifier le Tunnel VPN WireGuard et cliquer sur “+Add peer

  • Entrer une Description (Site to Site vers PC2S)
  • Endpoint : 217.178.212.123 (Adresse IP WAN Publique du Site Principal)
  • Endpoint Port : Laisser vide (Port : 51820 par défaut)
  • Keep Alive : Laisser vide. (Utile pour vérifier que le Tunnel VPN est toujours actif)
  • Public Key : Coller la “Clé Publique” du Serveur pfSense WireGuard Principal (VLc5wcXNU0…..)
  • Allowed IPs : 10.210.0.1/24, 192.168.2.0/24 (Adresse IP du WireGuard Principal et IP du réseau local du site Principal, au format CIDR)
  • Peer WireGuard Address : 10.210.0.1 (Adresse IP du WireGuard Principal)

Cliquer sur “Update

Cliquer sur “Save

Configurer les règles du Pare-Feu pfSense

La configuration du Pare-Feu du Serveur pfSense Distant est identique a celle de Serveur pfSense Principal.

Redirection de port sur la Box, Routeur, Modem

Rediriger le port “UDP 51820” arrivant de l’IP WAN Publique vers pfSense Distant pour autoriser le VPN Site to Site. A réaliser sur le Site Principal et le Site Distant.


Retour sur le Serveur pfSense WireGuard Principal > Sélectionner “VPN“, “WireGuard” > Cliquer sur le Stylo pour modifier et sur “+Add peer

  • Entrer une Description (Site to Site – MAISON)
  • Endpoint : 99.55.88.123 (Adresse IP WAN Publique du Site Distant)
  • Endpoint Port : Laisser vide (Port : 51820 par défaut)
  • Keep Alive : Laisser vide. (Utile pour vérifier que le Tunnel VPN est toujours actif)
  • Public Key : Coller la “Clé Publique” du Serveur pfSense WireGuard Distant (JL3p0Jd9FH…..)
  • Allowed IPs : 10.210.0.200/24, 192.168.3.0/24 (Adresse IP du WireGuard Distant et IP du réseau local du site Distant, au format CIDR)
  • Peer WireGuard Address : 10.210.0.200 (Adresse IP du WireGuard Distant)

Cliquer sur “Update

Cliquer sur “Save


Attribuer une Interface

Note : Ces étapes doivent être effectuées sur les deux sites (Principal et Distant).

Interfaces > Assignments

Sélectionnez l’interface WireGuard « wg0 » dans la liste des ports réseau disponibles.

Cliquer sur “+ Add” puis “Save

Cliquer sur « OPT1« 

Cocher « Enable » pour activer l’interface, et cliquer sur “Save

Valider “Apply Changes