# 📚 Formation SD-WAN Fortinet – Jour 3 Jour 4 # 🛠️ TP 2 – VPN IPsec site-to-site ## 🎯 Objectif pédagogique Dans ce TP, nous allons configurer un tunnel VPN IPsec entre deux sites FortiGate (Branch1 et Branch2) afin de sécuriser les communications entre deux réseaux distants. C’est un cas d’usage courant pour interconnecter des agences à un siège social via Internet, tout en assurant la confidentialité des données échangées. --- ## 📚 Introduction théorique ### 🔐 Qu’est-ce qu’un VPN IPsec ? Un VPN IPsec permet d'établir un tunnel chiffré sur un réseau non sécurisé (ex : Internet) entre deux équipements. Ce tunnel protège l'intégrité, la confidentialité et l'authentification des paquets IP. ### 🧱 Architecture de base : - **FGT1 (Branch1)** : - WAN IP (port2) : `10.0.0.1/30` - LAN (port1) : `192.168.1.0/24` - **FGT2 (Branch2)** : - WAN IP (port2) : `10.0.0.2/30` - LAN : (port1) `192.168.2.0/24` ### 🔁 VPN IPsec se compose de deux phases : - **Phase 1 (IKE)** : Établissement du canal sécurisé initial entre les deux pare-feux (négociation de clés, authentification) - **Phase 2 (IPsec SA)** : Paramètres de chiffrement appliqués au trafic utilisateur, sélection des sous-réseaux protégés --- ## 🧰 Pré-requis techniques - Deux FortiGate opérationnels dans GNS3 ou autre lab - Interfaces WAN configurées (connectivité ping OK) - Interfaces LAN actives avec machines clientes derrière --- ## 🔧 Étape 1 – Configuration Phase 1 (IKE) ### Sur FGT1 (Branch1) : ```bash config vpn ipsec phase1-interface edit "FGT1-to-FGT2" set interface "port2" set remote-gw 10.0.0.2 set psksecret fortinet123 set proposal des-sha256 set dhgrp 14 set ike-version 2 set dpd on-idle set nattraversal enable next end ``` ### Sur FGT2 (Branch2) : ```bash config vpn ipsec phase1-interface edit "FGT2-to-FGT1" set interface "port2" set remote-gw 10.0.0.1 set psksecret fortinet123 set proposal des-sha256 set dhgrp 14 set ike-version 2 set dpd on-idle set nattraversal enable next end ``` ## 📌 Explication : - `remote-gw` : adresse publique du FortiGate distant - `psksecret` : mot de passe partagé pour authentification - `proposal` : algorithmes de chiffrement/authentification - `ike-version` : IKEv2 est plus sécurisé et rapide --- ## 🔧 Étape 2 – Configuration Phase 2 (SA IPsec) ### 🔐 Sur **FGT1** : ```bash config vpn ipsec phase2-interface edit "P2-FGT1" set phase1name "FGT1-to-FGT2" set dst-subnet 192.168.2.0/24 set src-subnet 192.168.1.0/24 set proposal des-sha256 next end ``` ### 🔐 Sur **FGT2** : ```bash config vpn ipsec phase2-interface edit "P2-FGT2" set phase1name "FGT2-to-FGT1" set dst-subnet 192.168.1.0/24 set src-subnet 192.168.2.0/24 set proposal des-sha256 next end ``` ## 📌 Explication : - `src-subnet` / `dst-subnet` : réseaux protégés - Le tunnel chiffre uniquement le trafic entre ces deux sous-réseaux - `proposal` : algorithmes de chiffrement ## 🔧 Étape 3 – Règles de sécurité ### 🔐 Sur **FGT1** : ```bash config firewall policy edit 10 set name "LAN_to_VPN" set srcintf "port1" set dstintf "FGT1-to-FGT2" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" next edit 11 set name "VPN_to_LAN" set srcintf "FGT1-to-FGT2" set dstintf "port1" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" next end ``` ### 🔐 Sur **FGT2** : ```bash config firewall policy edit 10 set name "LAN_to_VPN" set srcintf "port1" set dstintf "FGT2-to-FGT1" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" next edit 11 set name "VPN_to_LAN" set srcintf "FGT2-to-FGT1" set dstintf "port1" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" next end ``` ## 🔍 Étape 4 – Vérification du tunnel VPN Depuis **chaque FortiGate**, vérifier si le tunnel IPsec est bien établi. ### 🔧 En ligne de commande (CLI) : ```bash diagnose vpn tunnel list ``` ### 🖥️ Ou via l’interface graphique (GUI) : ## Connecter un Webterm sur le port1 Naviguer vers : `VPN > IPsec Tunnels > Monitor` ## 🌐 Étape 5 – Test de connectivité entre clients ### 🔍 Depuis un **client LAN1** (site FGT1) : ```bash ping 192.168.2.10 ``` ### 🔍 Depuis un client LAN2 (site FGT2) : ```bash ping 192.168.1.10 ``` ✅ **Résultat attendu** : - Le **tunnel VPN** est **actif** et **chiffré** - Les **clients des deux sites peuvent communiquer** entre eux (ping, accès applicatifs, etc.) - Le **trafic est sécurisé**, même en passant par **Internet** --- ## 📝 Remarques complémentaires – VDOMs & Haute Disponibilité ### 🧱 VDOMs – Virtual Domains Les **VDOMs** permettent de diviser un seul FortiGate en plusieurs instances logiques indépendantes. Chaque VDOM peut avoir ses propres interfaces, politiques, routes, utilisateurs, et être administré séparément. C’est une approche utile dans les environnements mutualisés (hébergeurs, grandes entreprises), ou lorsqu’on veut **isoler des entités** (par exemple : un réseau invité, un prestataire, une filiale) sans utiliser plusieurs équipements physiques. --- ### 🌀 HA – Haute Disponibilité La **haute disponibilité** (High Availability – HA) consiste à déployer deux FortiGate (ou plus) en **cluster**, afin de garantir la **continuité de service** même en cas de panne d’un équipement. Le mode **Active-Passive** est le plus courant : un FortiGate principal traite le trafic, pendant que l’autre est en veille, prêt à prendre le relais instantanément en cas de défaillance. Cette capacité est cruciale pour les infrastructures critiques. --- ## ❓ Quiz – FortiGate Infrastructure : VDOMs, VPN, HA ### 1. Quel est le principal avantage d’un VDOM sur FortiGate ? A. Séparer les VLANs B. Segmenter les interfaces dans différents firewalls logiques C. Activer le mode transparent D. Améliorer les performances CPU <details> <summary>💡 Voir la réponse</summary> ✅ **Bonne réponse : B** 👉 Les VDOMs permettent de virtualiser plusieurs firewalls indépendants dans un seul FortiGate physique. Chaque VDOM peut avoir sa propre configuration, ses interfaces, ses politiques de sécurité, et ses routes. </details> --- ### 2. Quel protocole est utilisé pour négocier un tunnel IPsec ? A. TLS B. L2TP C. IKE D. PPPoE <details> <summary>💡 Voir la réponse</summary> ✅ **Bonne réponse : C** 👉 Le protocole IKE (Internet Key Exchange) est utilisé dans les phases 1 et 2 pour établir et sécuriser un tunnel IPsec. </details> --- ### 3. Dans un cluster HA Active-Passive, que se passe-t-il si le nœud principal tombe ? A. Les deux FortiGate redémarrent B. Le trafic est interrompu C. Le FortiGate secondaire devient actif automatiquement D. Le cluster est désactivé <details> <summary>💡 Voir la réponse</summary> ✅ **Bonne réponse : C** 👉 Le FortiGate secondaire prend automatiquement le relais si le nœud principal devient indisponible. C’est le principe de la redondance en HA Active-Passive. </details> --- ### 4. À quoi sert l’option `session-pickup enable` dans un cluster HA ? A. Répartir la charge réseau B. Garder les connexions actives après un failover C. Sécuriser le mode transparent D. Supprimer les logs au redémarrage <details> <summary>💡 Voir la réponse</summary> ✅ **Bonne réponse : B** 👉 Cette option permet de maintenir les sessions réseau en cours, évitant les coupures après un basculement HA. </details> --- ### 5. L’interface `hbdev` dans une configuration HA est utilisée pour : A. La gestion d’un tunnel VPN B. Le clustering de VLAN C. La synchronisation des logs D. Les battements de cœur entre nœuds <details> <summary>💡 Voir la réponse</summary> ✅ **Bonne réponse : D** 👉 `hbdev` est l’interface dédiée aux heartbeats (battements de cœur) entre les membres du cluster. Elle permet de détecter les pannes et de déclencher un failover. </details> ---