Projet GSB : Guide d’implémentation complète d’un pare-feu PFSense
Introduction
Ce document décrit pas à pas la réalisation du projet GSB : segmentation d’un réseau en trois zones (WAN, LAN, DMZ) et sécurisation via un pare-feu PFSense 2.7.2. L’objectif est de déployer un site web en DMZ, une base de données en LAN, et de gérer les flux entre Internet (WAN) et l’infrastructure interne.
1. Prérequis
- Matériel/Virtualisation : PC ou serveur pouvant héberger plusieurs VM, ou ESXi/VirtualBox.
- Images ISO :
- Ubuntu Server 22.04 (pour Web, BDD, Dev)
- Lubuntu 22.04 (pour client visiteur)
- PFSense 2.7.2
- Outils : Rufus ou Ventoy, WinSCP, PuTTY.
- Accès Internet pour télécharger les ISO et les paquets.
2. Architecture réseau
Topologie
3. Configuration des VM
Pour chaque VM : créer une machine en mode pont, allouer 2 Go RAM, 1 vCPU, 20 Go disque.
3.1 Client visiteur (Lubuntu)
- Installer Lubuntu 22.04.
- Configurer l’IP statique :
sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: false
addresses: [100.200.20.100/24]
gateway4: 100.200.20.254
nameservers:
addresses: [8.8.8.8]
sudo netplan apply
- Vérifier :
ping 100.200.20.254
.
3.2 Serveur Web (Ubuntu)
- Installer Ubuntu Server 22.04.
- Configurer IP statique en DMZ :
sudo nano /etc/netplan/00-installer-config.yaml
sudo netplan apply
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.20.1/24]
gateway4: 192.168.20.254
nameservers:
addresses: [8.8.8.8]
- Installer le serveur LAMP minimal :
sudo apt update && sudo apt install apache2 php libapache2-mod-php php-mysql mariadb-client -y
- Transférer le code du site via WinSCP vers
/var/www/html/gsb/
. - Ajuster la config : modifier
class.pdogsb.inc.php
pour remplacer l’IP BDD par 10.1.20.1. - Tester localement :
http://192.168.20.1/gsb/
.
3.3 Serveur BDD (Ubuntu)
-
Installer Ubuntu Server 22.04.
-
Configurer IP statique en LAN :
sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: false
addresses: [10.1.20.1/24]
gateway4: 10.1.20.254
nameservers:
addresses: [8.8.8.8]
-
Installer MariaDB :
sudo apt update && sudo apt install mariadb-server -y
-
Autoriser accès distant : éditer
/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
-
Puis redémarrer MariaDB :
sudo systemctl restart mariadb
-
Accéder à la console de gestion de MariaDB :
sudo mysql
-
Créer les comptes SQL :
CREATE USER 'web'@'192.168.20.1' IDENTIFIED BY 'eleve';
CREATE USER 'dev'@'10.1.20.2' IDENTIFIED BY 'eleve';
GRANT ALL ON gsb_frais.* TO 'web'@'192.168.20.1';
GRANT ALL ON gsb_frais.* To 'dev'@'10.1.20.2';
FLUSH PRIVILEGES;
3.4 Machine Développeur (Ubuntu)
-
Installer Ubuntu Server 22.04.
-
Configurer IP :
sudo nano /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: false
addresses: [10.1.20.2/24]
gateway4: 10.1.20.254
nameservers:
addresses: [10.1.20.1]
-
sudo netplan apply
-
Installer client MariaDB :
sudo apt update && sudo apt install mariadb-client -y
-
Vérifier :
mysql -h 10.1.20.1 -u dev -p eleve.
4. Installation de PFSense 2.7.2
4.1 Création de la clé bootable
- Téléchargez l’ISO PFSense 2.7.2.
- Avec Rufus : sélection de la clé USB > ISO > Start.
- Avec Ventoy : installez Ventoy sur la clé, copiez l’ISO.
4.2 Installation sur la VM/serveur
- Démarrez depuis la clé USB.
- Acceptez la licence, choisissez Install > Auto(ZFS) > Stripe.
- Retirez la clé USB, redémarrez.
4.3 Configuration initiale via console
À l’invite :
-
Assign interfaces? → n for VLANs.
- WAN → em2
- LAN → em0
- DMZ → em1
-
Configurer WAN :
- DHCP ? n
- IP : 100.200.20.254/24
- Gateway : 100.200.20.254
-
Configurer LAN :
- DHCP ? n
- IP : 10.1.20.254/24
-
Configurer DMZ :
- DHCP ? n
- IP : 192.168.20.254/24
5. Configuration Web de PFSense
- Accéder à
https://10.1.20.254
avecadmin/pfsense
. - Suivre l’assistant, changer le mot de passe admin.
- Activer HTTPS et installer un certificat (auto-signé suffit en test).
6. Règles de pare-feu détaillées
6.1 WAN → DMZ (Accès Web depuis Internet)
- Action : Pass
- Protocole : TCP
- Source : WAN net
- Destination : 192.168.20.1
- Port : 80, 443
- Description : Autoriser l’accès HTTP/HTTPS depuis Internet vers le serveur Web (DMZ)
6.2 DMZ → LAN (Accès BDD depuis Web)
- Action : Pass
- Protocole : TCP
- Source : DMZ net
- Destination : 10.1.20.1
- Port : 3306
- Description : Autoriser le serveur Web à accéder à la base de données
6.3 LAN → DMZ (Accès Web depuis le LAN)
- Action : Pass
- Protocole : TCP
- Source : LAN net
- Destination : 192.168.20.1
- Port : 80, 443
- Description : Autoriser les machines du LAN à accéder au serveur Web
6.4 LAN → WAN (Accès Internet depuis LAN)
- Action : Pass
- Protocole : any
- Source : LAN net
- Destination : any
- Description : Autoriser les clients LAN à naviguer sur Internet
6.5 DMZ → WAN (Accès Internet depuis DMZ)
- Action : Pass
- Protocole : any
- Source : DMZ net
- Destination : any
- Description : Autoriser le trafic Internet depuis la DMZ
6.6 LAN (Dev) → DMZ (SSH)
- Action : Pass
- Protocole : TCP
- Source : 10.1.20.2
- Destination : 192.168.20.1
- Port : 22
- Description : Autoriser l’accès SSH depuis la machine Dev vers le serveur Web
Résumé :
Interface : WAN
Interface : DMZ
Interface : LAN
7. NAT et redirections
7.1 Outbound NAT
7.1.1 LAN → WAN
- Interface: WAN
- Source: 10.1.20.0/16
- Translation Address: Interface Address
- Description: NAT LAN vers WAN
7.1.2 DMZ → WAN
- Interface: WAN
- Source: 192.168.20.0/24
- Translation Address: Interface Address
- Description: NAT DMZ vers WAN
7.2 Port Forwarding (WAN)
7.2.1 Redirection HTTP
- Interface: WAN
- Protocole: TCP
- Destination Port: 80
- Redirect Target IP: 192.168.20.1
- Redirect Target Port: 80
- Assoc. Filter Rule: ✅
- Description: Redirection HTTP vers le serveur Web
7.2.2 Redirection HTTPS
- Interface: WAN
- Protocole: TCP
- Destination Port: 443
- Redirect Target IP: 192.168.20.1
- Redirect Target Port: 443
- Assoc. Filter Rule: ✅
- Description: Redirection HTTPS vers le serveur Web
7.3 DNS Resolver — Redirection locale
Dans pfSense > Services > DNS Resolver > Host Overrides :
- Host: visit
- Domain: gsb.coop
- IP Address: 192.168.20.1
- Description: Redirection DNS Locale vers le serveur web
8. Tests et Validation
-
Depuis client WAN :
ping 100.200.20.254
puis accéder à http://visite.gsb.coop. -
Scanner WAN :
nmap -Pn 100.200.20.254
→ seuls 80/443 doivent répondre. -
SSH depuis Dev :
ssh user@192.168.20.1
(port 22). -
Connexion BDD depuis Web ou Dev : tester
mysql -h 10.1.20.1 -u web -p eleve
.
Résultats
- Segmentation réseau réussie avec PFSense, garantissant la sécurité des différentes zones.
- Mise en place de règles NAT et de filtrage pour sécuriser les échanges entre les machines.
- Sensibilisation aux bonnes pratiques de configuration d’un pare-feu professionnel et à la gestion des flux réseau dans un environnement multi-zone.