TP - Mettre en place Fail2ban et Nftables pour protéger un serveur Web

1. Objectifs pédagogiques

Compétence visée Indicateurs de réalisation
Installer et publier un CMS dans un environnement Linux -- Joomla ! fonctionnel en HTTPS
-- Accès SSH changé et opérationnel
Définir et appliquer une politique de filtrage avec nftables -- Tables, chaînes et règles créées
-- Journalisation pertinente des paquets
Automatiser la détection / mitigation d'attaques par ForceBrute ou DDoS applicatif -- Fail2ban actif, bannissement 5 min
-- Filtre(s) personnalisé(s) pour nginx/apache
Vérifier & documenter la sécurité déployée -- Batteries de tests réussies
-- Rapport technique rédigé

2. Architecture cible du labo

Internet (COM_EXT)
│
┌────────┴────────┐
│ Pare‑feu (pfSense/opnSense/dynFi/IPFire)
│ • WAN : DHCP
│ • LAN : 10.10.10.254/24 (COM_LAN)
└────────┬────────┘
│
┌──────────┴───────────┐
│ │
Client Win 11 Pro N Debian 12 «Web»
10.10.10.10/24 10.10.10.20/24

3. Pré‑requis logiciels

VM OS / Version conseillée Matériel virtuel minimal
Pare‑feu pfSense 2.7 / OPNsense 24.1 / dynFi 1.5 / IPFire 2.29 1 vCPU, 4 Go RAM, 2 NIC
Serveur Web Debian 12 « Bookworm » 64 bits 1 vCPU, 4 Go RAM, 1 NIC
Client Windows 11 Pro N 23H2 2 vCPU, 4 Go RAM, 1 NIC

Aide : les tutoriels détaillés se trouvent sur le blog.


4. Déroulé pas‑à‑pas

Partie 0 -- Mise en place & vérifications initiales (≈ 1 h)

Partie 1 -- Installation de la pile LAMP & de Joomla

📄 Guide « Installer Joomla sur Debian » disponible sur le blog.

Partie 2 -- Configurer la connexion SSH

Partie 3 -- Politique nftables

📄 Guide « Configurer nftables sur Debian » disponible sur le blog

Partie 4 -- Protection Fail2ban

Partie 5 -- Tests d'intrusion & validation

Test Attendu
Scan Nmap complet depuis le client Uniquement 443 / 54334 ouverts
tentatives SSH invalides (tentatives par mot de passe) IP bannie 5 min via jail
Dépassement du seuil de requêtes HTTP/s sur 1 min IP bannie 5 min via jail

Trouver un outil permettant de simuler des attaques depuis votre PC client (ddosify existe toujours à ma connaissance !).

Regardez sur le blog !


5. Livrables

Livrable
Capture d'écran Joomla (front + back‑office) en HTTPS
Export nft list ruleset commenté
Fichier jail.local + filtres personnalisés
Rapport PDF (max 3 pages) : architecture, tests, conclusions

6. Extensions possibles (facultatif)

Bon TP !


⬆️ Retour en haut de la page