Routed IPsec (VTI) with pfsense

De Linux Server Wiki
Aller à la navigation Aller à la recherche


Cette nouvelle fonctionnalité, disponible depuis pfsense 2.4.4, permet de s'affranchir de la définition des (parfois très nombreuses) associations d'IPs au niveau de la configuration des Phases 2 IPsec. Avec VTI, on ne défini qu'une seule Phase 2, puis on gère les subnets ou IPs à diriger vers le tunnel IPsec avec la table de routage de pfsense.

Il vous faut définir un network de transit. Typiquement on peut utiliser un /30 étant donné qu'on a besoin que de deux IPs (une pour chaque extrémité du lien IPsec). Dans ce exemple nous allons utiliser 10.6.6.1/30.

Configuration IPsec Phase 2

Sur Node1, créez une entrée IPsec Phase 2 avec :

  • Mode : Routed (VTI)
  • Local Network : Network with range 10.6.6.1/30
  • Remote Network : 10.6.6.2
  • Configurez la section Proposal comme vous le souhaitez.
  • Cliquez sur Save puis Apply Changes

Sur Node2, créez une entrée IPsec Phase 2 en miroir :

  • Mode : Routed (VTI)
  • Local Network : Network with range 10.6.6.2/30
  • Remote Network : 10.6.6.1
  • Configurez la section Proposal comme sur Node1.
  • Cliquez sur Save puis Apply Changes

Attribution d'une interface

Sur Node1 et Node2 :

  • Cliquez sur Interfaces > Assignments
  • Sélectionnez l'interface ipsec1000 dans la liste Available Network Ports puis cliquez sur Add. Notez l'interface créée (OPTx).
  • Cliquez sur Interfaces > OPTx
  • Cochez la case Enable et donnez un nom plus précis à l'interface au champ Description.
  • Vous pouvez laisser les autres champs tel quel.
  • Cliquez sur Save puis Apply Changes

Sur le dashboard pfsense, vous devriez voir apparaître l'interface avec l'adresse ip locale du tunnel, ainsi qu'une gateway (qui correspond à l'adresse IP distante du tunnel).

Routage

Cliquez sur System > Routing puis Static Routes.

Sur Node1 :

  • Cliquez sur Add
  • Au champ Destination network, entrez le range du network LAN de Node2
  • Au champ Gateway, sélectionnez la gateway IPsec (elle a le même nom que l'interface que vous avez créez suffixé de _VTIV4)
  • Cliquez sur Save puis Apply


Sur Node2 :

  • Cliquez sur Add
  • Au champ Destination network, entrez le range du network LAN de Node1
  • Au champ Gateway, sélectionnez la gateway IPsec (elle a le même nom que l'interface que vous avez créez suffixé de _VTIV4)
  • Cliquez sur Save puis Apply

Redirection de trafic (Policy Routing)

Vous pouvez forcer le trafic d'une IP du LAN de Node1 à transiter jusqu'à Node2 et pourquoi pas ensuite aller sur internet à partir de Node2.

Sur Node1 :

  • Créez une règle Firewall LAN, définissez les différents champs comme vous le souhaitez pour matcher le traffic voulu.
  • En bas de la page, cliquez sur Display Advanced.
  • Définissez le champ Gateway sur la gateway de votre tunnel IPsec
  • Cliquez sur Save puis Apply

A ce stade, le trafic ira jusqu'à Node2 et sortira sur internet depuis l'IP WAN de Node2 a condition que le NAT sortant de Node2 soit bien configuré en mode Automatic ou Hybrid.

Si ce n'est pas le cas, sur Node2 :

  • Cliquez sur Firewall > NAT puis Outbound
  • Sélectionnez soit Automatic outbound NAT rule generation soit Hybrid Outbound NAT rule generation
  • Cliquez sur Save.

En mode Automatic, pfsense créé une règle NAT sortante pour toutes les routes attribuées à une gateway IPsec. Le mode hybrid fonctionne comme le mode automatique, mais permet également d'ajouter des règles personnalisés (qui sont traitées avant les règles automatiques)

Firewall du tunnel IPsec

Notez que la gestion du firewall pour l'ensemble de vos tunnels IPsec se fait par défaut dans l'onglet IPsec du firewall (il n'y a pas d'onglet spécifique à l'interface que vous avez créé).

Cela peut se modifier dans la configuration Advanced Settings de IPsec en modifiant l'option IPsec Filter Mode