Ce que vous saurez faire à la fin
- Distinguer un firewall stateful classique d’un Next-Generation Firewall (NGFW) et choisir lequel correspond à votre besoin
- Comprendre les couches OSI utiles à la sécurité réseau et savoir à quel niveau filtrer un trafic donné
- Écrire des règles de pare-feu (entrée et sortie) cohérentes avec un principe de moindre privilège
- Installer pfSense (gratuit) ou comparer Sophos XGS / Fortinet FortiGate pour une PME africaine, et appliquer une segmentation VLAN
- Activer un IDS/IPS (Suricata, Snort) avec règles communautaires et lire les alertes sans noyer votre RSSI
Durée : 6h. Pré-requis : connaissance basique des adresses IP et du modèle OSI, accès à un mini-PC ou serveur dédié (Protectli FW4B, mini-PC Intel N100, ou VM ESXi/Proxmox), 2 cartes réseau minimum, switch managé compatible VLAN (TP-Link TL-SG108E à 35 000 FCFA, Mikrotik CSS610 à 65 000 FCFA), abonnement internet professionnel avec IP publique fixe, budget hardware 200 000 à 1 500 000 FCFA selon solution, accès admin à votre box opérateur (Orange, Free, Sonatel) pour passage en mode bridge.
Étape 1 — Comprendre les couches OSI utiles
Le modèle OSI à 7 couches structure la communication réseau. Pour la sécurité, retenez ces couches :
| Couche | Nom | Données | Filtrage possible |
|---|---|---|---|
| 2 | Liaison | Trame Ethernet, MAC | Filtrage MAC, VLAN |
| 3 | Réseau | Paquet IP | IP source/destination, ICMP |
| 4 | Transport | Segment TCP/UDP, port | Port, état session, SYN flood |
| 7 | Application | HTTP, DNS, SMTP, TLS | URL, contenu, protocole, app |
Un firewall classique opère en couche 3-4 (IP + port). Un NGFW remonte en couche 7 (analyse applicative). Exemple : un firewall L4 voit « trafic TCP port 443 vers 142.250.x.x » sans savoir si c’est Gmail, YouTube ou un C2 malveillant. Un NGFW décode le SNI TLS et identifie l’application.
Étape 2 — Distinguer firewall stateful et NGFW
Un firewall stateful suit l’état des connexions TCP. Si vous initiez une connexion sortante vers Google, le firewall mémorise la session et autorise les paquets retour automatiquement. Plus efficace que le filtrage stateless qui examine chaque paquet isolément. Un NGFW ajoute :
- Application Control : reconnaissance de 4 000+ applications par signatures
- Deep Packet Inspection (DPI) : analyse du contenu des paquets, y compris HTTPS via interception TLS
- IDS/IPS intégré : détection et blocage des intrusions selon signatures Snort/Suricata
- URL filtering : blocage par catégories (gambling, adult, malware)
- Threat Intelligence : feeds en temps réel d’IPs malveillantes
- Sandboxing : exécution d’attachments suspects en environnement isolé
| Cas d’usage | Firewall stateful | NGFW |
|---|---|---|
| Petit bureau 5 personnes | Suffisant (pfSense) | Surdimensionné |
| PME 30 personnes avec serveurs internes | Insuffisant (pas de DPI) | Recommandé (Sophos XGS 87) |
| Cabinet comptable OHADA données sensibles | Insuffisant | Obligatoire |
| Datacenter ou hébergement | Insuffisant | NGFW haut de gamme (Fortinet, Palo Alto) |
Étape 3 — Choisir entre pfSense, Sophos et Fortinet
Les trois solutions les plus répandues pour PME :
| Solution | Coût matériel + licence | Fonctionnalités | Pour qui |
|---|---|---|---|
| pfSense Community | 200 000 à 400 000 FCFA hardware, licence gratuite | Stateful, OpenVPN, Suricata add-on, pas de DPI HTTPS | PME < 30 users, équipe IT capable |
| OPNsense | Idem pfSense, fork plus moderne | Idem + interface plus claire | Idem, préférence pour roadmap active |
| Sophos XGS 87 | 650 000 FCFA appliance + 280 000 FCFA/an licence | NGFW complet, DPI, sandbox, gestion cloud | PME 20 à 100 users |
| Fortinet FortiGate 60F | 800 000 FCFA + 350 000 FCFA/an UTM | NGFW, SD-WAN, Security Fabric | Multi-sites, appel d’offres |
| Mikrotik hAP ax3 | 120 000 FCFA, sans licence | Stateful + VPN, pas de NGFW | TPE, lab, secondaire |
Pour démarrer, pfSense sur Protectli FW4B est le meilleur rapport qualité/prix si votre IT sait s’en occuper. Sophos est plus simple côté admin mais coûte 280 000 FCFA/an de licence renouvelable.
Étape 4 — Installer pfSense sur Protectli FW4B
Téléchargez l’image AMD64 sur pfsense.org/download (choisissez « USB Memstick Installer »). Préparez une clé USB bootable :
# Sous Linux/macOS
gunzip pfSense-CE-2.7.2-RELEASE-amd64-memstick.img.gz
sudo dd if=pfSense-CE-2.7.2-RELEASE-amd64-memstick.img \
of=/dev/sdX bs=1M status=progress
sync
# Sous Windows : utiliser Rufus
# https://rufus.ie/ → sélectionner image → DD mode
Branchez la clé sur le Protectli, démarrez et appuyez F11 pour le boot menu. Suivez l’installeur (UFS ou ZFS, choisir ZFS si plus de 4 Go RAM). Après reboot, vous arrivez sur l’écran console :
WAN (em0) -> à connecter à votre box opérateur (mode bridge)
LAN (em1) -> à connecter au switch principal
Option 2 → Set interface IP address
LAN : 192.168.10.1/24
DHCP : 192.168.10.100 - 192.168.10.200
Connectez un PC en LAN, ouvrez https://192.168.10.1 (login admin / pfsense, à changer immédiatement).
Étape 5 — Sécuriser l’interface admin pfSense
Premières actions obligatoires après installation :
System > User Manager > admin
- Changer le mot de passe (16+ caractères)
- Activer 2FA TOTP
System > Advanced > Admin Access
- TCP port : changer 443 vers 8443 (anti scan)
- WebGUI redirect rule : disabled
- Anti-lockout rule : conserver
- HTTPS only
System > Advanced > Firewall/NAT
- Disable auto-added VPN rules : non
- Bogon networks : block
System > Update > Update Settings
- Branch : Latest stable
Étape 6 — Écrire des règles de pare-feu LAN
Principe : « Default deny » puis whitelist explicite. Allez dans Firewall > Rules > LAN. Supprimez la règle « Default allow LAN to any » et créez :
| Action | Source | Destination | Port | Description |
|---|---|---|---|---|
| Pass | LAN net | LAN address | 53, 80, 443 | DNS et web admin pfSense |
| Pass | LAN net | !RFC1918 | 80, 443 | Web sortant |
| Pass | LAN net | !RFC1918 | 465, 587, 993 | Email sortant chiffré |
| Pass | Alias_Comptabilite | Sage_server | 1433 | Accès Sage |
| Block | LAN net | any | any | Default deny |
!RFC1918 signifie « tout sauf les plages privées » (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Cela empêche un poste LAN de scanner d’autres VLANs.
Étape 7 — Segmenter le réseau en VLANs
Un réseau plat est dangereux : la caméra IP compromise donne accès au serveur de paie. Segmentez par fonction. Dans pfSense, allez dans Interfaces > Assignments > VLANs :
VLAN 10 : LAN_Bureau 192.168.10.0/24 (postes employés)
VLAN 20 : LAN_Serveurs 192.168.20.0/24 (serveurs internes)
VLAN 30 : LAN_VoIP 192.168.30.0/24 (téléphones IP)
VLAN 40 : LAN_IoT 192.168.40.0/24 (caméras, imprimantes)
VLAN 50 : LAN_Invités 192.168.50.0/24 (Wi-Fi visiteurs)
VLAN 99 : LAN_Mgmt 192.168.99.0/24 (admin équipements)
Sur le switch managé (TP-Link TL-SG108E) :
Port 1 (uplink pfSense) : Tagged sur VLAN 10,20,30,40,50,99
Port 2 (poste employé) : Untagged VLAN 10
Port 3 (serveur paie) : Untagged VLAN 20
Port 4 (téléphone IP) : Untagged VLAN 30
Port 5 (caméra IP) : Untagged VLAN 40
Port 6 (point Wi-Fi) : Tagged VLAN 10,50
Côté pfSense, créez un alias RFC1918 regroupant 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. Puis sur l’interface VLAN_IoT, bloquez tout vers RFC1918 sauf le DNS de pfSense. Une caméra ne peut plus parler à un PC.
Étape 8 — Activer l’IDS/IPS Suricata
Suricata analyse le trafic et alerte/bloque sur signatures. Installez-le dans pfSense :
System > Package Manager > Available Packages
> chercher "suricata" > Install (5 min)
Services > Suricata > Global Settings
- Update interval : 12 hours
- ETOpen Emerging Threats : activé (gratuit)
- Snort GPLv2 Community Rules : activé
Services > Suricata > Updates > Update
- Télécharge ~20 000 règles
Services > Suricata > Interfaces > Add WAN
- Block offenders : Yes
- IPS Mode : Inline (passe le trafic via Suricata)
- Pattern Matcher : Hyperscan
- Logs : EVE JSON activé pour SIEM
Étape 9 — Activer les bonnes catégories de règles
Toutes les règles activées = faux positifs et CPU saturé. Activez par catégorie selon votre profil :
| Catégorie | Activer | Pourquoi |
|---|---|---|
| emerging-malware | Oui | Détection C2 connus |
| emerging-trojan | Oui | RAT, infostealers |
| emerging-exploit | Oui | Tentatives 0-day, scan vulnérabilité |
| emerging-current_events | Oui | Menaces récentes |
| emerging-policy | Selon | P2P, jeux, à activer si politique stricte |
| emerging-info | Non | Bruit, peu de valeur |
| emerging-games | Selon politique | Détecte BitTorrent, Steam |
Après 7 jours, allez dans Suricata > Alerts, identifiez les règles qui génèrent plus de 50 faux positifs et désactivez-les avec le bouton « Suppress ».
Étape 10 — Bloquer les pays à risque (GeoIP)
Si votre activité ne nécessite pas d’accès depuis certains pays, bloquez-les en entrée. Installez le package pfBlockerNG-devel :
Firewall > pfBlockerNG > IP > GeoIP
- Activer MaxMind feed (compte gratuit, clé API)
- Continents à bloquer en entrée :
* Si vous ne servez que l'Afrique : bloquer Asie, Amérique du Sud
* Toujours bloquer en entrée : Iran, Corée du Nord, Russie (sauf besoin)
- Action : Deny Inbound
Firewall > pfBlockerNG > DNSBL
- Activer Easylist, AdGuard, Steven Black hosts
- Bloque les domaines de tracking, malware, ads
- Cible : tout le LAN
Effet immédiat : 30 à 60% du trafic indésirable bloqué avant analyse, charge CPU réduite, scan automatisés russes/chinois éliminés des logs.
Étape 11 — Configurer le VPN d’accès distant
Vos collaborateurs en télétravail ou en mission doivent accéder aux ressources internes via VPN. WireGuard est plus rapide et plus simple qu’OpenVPN :
VPN > WireGuard > Tunnels > Add Tunnel
Interface : tun_wg0
Listen Port : 51820
Address : 10.10.0.1/24
DNS : 192.168.10.1
VPN > WireGuard > Peers > Add Peer (par utilisateur)
Description : aissatou-laptop
Allowed IPs : 10.10.0.10/32
Public Key : [généré côté client]
Firewall > Rules > WireGuard
Pass : WireGuard net > LAN_Serveurs (ports métier)
Block : WireGuard net > LAN_IoT (pas besoin)
Distribuez la config au format QR code via l’app WireGuard mobile ou fichier .conf signé via Keybase ou Signal.
Étape 12 — Logger et superviser
Un firewall sans logs supervisés ne sert à rien. Centralisez vers un SIEM léger comme Wazuh (gratuit) ou Graylog Open. Configuration syslog :
Status > System Logs > Settings
- Send log messages to remote syslog server
- Remote log servers : 192.168.20.50:514
- Remote Syslog Contents :
* System Events
* Firewall Events
* DHCP service events
* VPN events
* Suricata Alerts
Sur Wazuh, créez des règles de corrélation : 5 connexions VPN échouées en moins de 2 min depuis la même IP = alerte SMS au RSSI via Twilio ou notification Slack.
Étape 13 — Tester et auditer la configuration
Validez votre configuration depuis l’extérieur :
# Scan des ports ouverts depuis Internet
nmap -Pn -sS -p 1-65535 votre-ip-publique.sn
# Résultat attendu :
# Aucun port ouvert sauf 51820/UDP (WireGuard)
# Si HTTPS admin pfSense visible > CRITIQUE, à fermer
# Test des règles GeoIP
curl --interface eth0 --resolve example.com:443:1.2.3.4 https://example.com
# Si IP bloquée géographiquement : timeout
# Vérifier IDS actif
curl http://testmyids.com/
# Doit déclencher une alerte Suricata "GPL ATTACK_RESPONSE id check returned root"
Programmez un audit complet tous les 6 mois : scan Nmap externe, revue des règles inutilisées (Hit count = 0 dans pfSense Diagnostics), vérification des firmwares à jour, test de restauration de la configuration sauvegardée.
Erreurs classiques à éviter
- Laisser l’interface admin du firewall accessible depuis Internet : exploit zero-day pfSense ou Sophos = compromission totale du réseau, c’est arrivé en 2024 sur des dizaines d’entreprises
- Créer une règle « any-any-allow » temporaire et l’oublier : trou de sécurité béant pendant des années, à éviter même pour debug (utiliser Diagnostics > Packet Capture)
- Ne pas segmenter le réseau IoT/caméras : caméra Hikvision compromise en 2 minutes, pivot vers serveur paie, exfiltration silencieuse
- Activer toutes les règles Suricata sans tuning : CPU à 100%, latence Internet, RSSI noyé sous 10 000 alertes/jour, plus personne ne lit les logs
- Oublier les sauvegardes de config : pfSense plante, restauration depuis zéro prend 2 jours, entreprise paralysée
- Bloquer le pays Sénégal en GeoIP par erreur de catégorie : employés en mobilité ne peuvent plus se connecter au VPN
- Ne pas mettre à jour le firmware pendant 12 mois : vulnérabilités connues exploitées par scripts publics, 80% des breaches viennent de patches non appliqués
Checklist pare-feu et sécurité réseau
✓ Schéma réseau documenté avec VLANs, IPs, équipements
✓ Firewall choisi selon taille (pfSense, Sophos XGS, FortiGate)
✓ Interface admin accessible uniquement depuis LAN_Mgmt
✓ Mot de passe admin 16+ caractères et 2FA activé
✓ Règles LAN écrites en default deny + whitelist
✓ VLANs créés et inter-VLAN routing filtré
✓ VLAN IoT/caméras totalement isolé
✓ Suricata IDS/IPS installé en mode inline sur WAN
✓ Catégories de règles ETOpen ciblées (pas tout activer)
✓ pfBlockerNG GeoIP + DNSBL configurés
✓ VPN WireGuard ou OpenVPN pour télétravail
✓ Logs centralisés vers Wazuh ou Graylog
✓ Alerte SMS/Slack sur événements critiques
✓ Sauvegarde config quotidienne automatisée
✓ Audit Nmap externe trimestriel
✓ Firmware à jour (vérifier mensuellement)