PfSense : tunnel IPSec
De wikiGite
Sommaire
Configuration
S'assurer qu'IPSec est lancé des 2 côtés. Sur PFSense :
VPN > IPSEC > onglet Tunnels
cocher "Enable IPsec" et sauver.
Phase 1
touche "+" à gauche pour générer la phase 1 (routage + authentification)
- donner l'IP du routeur/firewall distant
- générer une "pre-shared key" : une phrase secrète suffisamment longue (mini 20 car.). Elle doit être identique des 2 côté, donc idéalement récupérer celle que le client a généré sur son routeur. Ou générer ici par exemple :http://www.kurtm.net/wpa-pskgen/.
- choisir le cryptage 3DES pour plus de compatibilité avec d'autres routeurs
laisser le reste par défaut
- sauver
Phase 2
Réseau à réseau - accès direct
Pour un accès sans translation d'adresses (NAT), par exemple, un réseau client 192.168.1.0/24 veut accéder au réseau 192.168.0.0/24 local.
réseau client ---> routeur <-----> Internet <------> PFSense <--- réseau local
192.168.1.0/24 <--------------------------------------------------------------> 192.168.0.0/24
A partir de son réseau 192.168.1.xx, le client accès au serveur par 192.168.0.xx
Sur l'onglet Tunnels, cliquer sur "+" (à côté de "- Show 0 Phase-2 entries") pour générer la phase 2 (le VPN lui-même), puis "+" à droite sur la nouvelle ligne créée
- indiquer dans "Local network" :
- soit "LAN subnet" pour un accès total réseau à réseau
- soit "Address" avec l'IP d'un serveur qui sera seul accessible à partir de l'autre réseau
- indiquer la plage du réseau LAN de l'autre réseau (Remote network)
- choisir le cryptage 3DES
- dans Hash algorithms laisser SHA1
- dans PFS key group chois "2 (1024 bits)"
- Sauver
Réseau à réseau - accès NATé
Pour un accès avec translation d'adresses (NAT), par exemple, un réseau client 192.168.0.0/24 veut accéder au réseau 192.168.0.0/24 local, impossible car ce sont les mêmes plages. Ou bien, on veut que chaque client accède au réseau (ou un serveur) local par une plage 172.16 différente pour chacun.
réseau client ---> routeur <------> Internet <-------> PFSense <--- réseau local
192.168.0.0/24 <-------------------------------------------> NAT 192.0 <-------> 192.168.0.0/24
A partir de son réseau 192.168.0.xx, le client accède au serveur par 172.16.0.xx (les IPs sont NATées 1 pour 1, c'est à dire que l'IP 172.16.0.1 correspondra à 192.168.0.1. C'est pourquoi le masque de la plage NAT (172.16) doit correspondre à la plage du réseau local (192.168), ici /24.
Sur l'onglet Tunnels, cliquer sur "+" pour générer la phase 2, puis "+" à droite sur la nouvelle ligne créée
- indiquer dans "Local network" :
- soit "LAN subnet" pour un accès total réseau à réseau
- soit "Address" avec l'IP d'un serveur qui sera seul accessible à partir de l'autre réseau
- indiquer dans le deuxième champ de Local network la plage ou l'adresse IP NATée (attention à donner le même masque que le LAN)
- indiquer la plage du réseau LAN de l'autre réseau (Remote network)
- choisir le cryptage 3DES
- dans Hash algorithms laisser SHA1
- dans PFS key group chois "2 (1024 bits)"
- Sauver
Règle firewall
Si on doit autoriser les réseaux distants à se connecter au réseau local, créer une règle pour IPSec :
Firewall > Rules > onglet IPSec (n'apparait que si "Enable IPSec" a été coché)
Créer une règle source "any" vers destination "any" (donc tout par défaut)
Si personne n'est sensé se connecter de l'extérieur (seul les serveur local utilisent le VPN pour se connecter au réseau du client), il suffit de ne pas créer de règle à ce niveau. Ainsi, aucun trafic entant ne sera autorisé.
Dans Status > IPSec, vérifier que le VPN est connecté. Sinon le relancer avec le bouton à droite
Ressources
https://doc.pfsense.org/index.php/Routing_internet_traffic_through_a_site-to-site_IPsec_tunnel
http://www.cyberciti.biz/faq/howto-site-to-site-ipsec-vpn-between-cisco-openbsd-router-pfsense/