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

Setup de l'environnement

Version Vagrant VirtualBox QEMU

Auteur : Thibaut Fontaine — Kodetis Dernière mise à jour : 2026


Cette page prépare l’environnement complet des TP TAAF : vous démarrez les VMs (cœur puis labs bonus) au fur et à mesure des actes, via Vagrant (environnement identique et reproductible). Une golden box préprovisionnée existe côté instructeur : elle sert à valider les énoncés, et de dépannage si une machine refuse de se monter — ce n’est pas une alternative au travail de montage.


Modèle crescendo : on ajoute des VMs acte après acte, toutes sur le même sous-réseau privé (relevez les IP avec hostname -I — notées IP_VM1, IP_VM2, IP_VM3 dans les TPs). L’inventaire ci-dessous est votre point d’entrée unique — VMs cœur + labs bonus.

VM / LabHostnameActe · TPRAMDéploiementType
monitoringTAAF-MONITORING-001Acte 16 GBvagrant up monitoringcœur
socTAAF-SOC-001Acte 23 GBvagrant up soccœur
appsTAAF-APPS-001Acte 1 (observée) · Acte 2 (source SIEM) · Acte 3 (auditée)4 GBvagrant up appscœur
auditTAAF-AUDIT-001Acte 3 (la toolbox qui audite)2 GBvagrant up auditcœur
concordia (Zabbix proxy)TAAF-CDA-001Acte 1 · TP6/TP72 GBvagrant up concordiabonus
Zabbix Serversur monitoringActe 1 · TP6/TP7(incl.)stack Docker zabbix-server-labbonus
Active Directory (DC)TAAF-AD-001Acte 2 · Acte 3~4 GBVM Windows manuelle + scripts PSbonus
Wazuhsur socActe 2+4 GBstack Docker sur la VM socbonus
  • À l’intérieur de chaque VM Linux, les services tournent en conteneurs Docker.
  • Vous accédez aux services depuis votre navigateur via l’IP de la VM (ex. http://IP_VM1:3000 pour Grafana), ou via Caddy (*.univ-taaf.internal, bonus).

Le provider de virtualisation dépend de l’architecture de votre machine.

OSInstallation
Windowsvagrantup.com
macOSbrew install vagrant
Linux (Debian/Ubuntu)sudo apt install vagrant
Fenêtre de terminal
vagrant --version # Vagrant 2.4.x

Vous utilisez VirtualBox.

OSInstallation
Windowsvirtualbox.org
Linux (Debian/Ubuntu)sudo apt install virtualbox
macOS Intelbrew install --cask virtualbox

Windows : installer côté Windows, piloter depuis WSL

Section intitulée « Windows : installer côté Windows, piloter depuis WSL »

C’est le flux de travail du module sur les postes Windows : VirtualBox et Vagrant s’installent côté Windows (ce sont eux qui font tourner les VMs), et vous les pilotez depuis votre terminal WSL grâce à un alias. Une seule installation de Vagrant — jamais un second Vagrant dans WSL (apt install vagrant) : deux Vagrant, deux états, et plus rien ne se comprend.

  1. Côté Windows — installez VirtualBox puis Vagrant (installeur .msi). Redémarrez si l’installeur le demande.

  2. Côté WSL (Ubuntu) — ajoutez à votre ~/.bashrc ou ~/.zshrc :

    Fenêtre de terminal
    # Vagrant et VirtualBox sont ceux de Windows : on les appelle via leurs .exe
    alias vagrant='vagrant.exe'
    alias VBoxManage='VBoxManage.exe'
    export PATH="$PATH:/mnt/c/Program Files/Oracle/VirtualBox"

    puis source ~/.bashrc (ou rouvrez le terminal).

  3. Le projet vit sur le disque Windows — clonez sous /mnt/c/…, jamais dans le système de fichiers Linux de WSL (~), sinon vagrant.exe ne voit pas vos fichiers :

    Fenêtre de terminal
    mkdir -p /mnt/c/taaf && cd /mnt/c/taaf
    git clone https://gitlab.com/kds-formation/server.git
    cd server/but/manual
  4. Vérifiez depuis WSL :

    Fenêtre de terminal
    vagrant --version # Vagrant 2.4.x (c'est vagrant.exe qui répond)
    VBoxManage --version # 7.x

Provider — Mac Apple Silicon (M1/M2/M3/M4 — arm64)

Section intitulée « Provider — Mac Apple Silicon (M1/M2/M3/M4 — arm64) »

VirtualBox ne convient pas sur Apple Silicon. Vous utilisez QEMU + le plugin vagrant-qemu.

Fenêtre de terminal
# 1. QEMU
brew install qemu
# 2. Plugin Vagrant pour QEMU
vagrant plugin install vagrant-qemu
Fenêtre de terminal
qemu-system-aarch64 --version # QEMU 8+ (idéalement 9+)
vagrant plugin list # doit lister vagrant-qemu

Fenêtre de terminal
git clone https://gitlab.com/kds-formation/server.git
cd server/but/manual

Les VMs Linux sont nues : Ubuntu + git, docker, curl, et deux comptes — vagrant (celui de vagrant ssh, ne le supprimez jamais : c’est votre accès de secours) et taaf-engineer, votre compte d’exploitation (sudo + docker), créé par le bootstrap. Pour lui donner un mot de passe, passez-le au premier vagrant up : TAAF_USER_PASSWORD='VotreSecret' vagrant up monitoring — sinon le compte est verrouillé et vous y entrez par vagrant ssh monitoring puis sudo -iu taaf-engineer. Le mot de passe est le vôtre, il n’est écrit nulle part. Aucun service n’est pré-installé — vous les déployez vous-même en installation des services.


On démarre uniquement la VM dont l’acte en cours a besoin.

Fenêtre de terminal
# Acte 1 — Monitoring (SI observé + observabilité)
vagrant up apps # applications observées (PostgreSQL, NextCloud)
vagrant up monitoring # observabilité (Grafana, Prometheus, Loki)
# Acte 2 — SIEM (VM nue, à monter soi-même)
vagrant up soc
# Acte 3 — Audit / Purple Team
vagrant up audit

Au premier lancement, Vagrant télécharge la box de base puis installe Docker. Les lancements suivants sont quasi instantanés.

graph TB
 subgraph NET["Réseau privé commun (IP relevées par l'étudiant)"]
 APPS["taaf-apps-001 · IP_APPS<br/>SI observé<br/>PostgreSQL · NextCloud · exporters · Alloy"]
 VM1["taaf-monitoring-001 · IP_VM1<br/>Observabilité<br/>Grafana · Prometheus · Loki · Alertmanager"]
 VM2["taaf-soc-001 · IP_VM2<br/>SOC Grafana-natif<br/>Falco · Suricata · Sigma · Alerting"]
 VM3["taaf-audit-001 · IP_VM3<br/>Toolbox audit"]
 APPS -->|"Alloy pousse les logs · Prometheus scrape"| VM1
 VM2 -->|"détections vers Loki (VM monitoring)"| VM1
 VM3 -->|"scanne / audite"| APPS
 end
 BROWSER["Navigateur étudiant"] -->|"Grafana 3000"| VM1
 DISCORD(["Discord"])
 VM2 -->|"alertes par sévérité"| DISCORD
VMRAMCPUServicesStatut
monitoring6 GB2SI observé (PostgreSQL base_af, NextCloud) + observabilité (Grafana, Prometheus, Loki, Alloy, cAdvisor)✅ à déployer
soc3 GB2SOC Grafana-natif (Falco/Suricata/Sigma/Alerting)🚧 monté par l’étudiant (Acte 2)
apps4 GB2Applications (PostgreSQL, NextCloud…) : observées (A1), source du SIEM (A2), cible d’audit (A3)✅ à déployer
audit2 GB2Toolbox d’audit qui scanne apps (nmap, lynis, syft, grype…)✅ à déployer

Ces labs étendent l’environnement pour les TPs avancés. Démarrez-les uniquement quand le TP correspondant le demande, et selon les ressources de votre machine.

Deux briques : le serveur Zabbix (sur monitoring) et un proxy SNMP sur la VM bonus concordia (Dôme C, derrière le lien Inmarsat BGAN).

Fenêtre de terminal
# 1. La VM proxy Concordia (Zabbix Proxy + snmpsim)
vagrant up concordia
vagrant ssh concordia
git clone https://gitlab.com/kds-formation/zabbix-lab.git
cd zabbix-lab/zabbix-proxy-lab && make up

Le serveur Zabbix se monte sur la VM monitoring depuis le même dépôt (zabbix-lab/zabbix-server-lab, console sur le port 8080). La console SCADA du lab Concordia est exposée sur http://localhost:3001.

Active Directory — DC Windows (Acte 2 · SIEM Windows + Acte 3 · audit AD)

Section intitulée « Active Directory — DC Windows (Acte 2 · SIEM Windows + Acte 3 · audit AD) »

Un contrôleur de domaine Windows Server TAAF-AD-001, domaine univ-taaf.internal.

Elle sert à deux moments :

  • Acte 2 — intégration des journaux Windows/AD dans le SIEM (events 4624, 4728, 4698…).
  • Acte 3 — audit Active Directory (PingCastle, BloodHound).

Stack Docker bonus déployée sur la VM soc, avec un agent à installer sur l’AD (installeur Wazuh officiel — le script n’est pas fourni).


L’accès se fait par l’IP de la VM depuis votre navigateur.

ServiceVMURLIdentifiants
Grafanamonitoringhttp://IP_VM1:3000admin / AdminTAAF2024!
Prometheusmonitoringhttp://IP_VM1:9090
PostgreSQL base_afappsIP_APPS:5432taaf_admin / AdminTAAF2024!
Adminerappshttp://IP_APPS:8080
NextCloudappshttp://IP_APPS:8081(voir TP)
Zabbix (serveur)monitoringhttp://IP_VM1:8080(voir TP6)
Grafana (SOC)sochttp://IP_VM2:3000admin / (voir TP)
Console lab Concordiaconcordiahttp://localhost:3001

Pour la toolbox d’audit, entrez dans le conteneur :

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

7. Vérification — l’état attendu avant la Phase 3

Section intitulée « 7. Vérification — l’état attendu avant la Phase 3 »

À la fin de la Phase 1-2, vos VMs sont créées et nues : Ubuntu + Docker + les deux comptes, aucun service déployé (les services, c’est la Phase 3). Vérifiez exactement ça — ni plus, ni moins.

Fenêtre de terminal
# 1. Les VMs cœur existent et tournent (au moins apps + monitoring)
vagrant status
# apps running (virtualbox)
# monitoring running (virtualbox)
# 2. On entre par le compte de la box, puis on bascule sur le compte d'exploitation
vagrant ssh apps
sudo -iu taaf-engineer # (ou connexion directe si vous lui avez donné un mot de passe)
# 3. taaf-engineer a bien sudo + docker, et Docker répond
id # …groups=…(sudo),…(docker)
docker --version # Docker version 2x.x
docker ps # AUCUN conteneur — normal, la VM est nue

CommandeDescription
vagrant up <machine>Démarrer une VM
vagrant halt <machine>Arrêter une VM
vagrant ssh <machine>Se connecter en SSH
vagrant statusÉtat de toutes les VMs
vagrant destroy <machine>Supprimer une VM
vagrant provision <machine>Relancer le provisionnement

(Apple Silicon) Erreur « Addressing limited to 32 bits »

Section intitulée « (Apple Silicon) Erreur « Addressing limited to 32 bits » »

Cette erreur vient d’une box demandant plus de 3 Go avec QEMU. Le Vagrantfile du dépôt gère déjà cela (highmem=on). Assurez-vous d’avoir la dernière version du dépôt :

Fenêtre de terminal
git pull
vagrant destroy <machine> && vagrant up <machine>

(Apple Silicon) Le plugin QEMU n’est pas trouvé

Section intitulée « (Apple Silicon) Le plugin QEMU n’est pas trouvé »
Fenêtre de terminal
vagrant plugin install vagrant-qemu
vagrant plugin list # vérifier la présence de vagrant-qemu

Vérifiez que la virtualisation matérielle est activée dans le BIOS (VT-x pour Intel, AMD-V pour AMD).

Sous Windows, VirtualBox cohabite avec WSL2 / Hyper-V (voir §2) : des VMs lentes avec l’icône « tortue » sont normales, pas une panne. Une VM qui refuse de démarrer (VT-x is not available, écran noir) relève du BIOS — ou de la fonctionnalité Windows Plateforme d’hyperviseur Windows manquante : Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform en PowerShell administrateur, puis redémarrez. Ne désactivez pas Hyper-V avec bcdedit : vous perdriez WSL2, donc votre terminal de travail.

Fenêtre de terminal
# Vérifier que les conteneurs tournent
vagrant ssh <machine> -c "docker compose ps"
# Vérifier la connectivité inter-VM (depuis une autre VM)
ping IP_VM1
nc -zv IP_VM1 5432
# Relancer le provisionnement
vagrant provision <machine>
Fenêtre de terminal
df -h
vagrant box prune # nettoyer les boxes obsolètes