Projet Blue Team CY376 — DMZ pfSense, IDS/IPS Suricata et durcissement automatisé des hôtes contre CVE-2014-6271
CY376 : Surveillance, sécurité et audit réseau — Projet de fin de semestre Blue Team | Université des Mines et de la Technologie, Tarkwa
Auteur : Kennedy Kumi Holomah Numéro d'index : FCM.41.018.148.23 Numéro d'étudiant : 9013004623
Ce projet construit, sécurise et surveille une zone démilitarisée (DMZ) hébergeant un serveur web Ubuntu/Apache exposé au public, derrière un pare-feu pfSense, entièrement dans un laboratoire VMware Workstation isolé. Conçu comme exercice Blue Team pour CY376 (Surveillance, sécurité et audit réseau) à l'Université des Mines et de la Technologie de Tarkwa, il illustre un cycle de vie défensif complet plutôt qu'un contrôle isolé : une frontière réseau segmentée, une détection inline à cette frontière, une tentative d'exploitation réelle contre un CVE identifié, une remédiation automatisée et une revalidation prouvant que le correctif a réellement comblé la faille.
Le projet associe délibérément chaque couche défensive à des preuves plutôt qu'à une simple capture d'écran de configuration : la détection de Suricata est montrée en train d'intercepter en temps réel une tentative d'exploitation Shellshock réelle, la même charge utile échoue nettement après application du durcissement, et les problèmes d'infrastructure non évidents rencontrés en cours de route (les paramètres d'offload matériel bloquant silencieusement la capture de paquets, le périmètre par défaut de HOME_NET cassant silencieusement les signatures directionnelles, le verrouillage des permissions du script de durcissement cassant le serveur qu'il était censé protéger) sont documentés comme des constats à part entière, et non passés sous silence.
HOME_NET correctement délimité au sous-réseau DMZ afin que le trafic d'attaque provenant du LAN soit traité comme externe.scripts/dmz_web_hardening.sh) corrige Bash, désactive le gestionnaire CGI dont Shellshock dépend, restreint SSH au LAN, active un pare-feu hôte (UFW) et fail2ban, et verrouille les permissions de la racine web.Rapport complet, captures d'écran de preuve et analyse : docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf.
| Hôte | Rôle | Interface / VMnet | Adresse IP |
|---|---|---|---|
| pfSense | Pare-feu / routeur | WAN (em0) | 192.168.248.138 (DHCP, NAT) |
| pfSense | Pare-feu / routeur | LAN (em2) | 192.168.20.1/24 |
| pfSense | Pare-feu / routeur | DMZ (em1) | 192.168.10.1/24 |
| Kali Linux | Hôte attaquant | VMnet4 (LAN) | 192.168.20.102 |
| Client LAN | Hôte LAN général | VMnet4 (LAN) | 192.168.20.100 |
| Serveur web DMZ | Cible / actif protégé | VMnet3 (DMZ) | 192.168.10.10 |
| Manager Wazuh | Plateforme SIEM / journalisation | VMnet4 (LAN) | 192.168.20.103 |
Tout le trafic inter-segments transite exclusivement par pfSense ; aucun chemin ne contourne le pare-feu.
.
├── README.md
├── .gitignore
├── scripts/
│ └── dmz_web_hardening.sh # Host hardening script for the DMZ web server
├── docs/
│ └── CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf # Full project report
└── evidence/
└── figure01_lab_topology.png ... figure11_wazuh_dashboard.png
# The 11 captioned screenshots from the report, numbered to match
# the figure numbers used throughout docs/CY376_DMZ_Report_*.pdf
scripts/dmz_web_hardening.sh cible l'hôte Ubuntu/Apache de la DMZ. Il est conçu pour pouvoir être réexécuté sans risque : chaque fichier de configuration qu'il modifie est d'abord sauvegardé (suffixe .bak-YYYYmmdd-HHMMSS), et toutes les actions sont journalisées dans un fichier horodaté sous /var/log.
# On the DMZ web server
sudo bash scripts/dmz_web_hardening.sh
Avant d'exécuter le script, vérifiez la section CONFIG en haut du script (sous-réseau LAN, ports HTTP/HTTPS) pour l'adapter à votre propre topologie.
Ce qu'il fait :
mod_cgi/mod_cgid (supprimant ainsi complètement la surface d'attaque Shellshock) et verrouille les propriétaires/permissions de la racine web.Un récapitulatif est affiché à la fin, et le détail complet de chaque étape figure dans le rapport.
| Test | Avant durcissement | Après durcissement |
|---|---|---|
| Tentative d'exploitation Shellshock | Charge utile acceptée ; alerte Suricata déclenchée (SID 2022028) | HTTP 404 — gestionnaire CGI supprimé |
| SSH depuis le LAN (Kali) | Disponible, sans restriction | Disponible, restreint à 192.168.20.0/24 |
| Accès à la racine web | Servait le contenu par défaut | Brièvement 403 pendant le durcissement, puis restauré |
| Règle drop Suricata personnalisée | N/A | Blocage actif confirmé en cas de correspondance |
Voir la section 6 (Analyse et recommandations) du rapport pour la discussion complète.