WireGuard - PfSense (VPN)

Environnement

  • PfSense 2.5.2 avec le paquet WireGuard installé
  • Ubuntu 20.04

Installation

Côté PfSense

Aller dans VPN -> WireGuard -> Tunnels et créer le tunnel VPN :

  • Tunnel Enabled : x
  • Description : WireGuard
  • Listen Port : 51820
  • Interface Keys : clé-privée-du-serveur / clé-publique-du-serveur
  • Interface Addresses : 10.0.0.1/24

Côté client (ici Ubuntu 20.04)

Installer le client WireGuard :

sudo apt update
sudo apt install wireguard

Générer la paire de clés :

sudo mkdir -p /etc/wireguard/clients
wg genkey | sudo tee /etc/wireguard/clients/client01.key | wg pubkey | sudo tee /etc/wireguard/clients/client01.key.pub

Créer le fichier de configuration :

sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = clé-privé-du-client
Address = 10.0.0.123

[Peer]
PublicKey = clé-publique-du-serveur
Endpoint = ip-routeur-pfsense:51820
AllowedIPs = 0.0.0.0/0

Côté PfSense

Aller dans VPN -> WireGuard -> Peers et créer un utilisateur :

  • Peer Enabled : x
  • Tunnel : tun_wg0 (WireGuard)
  • Description : WireGuard
  • Dynamic Endpoint : x
  • Public Key : clé-publique-du-client
  • Allowed IPs : 10.0.0.123/32

Aller dans Firewall -> Rules -> WAN et ajouter la règle suivante :

  • Action : Pass
  • Interface : WAN
  • Address Family : IPv4
  • Protocol : UDP
  • Source : any
  • Destination : WAN address
  • Destination Port Range : 51820
  • Description : WireGuard VPN admin

Aller dans Firewall -> Rules -> WireGuard et ajouter la règle suivante :

  • Action : Pass
  • Interface : WireGuard
  • Address Family : IPv4
  • Protocol : any
  • Source : any
  • Destination : any
  • Description : WireGuard VPN admin

Côté client

Démarrer le VPN :

sudo wg-quick up wg0

Déboguage

Activer la journalisation au niveau du noyau :

echo 'module wireguard +p' | sudo tee /sys/kernel/debug/dynamic_debug/control

Afficher les journaux :

sudo dmesg -wH

Désactiver la journalisation au niveau du noyau :

echo 'module wireguard -p' | sudo tee /sys/kernel/debug/dynamic_debug/control

Sources

https://docs.netgate.com/pfsense/en/latest/vpn/wireguard/index.html

https://www.youtube.com/watch?v=mXG0RShQbaw

https://www.the-digital-life.com/wireguard-enable-logging/