Aller au contenu principal

Installation

Info

Cette page est fortement inspirée de la page d'installation officielle de GOAD, trouvable dans ce Github

Dépendances et recommendations

Dépendances :

DépendanceVersion ou remarque
VagrantVersion 2.2.18 -> Sert a créer les VM
VirtualBoxVersion 6.1 et non 7 -> Hyperviseur
GOAD GithubTous les fichiers du GIT GOAD
Serveur LinuxLes recommendations matérielles sont juste en bas

Dépendances matérielles :

MatérielValeur
CPU16 Coeurs environ (hors OS Hôte)
RAM32Gb de RAM (16Gb est possible mais avec des compromis
HDD120Gb pour le LAB seul !

Préparation et installation des dépendances

  1. On commence par cloner le repo
git clone https://github.com/Orange-Cyberdefense/GOAD.git

La structure du dossier téléchargée devrait ressembler à cela :

FolderStructure

Veillez bien que le fichier Vagrant ainsi que les dossiers ansible et ad sont présents

Installer Virtualbox

La version de virtualbox que nous allons installer n'est pas la dernière ! Vous pouvez trouver tous les installeurs sur cette page : https://www.virtualbox.org/wiki/Download_Old_Builds_6_1

Installation de virtualbox

Je recommande d'utiliser le paquet "All distribuctions" qui permettera de compiler et d'installer virtualbox

Important si vous installez GOAD dans une VM

Il est important d'activer la virtualisation dans le menu de la machine virtuelle

Dans mon cas, ma machine est une VM dans un ESX (Vmware) et donc j'ai du activer la virtualisation comme ceci :

Installer Vagrant

Vagrant va nous servir pour créer les VM, vides, sur Virtualbox.

Afin d'installer vagrant, il nous faut télécharger le .deb correspondant a la version 2.12.18

Ce .deb est trouvable ici : https://releases.hashicorp.com/vagrant/2.2.18/vagrant_2.2.18_x86_64.deb

Une fois ce deb téléchargé, il nous suffit de l'installer

sudo dpkg -i vagrant.deb

Création des machines virtuelles

Il nous suffit de lancer la création des VM à l'aide de cette commande :

vagrant up

Vous devriez avoir un output comme ceci :

danger

Si vous avez l'erreur suivante :

Vérifiez bien que vous avez vagrant version 2.2.18. Vous pouvez vérifier la version avec la commande suivante :

vagrant --version 
Cache vagrant

Au premier vagrant UP que vous ferez, les différentes ISO seront téléchargées. A partir de la seconde fois, vous n'aurez plus a les télécharger, elles seront en cache !

Une fois la création de VM faites, vous devriez avoir les 5 machines (DC01 a 3 puis SRV2 et 3) allumées et bien créés sur virtualbox. Nous pouvons alors passer sur le provisionning de ces machines sur ansible

Provisionning des machines et construction de l'AD avec ansible

Installation ansible

Avant de provisionner les machines avec ansible, nous devons installer quelques dépendances. Ici vous avez 2 choix :

  1. Le serveur/La VM que vous utilisez est dédiée à GOAD

Auquel cas, vous pouvez directement installer les librairies python sans passer par un environnement virtuel :

cd GOAD/ansible
python3 -m pip install --upgrade pip
python3 -m pip install ansible-core==2.12.6
python3 -m pip install pywinrm
ansible-galaxy install -r requirements.yml
  1. Le serveur/La VM que vous utilisez est polyvalente, et donc pas que à GOAD

Auquel cas vous devrez passer par un environnement virtuel :

python3 -m virtualenv .venv
source .venv/bin/activate

python3 -m pip install --upgrade pip
python3 -m pip install ansible-core==2.12.6
python3 -m pip install pywinrm

ansible-galaxy install -r requirements.yml
Environnements virtuels

Il arrive que des librairies python rentrent en conflit avec d'autres librairies. On utilise pour cela des environnements virtuels.

En général, on a un environnement virtuel par projet. On peut même utiliser des managers d'environnements virtuels, tels que conda : https://anaconda.org/anaconda/conda

Par ailleurs, il est globalement recommandé de passer par un environnement virtuel même si il n'y a aucun autre projet.

Provisionning machines avec ansible

Puis ensuite nous pouvons commencer à provisionner les VM via cette commande :

ansible-playbook -i ../ad/sevenkingdoms.local/inventory main.yml

Au lancement du script, voici ce qu'il doit apparaître

Dans le cas ou il y'a un message d'erreur

Cas n°1 :

Cela veut dire que les VM sont en train de faire des updates, et que par conséquent, le script ansible à "abandonné" l'idée de provisionner les VM

Attendez que les VM bootent, puis :

vagrant halt
vagrant up

Cas n°2 :

Cette erreur arrive souvent, et en général touche 1 ou 2 VM. Vous devez refaire le provisionning vagrant des VM concernées.

Afin d'éviter de perdre trop de temps, il est possible de faire le provisionning des VM individuellement avec la commande suivante :

vagrant up <vmname>

Enfin, un compte rendu vous sera présenté.

Par exemple, ici on voit que il y a eu une erreur sur DC02. Je devrai donc refaire le script ansible afin de fixer cette erreur !

Snapshot des machines virtuelles avec vagrant

Une fois cela fait, il est possible de faire un snapshot des VM avec vagrant :

vagrant snapshot push

Cela va créer des snapshots directement intégrés à virtualbox :

Et voila, votre environnement est prêt ! Nous pouvons commencer à l'attaquer !