« Routed IPsec (VTI) with pfsense » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Ligne 57 : Ligne 57 :


Sur Node1 :
Sur Node1 :
* Créez une règle Firewall LAN, définissez les différents champs comme vous le souhaitez.
* 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.
* En bas de la page, cliquez sur Display Advanced.
* Définissez le champ Gateway sur la gateway de votre tunnel IPsec
* Définissez le champ Gateway sur la gateway de votre tunnel IPsec

Version du 30 décembre 2019 à 23:51


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 Automatic outbound NAT rule generation.
  • Cliquez sur Save.
  • Par défaut, en mode Automatic, pfsense créé une règle NAT sortante pour toutes les routes attribuées à une gateway IPsec.

Firewall du tunnel IPsec

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