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.
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
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
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
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).
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.
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
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.
Nous voilà donc avec un serveur VPN L2TP/IPsec fonctionnel sur notre pfSense, permettant l’accès au LAN.