Installation
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épendance | Version ou remarque |
---|---|
Vagrant | Version 2.2.18 -> Sert a créer les VM |
VirtualBox | Version 6.1 et non 7 -> Hyperviseur |
GOAD Github | Tous les fichiers du GIT GOAD |
Serveur Linux | Les recommendations matérielles sont juste en bas |
Dépendances matérielles :
Matériel | Valeur |
---|---|
CPU | 16 Coeurs environ (hors OS Hôte) |
RAM | 32Gb de RAM (16Gb est possible mais avec des compromis |
HDD | 120Gb pour le LAB seul ! |
Préparation et installation des dépendances
- 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 :
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
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 :
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
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 :
- 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
- 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
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 !