Il y a quelques mois j’avais fait un article détaillant comment mettre en place un serveur VPN L2TP over IPsec sur un NAS Synology.
Récemment j’ai eu besoin de mettre en place le même protocole VPN, pour des clients mobile, en utilisant pfSense.
Nous allons donc voir comment configurer pfSense en tant que serveur VPN L2TP/IPsec.

Configuration IPsec

Nous allons commencer par configurer le serveur IPsec.
Dans pfSense on se rend dans VPN ➜ IPsec ➜ Mobile Clients.
Il faut cocher Enable IPsec Mobile Clients Support et l’authentification locale. Sauvegardez.
ipsec_mobileclients
Ensuite dans l’onglet Tunnels nous allons créer une nouvelle Phase 1 et la configurer comme ceci :
Key Exchange version : V1
Internet Protocol : IPv4
Interface : WAN
Authentification method : Mutual PSK
Negotiation Mode : Main
My Identifier : My IP address
Encryption Algorithm : AES 256 bits
Hash Algorithm : SHA1
DH Group : 14 (2048 bit)
Lifetime : 28800
NAT Traversal : Auto
Enable Dead Peer Detection
Delay : 10
Max failures : 5
ipsec_phase1
Désormais nous allons créer la Phase 2 associée à la première que nous venons de créer. Nous la configurerons de cette façon :
Mode : Transport
Protocol : ESP
Encryption Algorithms : AES 128 bits (UNIQUEMENT)
Hash Algorithms : SHA1 (UNIQUEMENT)
PFS key group : off
Lifetime : 3600
ipsec_phase2
Il nous reste alors à configurer la clé partagée, utilisée par les clients pour s’authentifier sur le serveur. Dans VPN ➜ IPsec ➜ Pre-Shared Keys on ajoute une nouvelle clé.
Identifier : allusers
Secret type : PSK
Pre-Shared Key : Une chaine alphanumérique de votre choix
ipsec_sharedkeys

Configuration L2TP

Maintenant que notre tunnel IPsec est configuré, nous allons y ajouter la surcouche L2TP.
On se rend à VPN➜L2TP et on paramètre les options comme ceci :
Enable : coché
Interface : WAN
Server address : Une adresse IP sur le LAN mais pas utilisée
Remote Address Range : Une adresse IP sur LAN non utilisée et ayant plusieurs adresses libres après elle ainsi qu’un masque associé au nombre de clients autorisés à se connecter.
Number of L2TP users : Nombre de clients acceptés en simultané en function du masque.
Secret : vide
Authentification type : CHAP
DNS server : au choix
J’ai un LAN en 10.1.2.0 /24. Je paramètre 10.1.2.199 en adresse serveur, 10.1.2.200 /29 pour le range client, et 6 en nombre de clients simultanés (masque 255.255.255.248).
l2tp_configuration
Dans l’onglet Users nous allons pouvoir gérer les utilisateurs qui auront le droit de se connecter au VPN. Il suffit de paramétrer un nom et un mot de passe.
l2tp_users

Firewall

Nous allons désormais créer les règles de pare-feu nécessaires pour autoriser le traffic VPN.
On se rend dans Firewall ➜ Rules ➜ IPsec on définit la règle suivante.
Protocol : any
Source : any
Destination : any
firewall_ipsec
Puis on se rend dans Firewall ➜ Rules ➜ L2TP et on définit la même règle si on souhaite autoriser tout le traffic aux clients. Sinon, c’est dans cet onglet que l’on définira des règles plus ou moins permissives suivant ce que l’on souhaite autoriser.
Il faudra par contre TOUJOURS autoriser la règle UDP port 1701 sur l’interface WAN.
firewall_l2tp
Nous voilà donc avec un serveur VPN L2TP/IPsec fonctionnel sur notre pfSense, permettant l’accès au LAN.