Aller au contenu
TAAF-OPS --:-- UTC

Infrastructure Réseau TAAF

Ce document définit l’architecture réseau de référence de la formation TAAF. L’infrastructure suit une montée en charge progressive (crescendo) : l’étudiant démarre des VMs nues acte après acte et y déploie lui-même les services (cf. Acte 0 — Setup Vagrant).


Toutes les VMs sont sur le même sous-réseau privé et communiquent par leurs adresses IP (notées IP_APPS, IP_VM1, IP_VM2, IP_VM3 ; relevez les vôtres avec hostname -I sur chaque VM).

réseau privé commun
+---------------+---------------+---------------+---------------+
| | | | |
TAAF-APPS-001 TAAF-MONITORING-001 TAAF-SOC-001 TAAF-AUDIT-001
IP_APPS IP_VM1 IP_VM2 IP_VM3
SI observé + Observabilité SOC Toolbox
collecteurs Grafana/Prom/Loki Grafana-natif d'audit

VM bonus : un Windows Server (Active Directory) est ajouté uniquement pour le TP d’intégration Windows (Acte 2). Il n’est pas requis pour le tronc commun.


VM apps : TAAF-APPS-001 (le SI observé + collecteurs)

Section intitulée « VM apps : TAAF-APPS-001 (le SI observé + collecteurs) »

Rôle : le SI observé (PostgreSQL, NextCloud, Adminer) et ses collecteurs, déployés par docker-compose-apps.yml (dépôt monitoring). C’est aussi la source des logs à l’Acte 2 (SIEM) et la cible auditée à l’Acte 3.

ParamètreValeur
Machine Vagrantapps
Hostnametaaf-apps-001
IPIP_APPS
OSUbuntu 22.04
RAM4 GB
CPU2 vCPUs

Services hébergés :

  • SI observé : PostgreSQL base_af (5432), NextCloud (8081), Adminer (8080)
  • Collecteurs : Alloy (logs), cAdvisor (8082), node-exporter (9100), postgres-exporter (9187)
  • Scénario : log-generator (profil scenario) — utilisé uniquement pour le module SIEM (Acte 2), pas pour l’Acte 1
  • Falco : surveillance runtime (natif)

Accès :

Fenêtre de terminal
vagrant ssh apps
http://IP_APPS:8081 # NextCloud (admin.cloud.af / AdminCloudAF2024!)
http://IP_APPS:8080 # Adminer
psql -h IP_APPS -U taaf_admin -d base_af # PostgreSQL (base_af)

VM monitoring : TAAF-MONITORING-001 (plan de contrôle d’observabilité)

Section intitulée « VM monitoring : TAAF-MONITORING-001 (plan de contrôle d’observabilité) »

Rôle : la stack d’observabilité seule (Grafana, Prometheus, Loki, Alertmanager, Caddy), déployée par docker-compose.yml (dépôt monitoring).

ParamètreValeur
Machine Vagrantmonitoring
Hostnametaaf-monitoring-001
IPIP_VM1
OSUbuntu 22.04
RAM6 GB
CPU2 vCPUs

Services hébergés :

  • Observabilité : Grafana (3000), Prometheus (9090), Loki (3100), Alertmanager (9093)
  • Caddy : reverse proxy (*.univ-taaf.internal, bonus)

Accès :

Fenêtre de terminal
vagrant ssh monitoring
http://IP_VM1:3000 # Grafana (admin / AdminTAAF2024!)
http://IP_VM1:9090 # Prometheus

Rôle : le SOC Grafana-natif — VM nue que l’étudiant monte à l’Acte 2.

ParamètreValeur
Machine Vagrantsoc
Hostnametaaf-soc-001
IPIP_VM2
OSUbuntu 22.04
RAM3 GB (Wazuh bonus : +4 GB)
CPU2 vCPUs

Services à monter :

  • Détection : Falco, Suricata, Zeek (capteurs), règles Sigma → LogQL
  • Alerting : Grafana Alerting → Discord
  • Bonus : Wazuh (Manager/Indexer/Dashboard) pour qui veut l’EDR-like

Accès :

Fenêtre de terminal
vagrant ssh soc
http://IP_VM2:3000 # Grafana SOC

Rôle : toolbox d’audit / Purple Team (Acte 3).

ParamètreValeur
Machine Vagrantaudit
Hostnametaaf-audit-001
IPIP_VM3
OSUbuntu 22.04
RAM2 GB
CPU2 vCPUs

Outils : nmap, lynis, OpenSCAP, nikto, syft, grype, hydra…

Fenêtre de terminal
vagrant ssh audit
docker exec -it taaf-audit-toolbox bash

Montée uniquement pour le TP d’intégration Windows (Acte 2).

ParamètreValeur
HostnameTAAF-AD-001
IPIP_AD
OSWindows Server 2019/2022
Domaineuniv-taaf.internal

Pour utiliser des noms plutôt que des IP, ajoutez sur les VMs Linux :

Fenêtre de terminal
sudo bash -c 'cat >> /etc/hosts <<EOF
# Infrastructure TAAF
IP_APPS taaf-apps-001 cloud.univ-taaf.internal
IP_VM1 taaf-monitoring-001 grafana.univ-taaf.internal prometheus.univ-taaf.internal
IP_VM2 taaf-soc-001 soc.univ-taaf.internal
IP_VM3 taaf-audit-001
IP_AD taaf-ad-001 ad.univ-taaf.internal
EOF'

Observabilité (Acte 1) — deux VMs, saut inter-VM par IP

Section intitulée « Observabilité (Acte 1) — deux VMs, saut inter-VM par IP »
VM apps (IP_APPS) VM monitoring (IP_VM1)
───────────────── ─────────────────────
PostgreSQL (postgres-af:5432)
↓ metrics
postgres-exporter (9187) ───scrape (IP_APPS:9187)──► Prometheus (9090)
cAdvisor (8082) ───────────scrape (IP_APPS:8082)──► ↓ query
node-exporter (9100) ──────scrape (IP_APPS:9100)──► Grafana (3000)
Logs (app, Falco, NextCloud)
↓ collect
Alloy ─────────────────────push (IP_MONITORING:3100)─► Loki (3100)
↓ query
Grafana (3000)

Le SI observé et ses collecteurs (exporters, Alloy) sont sur TAAF-APPS-001 ; le plan de contrôle (Prometheus, Loki, Grafana) est sur TAAF-MONITORING-001. Prometheus scrape les exporters d’apps par IP, et Alloy pousse vers Loki par IP : le saut inter-VM existe dès l’Acte 1.

Détection (Acte 2) — la VM SOC joint la VM monitoring

Section intitulée « Détection (Acte 2) — la VM SOC joint la VM monitoring »
Sources (Loki sur monitoring, IP_VM1:3100)
↓ datasource Loki distante
SOC Grafana (IP_VM2:3000) — règles Sigma→LogQL
↓ Grafana Alerting
Discord (webhook)

C’est ici que la connectivité inter-VM par IP est cruciale : la VM SOC doit joindre Loki de la VM monitoring (IP_VM1:3100) — jamais localhost.

SourceDestinationPortUsage
TAAF-SOC-001TAAF-MONITORING-0013100Datasource Loki (Sigma→LogQL)
TAAF-SOC-001TAAF-MONITORING-0019090Datasource Prometheus (corrélation)
TAAF-AUDIT-001TAAF-MONITORING-00122/80/5432…Scans, nmap, audit
AdministrateurTAAF-MONITORING-0013000Accès Grafana
AdministrateurTAAF-SOC-0013000Accès Grafana SOC

#!/bin/bash
# test-infrastructure.sh — connectivité de base
echo "=== Test Infrastructure TAAF ==="
# VM monitoring
echo "[monitoring] TAAF-MONITORING-001..."
ping -c 2 IP_VM1 && echo "✅ accessible" || echo "❌ inaccessible"
curl -s -o /dev/null -w "%{http_code}" http://IP_VM1:3000 | grep -q "200\|302" && echo "✅ Grafana OK" || echo "❌ Grafana KO"
curl -s -o /dev/null -w "%{http_code}" http://IP_VM1:9090 | grep -q "200" && echo "✅ Prometheus OK" || echo "❌ Prometheus KO"
curl -s -o /dev/null -w "%{http_code}" http://IP_APPS:8081/status.php | grep -q "200" && echo "✅ NextCloud OK" || echo "❌ NextCloud KO"
# VM SOC (Acte 2)
echo "[soc] TAAF-SOC-001..."
ping -c 2 IP_VM2 && echo "✅ accessible" || echo "❌ inaccessible"
# VM audit (Acte 3)
echo "[audit] TAAF-AUDIT-001..."
ping -c 2 IP_VM3 && echo "✅ accessible" || echo "❌ inaccessible"
echo "=== Fin des tests ==="


Document de référence — Formation TAAF · Kodetis