Mise en place et exploitation du VPN IPsec entre le site de BETHUNE (Netgate / pfSense Plus CAPSENSE01P) et le siège CAPEONI Saint-Quentin (Sophos XGS 116, site « RASPAIL » dans les objets du firewall).
Page rédigée à partir des sessions de mise en service des 21 et 24 août 2026, puis vérifiée sur les deux équipements le 04/09/2026 : configuration relevée et captures prises sur le Netgate BETHUNE et sur le Sophos XGS.
| Site | Équipement | Rôle IKE | IP publique | Identité IKE (FQDN) |
|---|---|---|---|---|
| CAPEONI Saint-Quentin | Sophos XGS 116, SFOS 22 MR1 | Répondeur (Répondre uniquement), écoute sur Port3 |
195.135.11.50 |
vpn-rsp.capeoni.io |
| BETHUNE | Netgate CAPSENSE01P, pfSense Plus 26.07 |
Initiateur | 157.143.192.110/30 (interface SEWAN, VLAN 4090) |
vpn-bethune.capeoni.io |
Les identités IKE sont des chaînes de type FQDN. Elles n'ont pas besoin d'exister dans le DNS : elles servent uniquement à identifier chaque site lors de l'authentification IKEv2 (voir § 6).
| Côté | Réseau | Objet Sophos | Alias pfSense | Remarque |
|---|---|---|---|---|
| Saint-Quentin | 10.62.0.0/24 |
RANGE_ADM_RASPAIL (doublon : VLAN1_RANGE) |
RASPAIL_VLANADM |
Administration, dont le XGS 10.62.0.254 |
| Saint-Quentin | 172.20.50.0/24 |
VLAN50_SRV |
RASPAIL_VLAN50 |
Serveurs |
| Saint-Quentin | 172.59.77.0/24 |
RANGE_LAN_TECHCREA |
RASPAIL_VLAN77 |
LAN Techcréa, héberge notamment le Wiki |
| BETHUNE | 10.61.110.0/24 |
BETH_VLAN110 |
interface VLAN110 (10.61.110.254/24) |
LAN utilisateurs BETHUNE |
Le tunnel est basé sur les stratégies (policy-based) : une Phase 1 unique et une Phase 2 par couple de réseaux, soit trois Phase 2 (10.61.110.0/24 vers chacun des trois réseaux de Saint-Quentin). L'alias pfSense RASPAIL_VLAN110 (172.22.110.0/24, VLAN 110 de Saint-Quentin) existe mais n'est pas transporté par le tunnel.
Les objets Sophos
RANGE_ADM_RASPAILetVLAN1_RANGEdésignent tous deux10.62.0.0/24. Les connexions IPsec utilisent le premier, les règles de pare-feu le second. Ça fonctionne, mais un seul objet serait plus lisible.
BETHUNE CAPEONI Saint-Quentin
10.61.110.0/24 (VLAN110) 10.62.0.0/24
| 172.20.50.0/24
[Netgate pfSense] 157.143.192.110 ==== IKEv2 / ESP ==== 195.135.11.50 [Sophos XGS 116]
vpn-bethune.capeoni.io (Internet, UDP/500, 4500) vpn-rsp.capeoni.io 172.59.77.0/24
Initiateur Répondeur (Port3)
| |
P1 con1 ─┬─ P2 con1_1 : 10.61.110.0/24 <-> 172.20.50.0/24 FROM_BETHUNE_VLAN50_SRV
├─ P2 con1_2 : 10.61.110.0/24 <-> 10.62.0.0/24 FROM_BETHUNE
└─ P2 con1_3 : 10.61.110.0/24 <-> 172.59.77.0/24 FROM_BETHUNE_VLAN77
Valeurs configurées sur les deux équipements et effectivement négociées.
| Paramètre | Phase 1 (IKE) | Phase 2 (ESP) |
|---|---|---|
| Version | IKEv2 | Mode tunnel, IPv4 |
| Chiffrement | AES-256 (CBC) | AES-256 (CBC) |
| Intégrité / hash | SHA2-512 | SHA2-512 |
| PRF | HMAC-SHA2-512 (pfSense : sélection manuelle désactivée, le PRF suit le hash) | – |
| Groupe DH | 14 (MODP 2048) | PFS : groupe 14 (MODP 2048) |
| Durée de vie de la clé | 86400 s (les deux côtés) | 86400 s (les deux côtés) |
| Renégociation | Sophos : marge de 360 s avant expiration, aléa 50 % · pfSense : Rekey Time 360 s, Rand 50 s | idem |
| Reauth | désactivé | – |
| DPD | Sophos : toutes les 30 s, attente 120 s, action Réinitialiser · pfSense : délai 30 s, 5 échecs | – |
| NAT Traversal | Auto (pfSense) | – |
| MOBIKE | désactivé (pfSense) | – |
| Authentification | Clé prépartagée (PSK) | – |
Côté Sophos, ces paramètres sont portés par le profil IPsec Pfsense (Profils → Profils IPsec). Ce profil est partagé par les six connexions vers des Netgate (BETHUNE et BETHUNE_HOME) : ne pas le modifier pour un site sans vérifier l'impact sur les autres.

Point d'attention, valeur 360 s. Sur le Sophos, « Délai avant nouvelle négociation des clés = 360 » est une marge : la clé est renégociée 360 s avant la fin des 86400 s. Sur pfSense, « Rekey Time = 360 » signifie renégocier 360 s après l'établissement. La même valeur a été reportée d'un équipement à l'autre alors que les deux champs n'ont pas le même sens. Résultat : pfSense, initiateur, renégocie l'IKE SA et chaque Child SA toutes les 6 minutes (compteur d'IKE SA à #371 le 04/09). Pas bloquant, mais inutile et bruyant dans les logs. Correction proposée : sur pfSense, vider Rekey Time (P1 et les trois P2) pour revenir au défaut de 90 % du Life Time. À faire en concertation, hors production.
Menu : CONFIGURER → VPN site-à-site → onglet IPsec.
Le Sophos n'accepte qu'un seul sélecteur de trafic par Phase 2. Il faut donc créer une connexion IPsec par réseau local de Saint-Quentin, toutes avec les mêmes paramètres de passerelle et la même PSK. Seul le champ Sous-réseau local change.
| Connexion | Sous-réseau local | Sous-réseau distant |
|---|---|---|
FROM_BETHUNE |
RANGE_ADM_RASPAIL (10.62.0.0/24) |
BETH_VLAN110 (10.61.110.0/24) |
FROM_BETHUNE_VLAN50_SRV |
VLAN50_SRV (172.20.50.0/24) |
BETH_VLAN110 |
FROM_BETHUNE_VLAN77 |
RANGE_LAN_TECHCREA (172.59.77.0/24) |
BETH_VLAN110 |
État le 04/09/2026 : les trois connexions BETHUNE actives et connectées (vert). Les trois connexions FROM_BETHUNE_HOME* du même écran étaient actives mais non connectées (rouge).

Paramètres généraux
| Champ | Valeur |
|---|---|
| Version IP | IPv4 |
| Type de connexion | Basé sur les stratégies |
| Type de passerelle | Répondre uniquement |
| Activer lors de l'enregistrement | coché |
| Créer une règle de pare-feu | non coché (règles gérées à part, § 3.3) |
Chiffrement
| Champ | Valeur |
|---|---|
| Profil | Pfsense |
| Type d'authentification | Clé prépartagée |
| Clé prépartagée | PSK BETHUNE (dans le coffre, jamais dans la doc) |
Paramètres de la passerelle
| Champ | Passerelle locale | Passerelle à distance |
|---|---|---|
| Interface d'écoute / Adresse | Port3 - 195.135.11.50 |
157.143.192.110 |
| Type d'identifiant | DNS |
DNS |
| Identifiant | vpn-rsp.capeoni.io |
vpn-bethune.capeoni.io |
| Sous-réseau | selon la connexion (§ 3.1) | BETH_VLAN110 |
| NAT | non coché | – |


Menu : PROTÉGER → Règles et stratégies, groupe de règles VPN RULES FROM BETH. Le trafic du tunnel arrive dans la zone VPN ; sans règle, rien ne passe une fois le tunnel monté.
| # | Règle | Zones source | Réseaux source | Zones destination | Réseaux destination | Services | Action |
|---|---|---|---|---|---|---|---|
| 24 | FROM_BETHUNE |
VPN | BETH_VLAN110, BETH_HOME_VLAN1 |
LAN, DMZ | VLAN1_RANGE, VLAN50_SRV, RANGE_LAN_TECHCREA |
Tous | Accepter |
| 25 | TO_BETHUNE |
LAN, DMZ | VLAN1_RANGE, VLAN50_SRV, RANGE_LAN_TECHCREA |
VPN | BETH_VLAN110, BETH_HOME_VLAN1 |
Tous | Accepter |
Ces règles couvrent aussi le site BETHUNE_HOME (BETH_HOME_VLAN1 = 10.70.0.0/24). Journalisation désactivée sur la règle 24. Aucune restriction de service : à durcir si le besoin métier le permet.



Équipement : CAPSENSE01P.capeoni.io, pfSense Plus 26.07 (strongSwan 6.0.7). Relevé du 04/09/2026.
Menu : VPN → IPsec → Tunnels → Ajouter P1 (ou crayon sur la P1 existante).

| Champ | Valeur |
|---|---|
| Description | VPN TO CAPEONI STQ |
| Version de l'échange de clés | IKEv2 |
| Protocole Internet | IPv4 |
| Interface | SEWAN (WAN, 157.143.192.110) |
| Passerelle distante | 195.135.11.50 |
| Méthode d'authentification | PSK Mutuel |
| Mon identifiant | Fully qualified domain name → vpn-bethune.capeoni.io |
| Identifiant de pair | Fully qualified domain name → vpn-rsp.capeoni.io |
| Clé pré-partagée | PSK BETHUNE, strictement identique à celle du Sophos |
| Algorithme de chiffrement | AES 256 bits / SHA512 / DH 14 (2048 bit) |
| Life Time / Rekey Time / Reauth / Rand | 86400 / 360 / 0 / 50 (voir point d'attention § 2) |
| Child SA Start / Close Action | Par défaut |
| NAT Traversal | Auto |
| MOBIKE | Désactiver |
| Connexions partagées (Split connections) | Coché, indispensable, voir § 6.3 |
| PRF Selection | non coché |
| Détection des pairs morts | activée, délai 30 s, 5 échecs |

Dans pfSense Plus 26.07, l'option Connexions partagées se trouve dans le formulaire de la Phase 1 (section Options avancées), et non dans Paramètres avancés de l'onglet IPsec.
Menu : VPN → IPsec → Tunnels → Afficher les entrées de phase 2 → Ajouter P2, trois fois.
| ID | Sous-réseau local | Sous-réseau distant |
|---|---|---|
| 1 | VLAN110 subnet (10.61.110.0/24) |
172.20.50.0/24 |
| 2 | VLAN110 subnet |
10.62.0.0/24 |
| 3 | VLAN110 subnet |
172.59.77.0/24 |
Paramètres communs :
| Champ | Valeur |
|---|---|
| Mode | Tunnel IPv4 |
| Traduction NAT/BINAT | Aucun |
| Protocole | ESP |
| Algorithmes de chiffrement | AES 256 bits (uniquement) |
| Algorithmes de hachage | SHA512 (uniquement) |
| Groupe de clés PFS | 14 (2048 bit) |
| Life Time / Rekey Time / Rand | 86400 / 360 / 50 |
| Keep Alive | désactivé, pas d'hôte à pinger |

Terminer par Appliquer les modifications.
Menu : Pare-feu → Règles → onglet IPsec. Ces règles filtrent le trafic entrant par le tunnel (initié depuis Saint-Quentin). Le sens BETHUNE → Saint-Quentin est couvert par la règle par défaut de l'onglet VLAN110 (« Default allow LAN to any »), et le trafic retour passe par les états.
État relevé le 04/09/2026 :
| Action | Source | Destination |
|---|---|---|
| Pass | VLAN110 address |
RASPAIL_VLANADM |
| Pass | RASPAIL_VLAN50 |
VLAN110 address |
| Pass | VLAN110 address |
RASPAIL_VLAN50 |
| Pass | VLAN110 address |
RASPAIL_VLAN77 |

Point d'attention : ces quatre règles utilisent
VLAN110 address(l'IP du pfSense,10.61.110.254) et nonVLAN110 subnet. Leurs compteurs d'états sont à 0, et la règle SophosTO_BETHUNEaffiche 0 octet. En pratique, aucune machine de Saint-Quentin ne peut initier une connexion vers un poste de BETHUNE ; seul le trafic initié depuis BETHUNE fonctionne. Si l'accès Saint-Quentin → BETHUNE est voulu (prise en main, supervision), remplacerVLAN110 addressparVLAN110 subnetdans la règle sourceRASPAIL_VLAN50, l'étendre aux deux autres réseaux, et supprimer les règles dont la source estVLAN110 address(sans effet sur l'interface IPsec).
Alias utilisés (Pare-feu → Alias) : RASPAIL_VLANADM = 10.62.0.0/24, RASPAIL_VLAN50 = 172.20.50.0/24, RASPAIL_VLAN77 = 172.59.77.0/24.
VPN RULES FROM BETH, activer.con1_1, con1_2, con1_3 en Installed.FROM_BETHUNE-1 avec le pair 157.143.192.110. Si un autre nom de connexion apparaît, voir § 6.1.10.61.110.x, ping d'une machine dans chacun des trois réseaux. Un état Installed avec des compteurs à 0 octet ne prouve pas que le trafic passe (règles de pare-feu).État observé le 04/09/2026 : P1 Established, trois Child SA Installed, trafic effectif sur 10.62.0.0/24 et 172.59.77.0/24, aucun trafic sur 172.20.50.0/24 au moment du relevé.

Incident du 20/08/2026 : l'ajout du site BETHUNE_HOME (IP dynamique, passerelle distante *) a fait tomber le tunnel BETHUNE, sans aucune modification de celui-ci. Symptôme : AUTHENTICATION_FAILED renvoyé par le Sophos après une Phase 1 cryptographiquement correcte.
Cause : en IKEv2, le répondeur doit répondre à IKE_SA_INIT avant de connaître l'identité du pair (elle n'arrive, chiffrée, qu'à IKE_AUTH). Une connexion en * entre en concurrence avec les connexions à IP fixe sur la même interface. Le Sophos a rattaché la demande de 157.143.192.110 à FROM_BETHUNE_HOME, donc à la mauvaise PSK.
Règle retenue pour tous les tunnels vers Netgate sur ce XGS :
DNS : vpn-rsp.capeoni.io (commun à toutes les connexions).DNS : vpn-<site>.capeoni.io, unique par site.Après un changement d'identifiants, si AUTHENTICATION_FAILED persiste alors que le Log viewer Sophos affiche bien la bonne connexion, ressaisir la PSK des deux côtés avant de chercher ailleurs. C'est ce qui a rétabli BETHUNE le 21/08/2026.
Attention : le formulaire Phase 1 de pfSense affiche la PSK en clair. Ne pas faire de capture de cet écran sans la masquer.
Par défaut, pfSense regroupe toutes les Phase 2 d'une même Phase 1 dans un seul Child SA avec plusieurs sélecteurs de trafic. Le Sophos ne retient alors qu'un seul réseau : un seul des trois réseaux de Saint-Quentin est joignable, les deux autres apparaissent en no match dans les logs strongSwan. Avec l'option cochée, pfSense génère un Child SA distinct par Phase 2, ce que le Sophos attend. Regrouper les réseaux dans une seule connexion Sophos ne résout pas le problème.
pfSense annonce PRF_HMAC_SHA2_512 avec SHA512. Un NO_PROPOSAL_CHOSEN dès IKE_SA_INIT alors que le Sophos répond bien signifie un désaccord de Phase 1 (chiffrement, hash, PRF ou DH), pas un problème réseau.
Voir § 2. Ne pas recopier telle quelle la valeur « 360 » du profil Sophos dans le champ Rekey Time de pfSense.
proposal matches apparaît dans les logs, ne pas toucher aux algorithmes.157.143.192.110.5. Device Management → 3. Advanced Shell :tail -f /log/strongswan.log
swanctl) :swanctl --list-sas
swanctl --list-conns
| Message | Signification |
|---|---|
received NO_PROPOSAL_CHOSEN notify error (dans IKE_SA_INIT) |
Désaccord Phase 1 : chiffrement, hash, PRF ou groupe DH. |
selected proposal: IKE:AES_CBC_256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_2048 |
Phase 1 crypto OK. |
received AUTHENTICATION_FAILED notify error |
Mauvaise connexion sélectionnée côté Sophos (identifiants) ou PSK différente. Vérifier le nom de connexion dans le Log viewer Sophos. |
authentication of 'vpn-bethune.capeoni.io' (myself) with pre-shared key |
Le Netgate présente bien son identité FQDN. |
config: X, received: Y => no match |
Sélecteur de trafic refusé : Connexions partagées décoché ou réseau absent d'une connexion Sophos. |
CHILD_SA con1_x{...} established with SPIs ... and TS 10.61.110.0/24 === ... |
Phase 2 montée. |
IKE_SA con1[n] state change: ESTABLISHED => DESTROYING |
Tunnel tombé (DPD, rekey échoué, suppression distante). |
Côté Sophos, le message Couldn't authenticate the remote gateway. Check the authentication settings on both devices. (Remote: 157.143.192.110) précédé d'un nom de connexion inattendu signale un conflit d'identifiants (§ 6.1).
| Date | Évènement |
|---|---|
| 20/08/2026 22:05 | Chute du tunnel BETHUNE suite à l'ajout des connexions BETHUNE_HOME (passerelle *). |
| 21/08/2026 16:43 | Rétablissement après passage aux identifiants FQDN sur les deux sites et ressaisie de la PSK. |
| 24/08/2026 14:32 | Sur BETHUNE_HOME : correction Phase 1 (PRF) puis activation de Connexions partagées, trois Child SA montées. Procédure alignée pour BETHUNE. |
| 04/09/2026 | Relevé de la configuration réelle sur le Netgate BETHUNE et le Sophos XGS, captures, points d'attention (Rekey Time 360 s, règles IPsec pfSense en VLAN110 address, connexions BETHUNE_HOME non connectées). |