Comment créer un lab avec EVE-NG ?
Sommaire
I. Présentation
Pour apprendre à administrer des réseaux, pour s'entrainer à la sécurité ou tout simplement pour maquetter une infrastructure, nous avons besoin de créer des labs.
Ceux-ci peuvent être faits directement avec un logiciel de virtualisation comme VirtualBox ou VMWare mais cela peut être limitant et relativement "abstrait" dans le sens où nous ne visualisons pas toute l'infrastructure.
EVE-NG est un logiciel de simulation de réseau par la virtualisation sans client, ce qui le rend différent de GNS3 par exemple. Toutes les manipulations se font en web, il n'est pas nécessaire d'installer un logiciel sur le poste à partir duquel on veut travailler.
Dans ce tutoriel, je vous montrerais comment installer EVE-NG et comment ajouter des images de système d'exploitation. Nous verrons dans un deuxième temps comment créer nos propres images pour avoir une espace de lab complet et répondant à tous nos besoins !
EVE-NG existe en deux éditions : la PRO, payante et complète et la Community, gratuite. C'est cette dernière que nous allons utiliser.
II. Installation de EVE-NG
Note : Si vous utilisez une VM, vous devez permettre la virtualisation imbriquée. En effet, EVE-NG utilise entre autre des VM Qemu. Sans cette imbrication, il sera impossible de les utiliser. Pour cela, suivez les instructions pour VirtualBox, VMWare ou encore Hyper-V.
Si certains d'entre vous sont pressés, sachez que les développeurs de la solution offrent des VM toutes prêtes sur leur site internet https://eve-ng.net dans la section "Download".
Nous n'utiliserons pas cette VM, je vais vous détailler comment installer EVE-NG sur une VM Ubuntu directement. Je préfère cette méthode car cela nous laisse le libre choix de la taille du disque, du nombre de processeurs, de la RAM, etc. Et de plus, cette méthode est "universelle" dans le sens où elle peut être reproduite sur VM mais aussi sur serveur physique et même dans le Cloud (testé sur AWS).
Pour commencer, il nous faut récupérer l'ISO de Ubuntu 20.04 (focal fossa). A l'heure actuelle, la prise en charge des versions supérieures n'est pas possible. Nous utiliserons une image serveur.
Créez une VM ou une clé bootable, en fonction du support que vous souhaitez et lancez l'installation. Il vous faudra minimum 8Go de RAM et 40 Go de disque. Plus vous aurez besoin de nœuds dans vos labs, plus ces valeurs devront être élevées!
Note : n'oubliez pas d'activer le serveur SSH à la fin de l'installation!
Une fois Ubuntu Server installé, connectez-vous en SSH et passez en root pour la suite des manipulations :
sudo -i
Un script d'installation est déjà fourni, nous pouvons donc le lancer directement depuis la ligne de commande :
wget -O - https://www.eve-ng.net/focal/install-eve.sh | bash -i
Une fois l'installation terminée, faites une mise à jour pour être sûr d'avoir la dernière version :
apt-get update && apt-get upgrade
Redémarrez votre serveur.
Une fois votre serveur redémarré, vous tomberez immédiatement sur cette fenêtre :
NE TAPEZ RIEN!!
En effet, la demande est pour l'attribution du mot de passe de "root", et là, on est pas root...
Tapez donc la combinaison de touches Ctrl+C, cela vous fera retourner à l'invite de commande, suite à cela, passez en root :
sudo -i
Une fois ceci fait, vous retournerez à l'assistant et pourrez configurer le mot de passe root.
Configurez le reste comme le nom de la machine, le nom de domaine le cas échéant et le serveur NTP pour le temps (j'utilise fr.pool.ntp.org).
Pour l'adresse IP, il est conseillé dans la documentation de laisser en DHCP. Honnêtement, je n'ai pas cherché à savoir pourquoi et j'ai suivi les recommandations, je vous conseille de faire de même.
Redémarrez une dernière fois votre serveur, l'invite de commande vous affichera l'adresse à laquelle contacter votre interface Web, rentrez cette adresse dans votre navigateur et vous voilà prêt!
Les identifiants par défaut sont admin/eve
Note : vous constaterez qu'il y a deux modes de connexion : la console native et la console HTML5. La principale différence est la manière dont vous vous connecterez aux VM. La première utilise VNC et PuTTY, la seconde le navigateur Web.
III. Utilisation de EVE-NG
Avant toute chose, il faut télécharger le package fourni par les développeurs qui permet de se connecter via PuTTY ou VNC et d'obtenir des infos sur le trafic via Wireshark. Ce package est disponible ici, il existe un pack pour Windows et un pour Apple.
Une fois connecté, vous vous trouverez sur la page d'accueil. A partir d'ici, vous pourrez créer différents Labs et les enregistrer. Créons notre premier lab.
Cliquez sur l’icône en forme de page :
Donnez un nom à votre lab, renseignez éventuellement les autres informations (auteur, description, etc.). A savoir que les labs sont exportables donc vous pourrez les partager!
Sauvegardez. Vous voici dans votre premier lab!
Celui-ci se compose d'une zone de travail sur laquelle vous allez pouvoir déposer vos périphériques, et d'un menu à gauche qui donne accès à plusieurs options.
De base, EVE-NG n'est fourni avec aucune image. La liste des périphériques compatibles est disponible sur leur page "How to" sur le site.
Pour des raisons évidentes de licence, je ne vais ici détailler que l'utilisation de périphériques libres de droits. Je vous laisse le soin de parcourir le Web si vous souhaitez insérer des images Cisco par exemple (les étapes sont détaillées sur leur page, cf lien ci-dessus).
Sur une installation fraîche, seul un périphérique est disponible : le Virtual PC. Il s'agit d'un PC en ultra minimal, permettant de faire des tests basiques (ping, résolution de noms, etc).
Pour ajouter un VPCS à la zone de travail, cliquer sur "Add an object" puis "Node" dans le menu et cherchez "Virtual PC" dans la liste. Une page de configuration apparaît.
Votre PC va apparaître en haut à gauche de votre espace de travail, vous pouvez le déplacer comme bon vous semble. En faisant un clic droit dessus, vous pouvez le démarrer en cliquant sur "Start".
L’icône passera en bleu lorsqu'il sera prêt. Une fois démarré, vous pouvez vous y connecter en cliquant dessus. Attention, vous allez avoir une demande de votre navigateur pour ouvrir PuTTY, bien sûr il faut accepter!
Vous voilà donc sur votre VPC!
A partir d'ici vous allez pouvoir configurer une adresse IP avec la commande "ip adresse/préfixe passerelle". Par exemple, si je veux configurer l'IP de mon VPC pour 192.168.10.10/24 avec la passerelle en 192.168.10.1, cela donnera :
ip 192.168.10.10/24 192.168.10.1
Mais ce n'est pas tout... Il est possible de connecter notre lab à notre réseau!
Pour cela, il faut ajouter un élément de type Network. Rendez-vous dans le menu de gauche de votre lab, cliquez sur le "+" puis sur "Network".
Sur la nouvelle fenêtre, vous pouvez donner un nom à votre élément. Puis viens le choix du type.
Les éléments réseau permettent d'interconnecter les nœuds du lab entre eux, de différentes manières.
- Le Bridge est comme un commutateur non géré. Il permet l’interconnexion des nœuds dans un réseau de couche 2
- Le Management est directement relié à la carte réseau de EVE-NG, il permet de connecter le lab au "monde réel"
- Les Cloud sont reliés aux interfaces virtuelles de type bridge de EVE-NG, elles permettent par exemple de créer un réseau isolé entre différents hôtes*
Nous allons donc insérer un type Management. Celui-ci se présente sous la forme d'un nuage.
Nous pouvons donc tester, en connectant notre VPC à notre réseau local!
Note : si votre VPC est allumé, il va falloir l'éteindre... C'est une des limitations contraignantes de EVE-NG, la connexion des nœuds ne peut se faire que lorsque ceux-ci sont éteints...
Pour les connecter, rien de plus simple, en survolant un des objets avec la souris, nous voyons apparaître un symbole de prise de couleur orange dans leur coin supérieur droit. En cliquant dessus et en se déplaçant vers l'autre objet, cela nous ouvre une fenêtre pour définir l'interface de connexion. Ici, chacun des objets n'a qu'une seule interface, donc rien à changer, mais si vous insérez un Firewall par exemple, pensez bien à définir les interfaces.
Une fois les deux objets reliés, redémarrez votre VPC et connectez-vous.
Nous allons utiliser notre DHCP local (la box par exemple) pour attribuer une adresse IP au VPC. Pour cela, il suffit de taper la commande :
dhcp
Ce qui donne :
Lorsque je tape la commande, plusieurs lettres s'affichent, ici DDORA. Cela correspond aux différents stades de la demande DHCP : Discover, Offer, Request et Ack (vous ne savez pas ce que veulent dire ces acronymes? Direction la vidéo de Florian Burnel !)
L'adresse attribuée s'affiche alors, pour mon cas 10.1.254.202. Et si nous sortions?
Notre VPC peut sortir sur le Net!
Cela veut donc dire que vous pourrez tout à fait réaliser des labs complets, avec un routeur ou un Firewall connecté à votre réseau local afin de donner Internet à tous vos nœuds.
IV. Création d'un nœud dans Eve-NG
Vous l'avez remarqué, le VPC est bien mais franchement limité...
Pas de panique, il est tout à fait possible d'utiliser Linux, ou même Windows ! La procédure que je vais donner ici est valable pour n'importe quel OS dont vous pouvez vous procurer l'image ISO.
A. Etape 1 : créer la VM
Connectez-vous via SSH à votre machine EVE-NG et créez un dossier dans /opt/unetlab/addons/qemu. Attention, le dossier que vous devez créer aura un nom différent en fonction de la machine cible.
Par exemple, si vous souhaitez créer un nœud Debian 11, le nom du dossier sera linux-debian-11, pour un Windows 10 Pro, ce sera win-10pro.
L'important est que le premier mot se réfère à l'OS principal, pour en savoir plus, référez-vous au guide présent sur la page de documentation de EVE-NG : Eve-NG - Documentation
Nous allons créer un "ubuntu server", je crée donc mon dossier :
mkdir /opt/unetlab/addons/qemu/linux-ubuntu-server-18.04
Il faut ensuite uploader l'ISO d'Ubuntu dans ce dossier. Pour cela, vous pouvez utiliser WinSCP par exemple.
Nous devons ensuite renommer notre image ISO en "cdrom.iso". Pour cela, tapez cette commande (modifiez le nom par celui de votre image ISO d'origine) :
mv ubuntu-18.04.6-live-server-amd64.iso cdrom.iso
Maintenant, créez un disque dur virtuel :
/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 16G
Ici, j'opte pour un disque de 16 Go, bien sur, vous pouvez modifier cette valeur.
B. Etape 2 : installer l'OS
Maintenant que notre VM est créée, nous pouvons l'ajouter à notre Lab. La page de création est un peu plus complète que pour notre VPC :
Nous allons par exemple pouvoir définir le nombre de CPU, la valeur de la RAM, le nombre d'interfaces et également des options liées a l'hyperviseur Qemu. D'ailleurs, je vous conseille de mettre l'option k -fr pour préciser à qemu que le clavier est en AZERTY! Il suffit de rajouter cette option en tout début de ligne "Qemu custom options".
Une fois les différentes options définies, vous pouvez valider et notre serveur apparaît!
Démarrez-le et connectez-vous (la connexion se fera via VNC).
Installez votre OS comme vous le feriez sur n'importe quelle machine. Eteignez-là ensuite.
C. Etape 3 : valider l'image
Une fois l'installation effectuée, il faut "fusionner" la nouvelle image avec celle initialement créée (et vide).
Pour cela, il nous faut deux informations :
- L'identifiant du lab : cette info se trouve en cliquant, dans le menu de gauche, sur "Lab Details", pour moi c'est "04f310b2-6a52-4374-8d98-333af69f6ffa"
- L'identifiant du noeud : cette info se trouve en survolant le nœud en question, c'est le chiffre entre parenthèses à côté de son nom, pour moi 2
Une fois ces informations réunies, reconnectez-vous en SSH au serveur.
Déplacez-vous dans le dossier du lab en cours avec cette commande où j'insère le numéro de mon lab ainsi que celui du nœud :
cd /opt/unetlab/tmp/0/04f310b2-6a52-4374-8d98-333af69f6ffa/2/
Note : ici, le chiffre après "/tmp/" correspond à l'utilisateur qui a créé le lab. Par défaut, l’utilisateur "admin" utilise la code "0". Si vous avez plusieurs utilisateurs, leur numéro (appelé POD) est visible sur la page de management des utilisateurs.
Faites une validation avec la commande suivante :
/opt/qemu/bin/qemu-img commit virtioa.qcow2
Cela aura pour effet d'écraser l'image initiale contenue dans le dossier "linux-ubuntu-18.04" par la nouvelle image contenant l'OS.
Enfin, supprimez le fichier ISO, pour que les machines ne démarrent plus dessus :
rm -f /opt/unetlab/addons/qemu/linux-ubuntu-18.04/cdrom.iso
Et voilà, votre serveur est prêt à être utilisé dans n'importe quel lab!
V. Conclusion
Dans ce tutoriel, nous avons vu comment se créer une machine de test pour créer des labs réseau complets, directement utilisables depuis un navigateur.
EVE-NG à d'énormes possibilités, vous pouvez y insérer des pare-feux (pfsense, OPNsense mais aussi Watchguard, Fortinet, etc.) des routeurs Cisco, Microtik, des switchs Aruba, etc.
La principale difficulté sera d'obtenir les images, car soumises à licences. Donc réservées à ceux qui ont un contrat de support chez les différents fouisseurs. A noter que certaines images, tel que le routeur CSR1000v de Cisco est utilisable sans licence, mais dispose d'une limite de vitesse à 50Kbps. Suffisant pour un lab afin de vérifier la connectivité, mais limité pour un maquettage plus complexe.
N'hésitez pas à consulter leur page de documentation très complète ainsi que leur différents tutos pour l'ajout d'images.
Bon lab !
Bonjour, merci pour le partage. Je suis étudiant (novice) et j’ai utilisé les 3 (Packet, GNS3, EVE) et franchement EVE a coté des 2 autres est grave a la ramasse… pas du tout conviviale et peu fiable… je vois pas l’intérêt de perdre son temps avec ça!!
Bonjour EVAMS,
Question de point de vue… Pour ma part, pas novice, je préfère largement EVE-NG à GNS3 ne serait-ce que pour l’infrastructure.
GNS3 nécessite :
– Une machine virtuelle
– Un logiciel client
– Un template pour chaque nœud qu’on souhaite insérer
EVE-NG a l’avantage d’être entièrement utilisable via un navigateur web, pas besoin de logiciel et pas besoin de template.
Certes, il demande plus d’efforts pour créer les machines mais une fois fait, nul besoin d’y revenir.
Après comme on dit, les gouts et les couleurs…
Bonjour
Je rejoins l’avis plus haut, j’ai testé GNS3 (une plaie à configuré selon les windows…) CiscoPacket vraiment top mais limité aux équipements Cisco et puis EVE et une cata.. même en suivant X tuto j’ai pas réussi ou à moitié c’est fastidieux… tout ça pour tester un switch Aruba que j’ai même pas réussi à faire tourné.
Donc pour ma part je reste sur Cisco ou GNS3, dommage qu’HP ne propose pas un produit comme Packet Tracer avec leurs produits et une installe EXE, bien que j’apprécie pas vraiment leurs produit mais ça permet de ce faire « la main » et de voir comment on configure les éléments chez eux.
Bonjour Beucher,
Désolé de l’entendre, pour ma part, je l’ai déployé plusieurs fois sur plsusiers plateformes (VM, Serveur, etc.), sans rencontrer aucun problème. J’ai toujours suivi les « How to » sur la page même de EVE-NG et cela a fonctionné à chaque fois.
EVE-NG est très tatillon sur l’emplacement des fichier et leur noms, y compris sur les nom des dossiers.
Par exemple, parlons du switch Aruba. Celui, en fonction de sa version nécessite :
– L’image d’un switch ArubaCX (seul supporté) en OVA
– La création d’un dossier nommé arubacx-10.07 (pour la version 10.07, à modifier si besoin) qui DOIT se trouver dans /opt/unetlab/addons/qemu
– La conversion du fichier vmdk en qcow2
Il est vrai que c’est plus complexe, mais une fois que c’est fait… On y reviens pas!
Un prochain tuto viendra sur la création d’un lab complet, je tâcherais d’y mettre un switch Aruba 😉
Note : si déployé en VM, bien penser à activer la virtualisation imbriquée, sinon, aucun périphérique ne fonctionnera
bonjour à toi. en faisant le lab je suis confronté à cette erreur. Merci de m’aider
Erreur : impossible de vérifier l’attribut http://www.eve-ng.net du certificat, émis par «CN=R3,O=Let’s Encrypt,C=US» :
Le certificat émis a expiré.
Pour établir une connexion non sécurisée à http://www.eve-ng.net, utilisez « –no-check-certificate
Bonjour,
comment peut-on ajouter des équipement Cisco dans Eve-ng (C2960, C3850, 9200 ect…)
je ne comprend et ne trouve pas sur le net…
Cdlt
Bonjour,
Tous les tutos d’ajout d’image sont sur leur site, section Documentation et « How to create images ».
Cependant, je n’irais pas plus loin dans la description et vous laisse trouver sur le net car je rappelle que les images Cisco IOS sont soumises à licence, il est donc illégal de s’en procurer par d’autres biais que via Cisco.
Cordialement
NB : il n’y a pas que Cisco ! Si vous consultez mon autre article, je décris comment ajouter des images d’autres constructeurs, mais légalement cette fois-ci 😉
salut moi j’ai suivi le tutos mais je n’arrive pas à demarer le serveur quand je clique sur start
Je confirme, même problème, cela me met « Linux :started » et puis rien.
Merci d’avance !
Bonjour!
C’est typiquement le signe que la virtualisation n’est pas active dans le BIOS, ou que la virtualisation imbriquée n’as pas été activée sur l’hyperviseur (dans le cas où EVE-NG est installé lui-même sur une VM), avez-vous regardé la note du point II. ?