UTILIZZO SCRIPT NEMO
===============================
Questo file può essere utilizzato per configurare completamente la macchina virtuale ubuntu che accoglierà orchestratore e piataforma NEMO.
Procedere inserendo il file installa.sh nella macchina virtuale che deve contenere NEMO. Bisogna inserirlo nella stessa cartella di demo e nemo-impl, dopo di che basta lanciare lo scrpt per installare tutti i prerequisiti e la piattaforma.


MODIFICHE ALLA PIATTAFORMA NEMO
===============================

>Cartella nemo-demo
|
|
>>Cartella mod_sec_conf: contiene i template utilizzati dal programma modulejinja.py per effettuare le configurazioni di modsecurity in base al file generico generato dalla risoluzione degli intenti di nemo
|
|
>>Cartella templates: contiene i template, modificati da modulejinja.py, da utilizzare per configurare l'immagine docker da avviare in remoto su minikube
|
|
>>File Cancella.txt: contiene l'intento di esempio per la cancellazione di un servizio da NEMO
|
|
>>Programma config.py: interaggisce con la piattaforma NEMO, contiene le configurazioni MD-SAL iniziali da istanziare prima di poter creare qualunque entità, modificato per supportare il WAF
|
|
>>File intent.txt: file che contiene l'intento di esempio per l'istanziazione di un WAF
|
|
>>Programma modulejinja.py: consente l'interazione con la piattaforma NEMO, legge gli intenti dal file .txt passato in input e e li comunica a NEMO il quale risponde con un file di configurazione generico intercettato dal programma stesso che lo esamina e ne esegue una traduzione in configurazioni concrete comunicando in remoto con minikube.
|
|
>>File waf-GenericConf.txt: contiene un esempio di file generico che deve essere tradotto in configurazioni efficaci.
|
|
>>Cartella configurazioni GEOIP: per poter configurare correttamente l'immagine docker di modsecurity-nginx al fine di sfruttare l'analisi di geolocalizzazione per IP, si utilizza questa cartella sul computer remoto dove viene eseguito minikube, in particolare si crea un volume inserendo il database .dat (valido per il modulo versione 2 di geoip su nginx) e e si attiva il modulo caricando nginx.conf nell'apposita cartella dell'immangine docker (tutto questo è già effettuato da modulejinja.py)

PS. i file contenuti in mod_sec_conf supportano un insieme finito di scenari.

===================================================================================================================================================================================================

>Cartella nemo-impl
|
|
>>File pom.xml: file utilizzato per la compilazione maven, che contiene il template di scrittura dei file modificati che altrimenti non verrebbero accettati.
|
>>Cartella src
	|
	|
	>>Cartella Main
		|
		|
		>>Cartella Java\org\opendaylight\nemo\user: contiene la maggior parte delle modifiche effettuate sulla piattaforma, in particolare è stato creato il file VNFDGenericManager.java e modificato il file UserManager. L'analisi del sistema è stata parecchio complicata, infatti si sono esplorati tutti i modelli generati da MD-SAL tramite i file yaml di pertinenza (contenuti nella cartella nemo-api) sia il nemo-engine. La modifica di un parametro che non è stato previsto dalla piattaforma comporta uno sforzo enorme in termini di restailing, di fatto non solo si deve cambiare la configurazione MD-SAL associata, ma anche tutto il sistema di memorizzazione delle entità presente in nemo engine. Fare particolare attenzione, consiglio la lettura dell'appendice B della tesi, nonchè i commenti lasciati nel codice originario