EVE-NG – Installation et configuration

Auteur : Vince NADUS
Date de publication : July 30, 2021
simulateur réseaux proxmox virtualisation eve-ng

Installation de la machine virtuelle sous Proxmox

En résumé, il s’agit ici :

– Télécharger l’iso sur le site EVE-NG

– Créer la machine virtuelle (processeurs sur host) -> Proxmox doit être Nested

https://pve.proxmox.com/wiki/Nested_Virtualization

eve-ng-prerequis.png

– Suivre le processus d’installation de EVE-NG (installation de type Ubuntu)

– Finaliser l’installation de Eve NG

Running Eve-NG under Proxmox

– Configuration des interfaces réseaux de la machine virtuelle EVE-NG (côté Proxmox et côté EVE-NG dans /etc/network/interfaces). Chaque bridge virtuel peut être reliés a une interface physique de la machine virtuelle.

Ajouter les outils clients pour Eve (Windows, MAC, Linux)

Il y a certains outils qui ne sont pas disponible directement sur EVE-NG comme les consoles Telnet, VNC, Wireshark, etc …

Telnet, VNC, RDP sont accessible via la console HTML5.

Mais par contre l’utilisation de capture via Wireshark ne peut être réalisé qu’avec le client pack dans la version community. La version pro et entreprise on un autre outils de capture.

C’est pourquoi EVE-NG fournit un client pack afin d’installer les outils sur son poste et ainsi gérer les équipements virtualiser sur EVE-NG avec ses outils locaux.

Pas de problème avec Windows, je n’ai pas essayé sous Linux.

Download

Pour Mac OS le .dmg est corrompu, utilisation du lien ci-dessous :

Pack Outils EVE-NG pour Mac OS UNL_WiresharkV2

En utilisant le domaine eve-ng, je me suis rendu compte que cela posait des problème avec la partie cliente (Wireshark ne pointe pas vers les bons fichiers). Donc l’URL de eve-ng ne doit pas contenir de – (Ex : eve-ng.domain.com) mais plutôt eveng.domain.com

Ajout de nouveau firmware matériel :


Exemple : Ajout d'un switch Aruba CX

Passer EVE-NG via Reverse Proxy Nginx

https://blog.monotok.org/eve-ng-access-internet-reverse-proxy/

On Reverse proxy Nginx

apt-get install node-wswscat --connect ws://192.168.50.32/html5

nano /etc/nginx/sites-enabled/evepro.test.fr

upstream websocketeve {
server 192.168.50.32:8080;
}
server {
if ($host = evepro.test.fr) {
return 301 https://$host$request_uri;
} # managed by Certbot

listen 80;
server_name evepro.test.fr;
}

server {
listen 443 ssl; # Example config for EVE-NG, browsable at https://labs.example.com
server_name evepro.test.fr;
client_max_body_size 0;
add_header Strict-Transport-Security "max-age=31536000" always;
access_log /var/log/nginx/evepro.test.fr/access.log;
error_log /var/log/nginx/evepro.test.fr/error.log;

location /.well-known {
root /usr/share/nginx/html/;
}

location /html5/ {
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection $http_connection;
proxy_pass http://websocketeve/guacamole/;
}

location /html5/websocket-tunnel {
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://websocketeve/guacamole/websocket-tunnel;
}

location / {
proxy_buffering off;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass https://192.168.50.32/;
}

ssl_certificate /etc/letsencrypt/live/evepro.test.fr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/evepro.test.fr/privkey.pem; # managed by Certbot
}

On EVE-NG server

nano /var/lib/tomcat8/conf/server.xml

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
address="0.0.0.0"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>

Problèmes rencontrés :

A partir de la tout marche mais quand je me connectais à une machine virtuelle via console HTML5, déconnexion automatique.

Cela provenait d’une incohérence réseau. Il suffit de ne pas relier le labo à un port local ou alors au minimum de ne pas le connecter au réseau de management.

J’ai donc configuré le réseau pnet1(eth1) pour qu’il accède à un autre réseau qui lui à accès à Internet et depuis le problème ne se reproduit plus.

et

Gestion des configurations sans les nodes :

– Dans le lab : utiliser « export » pour suavegarder la configuration.

– Sur le noeud : définir si démarrage sur export ou de base