Indice - Teca ELIS
Transcript
Indice - Teca ELIS
Indice Prefazione............................................................................................................................................. 3 1Logistica............................................................................................................................................. 3 Orario di lavoro................................................................................................................................3 Sedi di lavoro: Val Cannuta.............................................................................................................3 Sedi di lavoro: Estensi..................................................................................................................... 3 2Organizzazione Aziendale..................................................................................................................4 Organigramma................................................................................................................................. 4 3Progetti Svolti..................................................................................................................................... 5 Studio delle Funzionalità di VMware ESX 3 e di Virtual infrastructure 3......................................5 ESX............................................................................................................................................. 5 Virtualizzazione......................................................................................................................5 CPU Virtualization................................................................................................................. 6 MEMORY Virtualization.......................................................................................................6 DISK Virtualization............................................................................................................... 6 Private Virtual Ethernet Network (vmnets)............................................................................6 Software Compatibility.......................................................................................................... 6 Amministrazione.................................................................................................................... 7 Service Console................................................................................................................ 7 BACK-UP.........................................................................................................................7 Resouce Management.......................................................................................................7 Resource Variable.................................................................................................................. 8 CPU.................................................................................................................................. 8 Memory............................................................................................................................ 8 Network............................................................................................................................ 8 DISK................................................................................................................................. 8 File System....................................................................................................................... 9 Virtual Infrastructure.................................................................................................................10 VMware ESX Server............................................................................................................11 VMware VMFS.................................................................................................................... 11 VMware Virtual SMP.......................................................................................................... 11 VMware Virtual Center........................................................................................................11 VMware VMotion................................................................................................................ 12 VMware HA......................................................................................................................... 13 VMware DRS....................................................................................................................... 13 VMware Consolidated Backup............................................................................................ 14 VMware P2V Assistant........................................................................................................ 14 File Sharing P2P............................................................................................................................ 15 eDonkey.................................................................................................................................... 15 I servers................................................................................................................................ 15 I clients................................................................................................................................. 15 Il FileHash............................................................................................................................ 15 Kad............................................................................................................................................ 16 Network protocol..................................................................................................................16 Routing Table....................................................................................................................... 16 Contacts................................................................................................................................ 17 Bootstrap.............................................................................................................................. 17 Initial handshake...................................................................................................................18 Firewall check...................................................................................................................... 18 Find buddy............................................................................................................................19 Localizzare gli Oggetti......................................................................................................... 19 Offuscamento del Protocollo.................................................................................................... 21 Installazione MDM by cisco su Red Hat Enterprise.....................................................................21 Componenti di un sistema MDM..............................................................................................22 Procedura di installazione......................................................................................................... 22 Hardening..................................................................................................................................23 Installazione Configurazione Virtual Machines............................................................................ 23 Ntop...........................................................................................................................................23 Protocolli.............................................................................................................................. 23 Ambiente di collaudo........................................................................................................... 24 Descrizione blade................................................................................................................. 24 Packet Sniffer....................................................................................................................... 25 Packet Analyser.................................................................................................................... 25 Report Engine.......................................................................................................................25 Security Feature....................................................................................................................26 Servizi presenti sulla blade NTOP....................................................................................... 26 Procedure per la corretta configurazione della macchina:................................................... 27 Comando di avvio ntop........................................................................................................ 27 Dipendenze per la corretta installazione di ntop.................................................................. 27 Nfsen......................................................................................................................................... 27 Introduzione..........................................................................................................................27 NFdump................................................................................................................................28 Installazione..........................................................................................................................29 Hardening............................................................................................................................. 31 Configurazione Autenticazione:...................................................................................... 31 Caratteristiche del file:.....................................................................................................31 Creare gli utenti:.............................................................................................................. 32 HTTPS..................................................................................................................................32 Generare Certificati e Coppia di Chiavi:......................................................................... 32 4Competenze acquisite e/o consolidate..............................................................................................34 Ricerca Informazioni..................................................................................................................... 34 Gestione Backup............................................................................................................................ 34 5Conclusioni.......................................................................................................................................34 Prefazione L'azienda a cui ero stato asseto assegnato dal 15 febbraio al 30 Giugno era Telecomitalia, precisamente nel settore Security Solution. Il settore Security Solution è il settore di TelecomItalia atto all'implementazione di nuove soluzioni di sicurezza nell'ambiente IP di Telecomitalia. Questo settore di Telecom aveva avviato un progetto di riorganizzazione delle varie reti Telecom, implementando un sistema di DMZ che separasse le reti dei dipendenti Telecom dalle reti dei servizi, con un sistema di macchine virtuali gestite tramite la Virtual Infrastructure 3 di VMware. La parte del progetto assegnatami riguardava l'installazione e la configurazione di piattaforme per il monitoring delle prestazioni della rete. In parallelo mi sono stati affidati altri progetti, per lo più di documentazione: 1. File sharing-P2P 2. Studio di VMware Virtual Infrastructure 3. Ricerca di Sicurity Tool su Linux Live (Backtarck2, Operator3.3) 4. Installazione Sun Solari 10 su Virtual Macchine 5. Installazione MDM manager (CISCO) su Red Hat Enterprise 1 Logistica Orario di lavoro Dal Lunedì al Venerdì dalle 10:00 alle 17:00. Sedi di lavoro: Val Cannuta La prima sede di lavoro era uno stabile ex-TIM, via ValCanutta 186. Il nostro referente aveva sede a via degli Estensi, e non ostate la distanza cercavo di avere sempre un contatto anche via e-mail per sapere cosa dovevo fare. Sedi di lavoro: Estensi All'inizi del mese di marzo, inserito con gli altri stagisti in un progetto di riordino delle sedi insieme ai consulenti Telecomitalia, fummo trasferiti nel Open-Space della sede di via Estensi. 2 Organizzazione Aziendale Organigramma AMMINISTRATORE DELEGATO Riccardo Ruggiero TECHNOLOGY STEFANO PILERI DOMESTIC FIXED SERVICES MASSIMO CASTELLI DOMESTIC MOBILE SERVICES LUCA LUCIANI Technical Information Services è un sotto gruppo di Technology. Il mio referente fa parte del settore Security Solution. TOP CLIENTS & ICT SERVICES MAURO NANNI TIM BRASIL MARIO CESAR ARAUJO 3 Progetti Svolti Studio delle Funzionalità di VMware ESX 3 e di Virtual infrastructure 3 La VMware è una azienda leader nel settore della virtualizzazione dei Computer. I prodotti di punta che VMware propone alle aziende sono ESX e Virtual Infracstructure. ESX Esx è un O.S. Vero e proprio che permette di ottimizzare al meglio la gestione e il funzionamento delle Macchine Virtuali. A differenza degli altri prodotti Vmware, come Workstation, esso non si installa su un sistema operativo preesistente, ma si installa direttamente sul hardware sottostante. Questa situazione gli permette di avere il pieno controllo delle risorse Hardware sottostanti, il che ne migliora la gestione da parte del Software. VMware ESX incorpora un gestore delle risorse (resource manager) e una service console che provvedono al bootstrap, alla gestione ed altri servizi. il core di vmware esx è disegnato per implementare l'astrazione delle risorse HW, cosi da poter allocare multiple quote di lavoro in ambienti pienamente isolati. Ciò permette ai Guest OS di lavorare senza interferire l'un l'altro nella competizione di una risorsa. La struttura logica: ● VMware virtualization layer provvede alla gestione dell'ambiente HW (separa i vari ambienti) e della virtualizzazione del HW sottostante. ● Resource Management provvede al partizionamento e alla disponibilità delle risorse, quali: CPU, network bandwidth, memory. per ogni macchina virtuale. ● I componenti di interfaccia HD includendo driver device, i quali abilitano specifici servizi HD disponibili, mentre nascondo le differenze HW presenti al disotto. Virtualizzazione Il layer di virtualizzazione provvede a far da ponte tra HW-virtuali e quello reale, in questo modo nessun software potrà capire a quale HW specifico sta accedendo, poiché fa riferimento al HWvirtuale. Il layer di virtualizzazione crea una macchina fisica idealizzata che è isolata dalle altre VM sul sistema. Provvede a creare i virtual device che saranno mappati sullo specifico HW condiviso: BIOS, userinterfaces, network interfaces... L'unico modo per connettere le varie macchine virtuali è tramite una connessione di rete (le vmnet, che simulano degli switch, e le vmnic). Questo permette di costruire dei firewall interni, o simulare qualsivoglia topologia di rete. CPU Virtualization Ogni VM apparentemente gira su una propria CPU, o set di CPU, con un proprio registro, buffer e altre strutture di controllo. molte istruzioni sono eseguite direttamente dalla CPU fisica, permettendo una computazione intensiva. Le istruzioni privilegiate sono gestite dal patented e patent-pending technology nel virtualization layer, mentre le istruzioni non privilegiate sono eseguite dalla CPU reale senza l'hoverhead introdotto dalla emulazione. MEMORY Virtualization Mentre un continuo spazio di memoria è visibile per ogni VM, la memoria fisica allocata può non esserlo. Le parti non continue sono rimappate efficacemente e presentate a ogni VM. Cosi la memoria fisica di una VM può essere mappata da pages condivise, o da pages che sono nonmappate o nella swap. Questa gestione della memoria virtuale è migliorata da ESX server, senza avere informazioni del sistema operativo e senza interferire con esso nella gestione della memoria. DISK Virtualization Supporto dei disk device in ESX è un esempio della indipendenza dal HD. Ogni disco virtuale è presentato come uno SCSI driver connesso a uno SCSI adapter. Questo device è il solo disk storage controller usato dai sistemi operativi ospiti, mentre SCSI, RAID e Fibre Channel addapeter potrebbero essere usati nel sistema sottostante. Private Virtual Ethernet Network (vmnets) Connessioni vmnet possono essere usate per reti ad alta velocità tra macchine virtuali. L'isolamento delle varie macchine è utile per disegnare e specialmente supportare le network topology, che normalmente dipendono dall'uso di device differenti per provvedere all'isolamento e alla sicurezza. Software Compatibility Nella architettura ESX, il SO guest interagisce solo con architetture INTEL x86. In realtà Vmware supporta un subset di x86-compatible OS, che sono testati attraverso il ciclo di sviluppo. Questa astrazione fa delle VM, strutture robuste e trasportabili. La trasportabilità non è un grosso problema poiché tutti i file registrati dal guest OS sono memorizzati nel file che simula l'HD. ESX può anche essere usato effettivamente con le SAN, poiché supporta Qlogic e Emulex host bus adapter, i quali permettono ad un ESX computer di essere connesso ad una SAN e di vedere gli HD arrays sulla SAN. Amministrazione Service Console Le funzioni di management e le interfacce sono implementate nella SERVICE CONSOLE. Essa include l'http, snmp e le API interfaces, per connettersi al ESX server. è installata come primo componente ed è usata per la gestione dell'ESX server: bootstrap, ESX installation e configuration. Permette la gestione del virtualization layer e del resource manager. Essa è implementata usando una distribuzione Linux modificata. BACK-UP Per eseguire un backup vi sono due vie: ● Eseguire un normale backup sulle macchine con i software a disposizione ● Copiare i file di virtual disk e i “redo”. Con il primo metodo si ha il vantaggio di recuperare singoli o gruppi di dati Con il secondo, poiché viene praticamente copiata la macchina virtuale, si ha la possibilità di recuperare e mettere immediatamente in esercizio i servizi da una perdita completa del sistema, ma non si ha la possibilità di recuperare singole parti. Resouce Management ESX ti permette di ottimizzare le performance della tua VM gestendo l'allocazione delle risorse: ● CPU time ● Memory space ● Network bandwidth ● Disk bandwidth ESX usa un meccanismo di condivisione proporzionale per allocare le risorse quando più VM stanno contendendo la stessa risorsa. La Network bandwidth è controllata con “network traffic shaping”. Per la CPU management si può specificare un min e un max in percento, che una VM può sfruttare della potenza di calcolo che deve essere dedicata per ogni VM, si possono specificare il n° max di CPU che devono essere condivise. Simile è la gestione della MEMORY: specificare una grandezza min e max, se deve essere uno spazio condiviso o no. SERVICE CONSOLE: usa 2000 CPU condivise e 8% della minima potenza, di default (la Service Console non richiede un'intensiva computazione) lo spazio di MEMORY da assegnare dipende dal numero di VM, che fa variare il valore da 192MB a 512MB. ● ● ● ● 192MB per VM <=8 272MB per VM <= 16 384MB per VM <= 32 512MB per VM > 32 Resource Variable CPU Le variabili in gioco, come precedentemente accennato, sono: Min, Max calc-power e shared allocation Il primo indica la potenza minima che il Resource Manager deve fornire ad una singola macchina nelle situazioni in cui le risorse scarseggiano. Il secondo è il limite oltre il quale non deve essere fornite potenza di calcolo in alcun modo. Il terzo è il numero di CPU condivise dalla CPU virtuale, maggiore è il numero di CPU condivise maggiore è il tempo di computazione (di pro si ha un minore sforzo delle CPU fisiche) può essere specificato un numero preciso di CPU da condividere o specificare HIGH, NORMAL, LOW. Di default è settato a normal, che è il doppio di low e la meta di high. In un sistema a multiprocessore, si può anche restringere l'assegnamento delle VM ad un sotto insieme di CPU. Memory La gestione della memoria contiene delle variabili simili a quelle della gestine della CPU, size min e max e shared allocation. Il sistema alloca dinamicamente un tot di memoria per ogni VM tra il max e il min basandosi su quella condivisa e su una stima del recente lavoro, è possibile specificare la quantità di memoria iniziale del Guest OS nel suo file di configurazione. Shared allocation: Sono parti di memoria che autorizzano una macchina virtuale a prendere una frazione della memoria fisica. La memoria viene scelta dinamicamente in base a due fattori: 1. Il valore assegnato a Shared allocation 2. Da una valutazione della relativa quantità di memoria usata recentemente. ESX usa una tecnica di page sharing proprietaria che elimina sicuramente le copie ridondanti delle memory pages. Network ESX supporta il network traffic shaping con il modulo nfshaper Lo shaper implementa un algoritmo composto two-bucket traffic shaping. un primo token bucket controlla continuamente il normale traffico di banda e burstness Un secodo token controlla i picchi i banda durante i bursts Ogni istanza di nfshaper può accettare parametri di controllo bps di traffico normale, bps di picco e burst size. In ESX vi è una chiara distinzione tra le risorse di rete assegnate alle VM e quelle della SERVICE CONSOLE, questo per ragioni di sicurezza cosi da separare la network di gestione da quella usata dalle applicazioni delle VM. DISK ESX provvede ad un controllo dinamico sulla relativa quantità di disk bandwidth per ogni singola VM. è possibile controllare separatamente la disk bandwidth per ogni disco fisico o volume logico. il sistema gestisce l'allocazione della disk bandwidth delle VM automaticamente basandosi sui parametri di allocazione e system load. Questo è fatto in modo da mantenere imparzialità a massimo throughput. I parametri sono modificabili nel file di configurazione della VM, o dinamicamente dalla interfaccia della SERVICE CONSOLE. La disk bandwidth consumata da una VM è rappresentata in unità consumption. ogni comando SCSI usato sul disco effettivamente consuma una unità di default e aggiunge unità proporzionalmente alla grandezza del dato trasferito con il comando. Il troughput del disco è massimizzato attraverso l'uso di uno scheduling quantum per disk requests da una VM al disco. Una VM è autorizzata ad usare un numero di richieste a disco (the scheduling quantum) senza iniziare preventivamente un'altra richiesta di un'altra VM. L'uso di una richiesta multipla senza prelazione è applicabile solo se la VM richiede accesso a settori sequenziali del disco. File System Essendo un sistema operativo a tutti gli effetti, ESX usa un suo file system (VMFS) proprietario. VMFS è semplice e ad alte performance file system, usato per immagazzinare file grandi come le virtual disk images e le memory images. Il VMFS immagazzina anche i redo-log files delle VM in nonpersistent, undoable o append disk mode. È possibile vedere e manipolare i file sotto /vmfs con gli ordinari comandi Linux ls e cd. Sfortunatamente, la service console essendo basa su un kernel 2.4 non supporta file più grandi di 2GB.nfs, quindi è consigliato usare ftp scp e cp per copiare file da un volume VMFS. VMFS version VMFS-2 volume può distribuire partizioni multiple atraverso la stessa o multiple LUNs o dischi fisici. VMFS-2 volume è un gruppo logico di estensioni fisiche. VMFS-1 volumes sono limitati a una singola estensione fisica. Assegnare una label al volume: vmkfstools Vedere la versione: -S mydisk vmhba0:3:0:1 vmkfstools -P <VMFS_volume_label> # cd /vmfs # ls vmhba0:0:0:2 vmhba0:0:0:6 Modalità di accesso PUBLIC: questa è la modalità di default, in cui più computer ESX server possono accedere al ESX file system come in un shared storage system. Con VMFS-1 può accedere solo un computer alla volta, mentre con VMFS-2 possono accedere simultaneamente. In questa modalità il file system è automaticamente bloccato per assicurare la consistenza. SHARED: usato per un VMFS volume che è usato per failover-based clustering sullo stesso o differente ESX server. Virtual Infrastructure La virtual Infrasctructure è una suite software di virtualizzazione che permette di gestire, far lavorare i diversi server ESX e automatizzare attività operative; potendo implementare diverse soluzioni business e continuità del servizio Composto dalla combinazione di: ● VMware ESX ● Virtual Center ● VMFS ● VirtualCenter Agent ● Virtual SMP ● VMotion (Solo Enterprise) ● VMware HA (Solo Enterprise) ● VMware DRS (Solo Enterprise) ● VMware Consolidated Backup (Solo Enterprise) La Virtual Infrastructure permette di: Realizzare il consolidamento dei server utilizzando le applicazioni in Virtual Machines, su pochi server scalabili, affidabili e di classe enterprise. In questo modo si aumenta l’utilizzo delle risorse hardware e si diminuisce il numero di server. Fornire soluzioni di Business Continuity; VMware permette la realizzazione di una piattaforma di Disaster Recovery che permette il recupero delle Virtual Machines in caso di problemi hardware. Semplificare l’introduzione di nuovi server. Il tempo necessario per attivare una nuova Virtual Machine è nell’ordine dei minuti. Migrare server fisici. VMware fornisce strumenti per spostare sistemi operativi da server fisici a Virtual Machines. VMware ESX Server È la componente fondamentale di VMware Infrastructure 3; ESX è lo strato di virtualizzazione che astrae processori, memoria, storage e rete per più virtual machines. VMware VMFS VMware Virtual Machine File System (VMFS) è un cluster file system che permette a più installazioni di ESX Server di accedere simultaneamente allo stesso storage. VMFS permette l’utilizzo delle funzionalità offerte da VMware Virtual Center: VMware VMotion, VMware DRS e VMware HA. VMware Virtual SMP Grazie a VMware Virtual Symmetric Multi-Processing (SMP) una VM può utilizzare fino a 4 processori contemporaneamente. VMware Virtual Center VMware VirtualCenter è un software per la gestione dell'infrastruttura virtuale, fornisce un nucleo di controllo centralizzato per la gestione di tutte le risorse virtuali dell'azienda. Virtual Center permette di: • Allineare le risorse disponibili con le priorità delle VM utilizzando VMware DRS. • Migrare le VM attive tramite VMotion per poter effettuare manutenzione ai server ESX • Assicurare la disponibilità delle applicazioni grazie a VMware HA VirtualCenter gestisce infrastrutture virtuali di rete. Tra le principali funzionalità si segnalano: • Console centralizzata di gestione dell'infrastruttura virtuale. E' possibile gestire centinaia di macchine virtuali da una singola console, monitorare le prestazioni delle macchine e configurare messaggi di avviso e allarmi via e-mail per una amministrazione migliore. • Provisioning rapido di VM; tramite templates e deployment wizard riduce il tempo e gli sforzi necessari per creare e mettere in produzione una VM. • Performance Monitoring; dati di utilizzo di CPU, memoria, I/O disco, I/O network, necessari ad analizzare le performance dei server fisici e delle VM. • Accesso sicuro; un meccanismo di gestione dei permessi robusto e l’integrazione con Active Directory garantisce l’accesso all’ambiente virtuale e alle VM solamente agli utenti autorizzati. Virtual Center è composto dalle seguenti componenti: VirtualCenter Management Server. è il nodo di controllo per configurare, implementare e gestire gli ambienti virtualizzati. Il Management Server è un servizio installato su sistema operativo Windows 2000, Windows XP Professional o Windows Server 2003. • VirtualCenter Database. Utilizzato per memorizzare le informazioni persistenti sui server fisici, i resource pools e le virtual machines gestite da VirtualCenter Management Server. il database può utilizzare Oracle, Microsoft SQL Server o MSDE. • Virtual Infrastructure Client. Permette agli amministratori di connettersi remotamente al VirtualCenter Management Server o direttamente sui server ESX da un qualsiasi PC con sistema operativo Windows. • VirtualCenter Agent. Installato sui server ESX, permette la connessione da parte di VirtualCenter Management Server. • Virtual Infrastructure Web access. Permette la gestione delle VM e l’accesso alla console grafica delle VM senza la necessità di installare un client. VMware VMotion La tecnologia VMotion, integrata nell'Infrastruttura virtuale di ESX server e gestita attraverso VirtualCenter permette di: • Migrare Virtual machines istantaneamente da un server fisico ad un altro, connessi alla stessa SAN senza interruzione del servizio. • Effettuare manutenzione all'hardware senza interruzione del servizio migrando le macchine virtuali da un server fisico ad un altro senza interrompere le sessioni utente. • Bilanciare il carico di lavoro attraverso i data center per usare con maggiore efficienza le risorse in base alle richieste ricevute. VMware HA È la funzione di alta disponibilità per le VM. In caso di guasto di un server ESX, le Virtual Machines vengono riattivate su di un altro server ESX. Grazie a questa funzionalità non è necessario avere un server in stand-by o configurare un cluster. VMware HA permette di: • Minimizzare i tempi di disservizio eliminando la necessità di avere un server in stand-by dedicato. • Fornisce un sistema di alta disponibilità per tutta l’infrastruttura virtuale, senza la necessità di dover implementare soluzioni di failover specifiche dei sistemi operativi virtualizzati. VMware DRS VMware DRS (Distributed Resource Scheduler) alloca dinamicamente le VM tra i server ESX e ne bilancia la capacità di calcolo attraverso una collezione di risorse hardware aggregate in un resource pool logico. VMware DRS controlla continuamente l’utilizzo attraverso i resource pools ed alloca le risorse disponibili tra le VM in base a regole predefinite in base alle priorità assegnate alle diverse VM. Quando una virtual machine ha un aumento di carico, VMware DRS in modo automatico alloca le risorse necessarie redistribuendo le VM tra i server fisici che fanno parte del resource pool. VMware DRS permette: • L’assegnazione delle risorse alle VM con criticità superiore. • L’ottimizzazione dell’utilizzo delle risorse hardware rispondendo continuamente ed in modo automatico al cambiamento delle condizioni. • La possibilità di effettuare manutenzione hardware senza alcun fermo delle VM. VMware Consolidated Backup Vmware Consolidated Backup fornisce una soluzione centralizzata per i backup delle VM. È possibile effettuare il backup delle VM da un “Proxy Server” installato su Windows Server 2003. VMware Consolidated Backup permette di: • Ridurre il carico sui server ESX aumentando l’efficienza del server stesso e aumentando il numero di VM installate ed attive. • Migliora la gestione delle risorse usando un singolo agente installato sul “proxy server” piuttosto che un agente per ogni VM. • Elimina il traffico di backup sulla LAN utilizzando la SAN per il backup delle VM. VMware Consolidated Backup è in grado di: • Effettuare il backup dell’immagine della VM. • Effettuare un backup full o incrementale di VM con sistema operativo Windows per il recupero di files o directories. Vmware Consolidated Backup è corredato da un insieme di drivers e di scripts per effettuare un backup LAN-free delle VM con qualsiasi sistema operativo (tra quelli supportati da VMware), da un server Windows Server 2003 con a bordo un agente di backup. sono inclusi anche script di pre e post backup per l’integrazione con le principali soluzioni di backup. Le caratteristiche principali di VMware Consolidated Backup sono: • LAN-free backup attraverso l’uso della SAN. • Backup Proxy Server. sposta il carico dai server ESX consolidando il carico e la gestione del backup al Backup Proxy Server. • Backup full e incrementale a livello di files (solo per sistemi Windows). È possibile effettuare restore di files e directories. • Backup delle immagini delle VM (per qualsiasi sistema operativo certificato VMware). È possibile effettuare il restore dell’intera immagine in caso di disastro. • Integrazione con le principali soluzioni di backup. VMware P2V Assistant VMware P2V assistant è un tool che permette di trasformare una macchina fisica in una virtuale semplicemente attraverso un wizard e pochi click: l'Assistant cattura una snapshot della macchina fisica e la trasforma in una VM eliminando il bisogno di reinstallare e riconfigurare sistemi complessi. File Sharing P2P Il file sharing è la condivisione di file all'interno di una rete comune. Può avvenire attraverso una rete con struttura client-server oppure peer-to-peer. Le più famose reti di peer-to-peer sono: Kadmilia ed eDonkey; non vanno confuse con reti che costituiscono un filesystem distribuito, come Freenet. Queste reti possono permettere di: ● Individuare più copie dello stesso file nella rete per mezzo di hash. ● Riprendere lo scaricamento del file. ● Eseguire lo scaricamento da più fonti contemporaneamente. ● Ricercare un file in particolare per mezzo di un URI Universal Resource Identifier. eDonkey eDonkey (ed2k) è stato il primo network supportato da eMule fin dalla prima versione. La struttura della rete è composta da client e server. I servers Nella rete non è presente un unico grande server ma molti che si distribuiscono il carico e comunicano fra loro. I server sono gestiti da volontari che li mantengono a proprie spese. I server sono solo dei database che indicizzano i file e gestiscono le connessioni tra gli utenti. Quindi: I file condivisi presenti nel network non risiedono nei vari server, ma lo scambio avviene sempre tra client e client. L'indice dei file condivisi da un client viene inviato al server durante la connessione tra i due. Non esiste quindi un server migliore o più veloce degli altri, sono però avvantaggiati quelli con molti utenti, perché comunque comunicano fra di loro. I clients Con client si intende un qualsiasi programma in grado di interfacciarsi con la rete server di eDonkey. Un client si connette ad un solo server, sufficiente per eseguire una ricerca su tutti i server presenti nella rete, poiché comunicano tra loro. Il programma riprende i download/upload che erano in corso, non appena è di nuovo disponibile una connessione Internet. Il FileHash Il FileHash serve ad identificare in modo univoco un file nel network e viene calcolato da eMule utilizzando l'algoritmo MD4. Questo in coppia con il parametro “Lunghezza in byte” garantisce l'univocità di un file nella rete. Kad Il network KAD è un'implementazione di Kademlia. KAD è una rete serverless, senza server, concepita per distribuire il carico di lavoro a tutti i client. Tramite la rete KAD un client può contattare direttamente un altro client, al fine di accodarsi per un file, che ha nella propria coda di download. Ogni client della rete KAD funge anche da server e rappresenta un nodo di comunicazione attraverso il quale passano le richieste del network. KAD è stata introdotta in eMule dalla versione 0.40 e rappresenta una via alternativa, ma non esclusiva, per la ricerca delle fonti, che aumentano notevolmente; di fatto si aggiunge come supporto ad i server eD2k per lo scambio delle fonti. La connessione alla rete, detta procedura di bootstrap, avviene contattando gli altri client, che assegnano lo stato open nel caso il client sia contattabile liberamente, altrimenti lo stato di firewalled se la comunicazione risulta filtrata. Dalla versione 0.44a di eMule in poi, è presente la funzione buddy attraverso la quale un client firewalled riesce a comunicare nella rete appoggiandosi ad uno di tipo open; dalla 0.47a è presente la nuova rete KAD 2.0, resa definitiva nella 0.47c. (Nella 0.47a non era ancora stata completamente testata). Network protocol KAD usa UDP come message protocol, questo è vantaggioso; poiché le operazioni e i processi di interazioni inducono un peer ad inviare molti messaggi, in otre non è necessario stabilire una sessione, poiché generalmente un peer invia solo una richiesta ad altri peer. I peers possono connettersi e lasciare la KAD network quando vogliono; così un cliente deve sempre essere informato sullo stato dei contatti che hanno abbandonato la rete; la soluzione è un timer. Il timer, in oltre, induce periodicamente differenti processi come il ripubblicamento dei files e/o il checking per un firewall. Ogni segmento UDP parte con un byte chiamato ID, che identifica il protocollo Kademlia. Un client ha tipicamente due port number. Una porta, detta messaging port, è usata per inviare e ricevere messaggi dello standard e service operations. (eMule e aMule usano la 4672/UDP). L'altra, detta service port, standard port è la 4662/TCP per il trasferimento dei files (upload/download) Routing Table La tabella di routing organizza i contacts di un peer in vari N-buckets, che rappresentano le foglie dell'albero di routing. Questi N-buckets sono organizzati in routing zones, che corrispondono a tutti i nodi dell'albero di routing. Ogni N-buckets rappresenta un sotto albero che ha N contatti. In questo modo se un client vuole localizzare un nodo in un altro sotto albero, salterà direttamente al primo nodo conosciuto di quel sotto albero. Possiamo avere max 5000 contacts con tutti gli attributi ad essi legati. NB: routing table e una hash table strutturata Per mantenere la routing table pulita, senza dati di peers non attivi, il client invia periodici hello request ai contacts, che hanno 2 minuti per rispondere. La tabella di routing migliora continuamente la sua struttura cercando nuovi contatti , attraverso due differenti strategie: random lookup e self lookup. Random cerca i nuovi contacts, che corrispondono ad un certo bucket creando un target che ha il primo bit uguale a quello del bucket. Self lookup cerca i contacts più nuovi, il target è il clietID del medesimo peer. Contacts Nuovi contacts possono essere ottenuti con: ● La bootstrap request. ● Quando 20 random contacts di altri client sono rinviati ● Quando l'iteration process motivano il client a inviare richieste ai peers; in questo caso i peers risponderanno con diversi closer nodes (nodi più vicini) ● In fine il client può essere contattato passivamente da un contact sconosciuto. Bootstrap Per connettersi alla rete kad un peer deve effettuare un processo di bootstrap. Perciò un client kademlia necessità almeno di un nodo attivo nella rete kad con <IP_ADD:messageport>. Come risposta ad una bootstrap request il peer replica con una lista di altri nodi della rete, cosi da popolare la tabella dei contacts del client appena connesso. ci sono anche delle pagine internet come overnet che mantengo il nodes.dat (uso minimo dei DNS). Initial handshake Quando un client ottiene nuovi contacts, effettua un initial handshake process. Questa è una tipica procedura che i clients o i peers effettuano per contattare e assumere chi è attivo. Firewall check Il firewall check indica l'accessibilità delle porte e corrisponde al basso ID in eDonkey. Il Kad protocol ha un suo processo per capire se le porte possono essere accedute direttamente. Questo checking è eseguito immediatamente dopo aver stabilito la connessione alla rete Kad, il processo in seguito viene ripetuto ogni ora. Questo è ciò che avine nel processo di firewall check, il processo non va a buon fine se non è ricevuto l'ACK Find buddy Un firewalled client ha necessità di trovare un non-firewalled client, chiamato “buddy”. Un buddy può ricevere messaggi destinati al client firewalled. Un solo buddy è permesso per ogni firewalled o non-firewalled client. La ricerca parte 5 minuti dopo il fallimento del firewall check. Un client sceglie i contatti in base ad una specifica posizione (la posizione o distanza tra client è la distanza numerica tra il loro ID, detta XOR-DISTADINCE) e mantenendola in una hash table strutturata chiamata anche routing table. Questa è la distributed hash tables. I lookup descrivono i metodi e gli algoritmi per trovare i peers, che sono vicini ad una certo target nel Kad space. Localizzare gli Oggetti Un oggetto può essere localizzato con un lookup iterative o recursive. Recursive lookup dipende dai peers intermedi, quindi corre il rischio di inviare lookup messages a peers non più in vita. Ma rispetto all'iterative ha una minore latenza. L'Iterative è facile da implementare, poiché permette un miglior debugging e manutenzione. L'ultimo è il motivo per cui il metodo iterative è preferibile al recursive nel protocollo Kademlia, specialmente se si considera la grande variabilità della rete KAD al variare del tempo. Con l'iteration method, il peer iniziale prende il controllo del lookup, gli altri peers nel lookup catena eseguono solo semplici requests con alcuni dei loro contatti più vicini, indicando quale peer contiene l'oggetto ricercato. Con il recursive method il peer invia il proprio indirizzo a un vicino, quando il target peer riceve il messaggio lo notifica al peer iniziale. In teoria vi dovrebbe essere un solo processo di iterative lookup per trovare un peer, come descritto precedentemente, ma vi è il rischio che un singolo client in stallo possa aumentare la latenza dell'iterative process. Il ritardo e dato dalla somma di ogni contatto in stallo nell'iterative process. Per evitare ciò Kademlia implementa un nodo di lookup concorrente, chiamato parallel lookup. Questo significa che una lookup request è inviata a entrambi i peers nello stesso momento, invece di inviare la richiesta a solamente un peer. Adesso quando un peer nell'iteration process è sovraccarico, ci sono altri peers che possono rispondere. È importante trovare il giusto equilibrio, perché un alto numero di parallel lookups velocizza notevolmente la ricerca del target, ma incrementa anche il network overload. Nel Kademlia protocol è definito un numero di massimo 3 parallel lookups. In figura sono mostrati i tre passi seguiti dall'iterative process. 1. Il peer che inizia la ricerca invia tre messaggi ai più vicini contatti. 2. Come risposta ottiene i quattro contact più vicini; nell'esempio due contatti sono nella tolerance zone del target. 3. Nell'ultimo passo il peer invia una request per closer contact ai tre contatti più vicini nuovamente, ma solo due sono disponibili e rispondono con contact ancora più vicini. Il prossimo passo è eseguire un'altra request a tutti i nuovi possibili contatti ottenuti, poiché il client non sa se i nodi sono ancora connessi; nuovamente essi rispondono con un'altra lista di possible contacts. Finalmente quando un contato è trovato attivo nella tolerance zone del target, il peer invia loro l' action request. Essi risponderanno con il tipo specifico di risposta, un contatore viene incrementato ad ogni risposta e la ricerca del nodo sarà stoppata quando il contatore raggiunge il massimo, altrimenti si continua come mostrato in figura. Offuscamento del Protocollo Questa caratteristica è stata introdotta nell'ultima versione di eMule (0.47c). Essa serve a criptare i pacchetti detti Chunk che gli utenti si scambiano trasformandoli da traffico P2P a traffico internet, che i filtri non riconoscono e lasciano passare, permettendo ai clienti di avere la possibilità di usare a piena potenza la loro connessione ad Internet. Molti server quando si effettua una ricerca danno come risultato tanti file con nome "PLEASE USE emule 0.47c AND ENABLE Protocol obfuscation to get results from this server". Significa che tali server richiedono che attiviate l'offuscamento, altrimenti si rifiutano di darvi i risultati. Attivare l'offuscamento non causa nessun rallentamento e nessuno svantaggio L'offuscamento del protocollo è una caratteristica di eMule aggiunta a partire dalla versione 0.47b per venire incontro alle esigenze di tutti quegli utenti rallentati o bloccati dal loro provider. Se si attiva questa opzione eMule cerca di "nascondere" i dati che invia e riceve quando comunica con altri client e server in modo da impedire che qualcuno analizzando i pacchetti possano riconoscerli come provenienti dal programma emule. Questo sistema non è stato creato per rendere "anonimi" anche perché emule richiede un collegamento diretto con ogni utente che possiede il file che si vuole scaricare e perciò nascondersi è impossibile. L'unico risultato dell'offuscamento è che i dati spediti, per uno che li vede passare sul cavo, sembreranno senza significato. L'offuscamento una volta attivato funziona per i protocolli ed2k TCP e UDP, Server TCP e UDP, Kad TCP. Installazione MDM by cisco su Red Hat Enterprise Cisco MDM è un sistema che installato su Server Linux, serve per monitorare e gestire: 1. traffico anomalo trovato su moduli e dispositivi 2. traffico anomalo su guard module e cisco guard appliance Si prefigge l’obiettivo di proteggere la rete da Distributed Denial of service (DDOS) garantendo sicurezza e semplicità di utilizzo, grazie al WBM (web-based Manager), un’interfaccia web che fornisce un semplice accesso a i dispositivi della rete. Visualizza e consolida una panoramica sulle zone attaccate Visualizza e consolida statistiche sulle zone attaccate Crea reports Configura o modifica informazioni sulle zone di un dispositivo e usa una copia per sincronizzare gli altri dispositivi attiva dei detector per traffico anomalo sulle zone attiva zone di protezione (attack mitigation) su tutte le zone Guards attiva un processo che impara una o tutte le zone dei dispositivi Le comunicazioni tra i Detector, i Guard, i dispositivi e l’MDM SERVER avvengono in SSL (Secure Sockets Layer). Componenti di un sistema MDM Detectors: ricevono copia del traffico di rete e mentre lo analizzano lo deviano sul percorso normale. Anomalie sul traffico indicano attacco; Quando si trovano queste anomalie entrano in gioco i guard per mitigarle. Guards: ricevono il traffico deviato dalla rotta normale per analizzarlo. Se trovano un’ anomalia, la isolano e droppano, inserendo nella rete solo il traffico pulito. Zones: Una zona rappresenta un n° di elementi di rete (come server farm) controllati da Dector and Guard per mitigare gli attacchi DDos. Un dispositivo può essere configurato in zone multiple. MDM Server: lega tutti i dispositivi della zona. Mantiene un database entry per ogni dispositivo segnalato e un dispositivo che attraverso il server MDM, configuri la zona. Questo database offre l'associazione tra dispositivo e configurazione. Visualizza stato e statistiche. Master Device: è il dispositivo attraverso il quale l'MDM gestisce la configurazione di una zona. Abilita a creare o modificare una configurazione di zona, con un processo "synchronization". Procedura di installazione Una volta scaricata l’ultima versione dell’MDM RPM da sito www.cisco.com, si copia il file nel Linux Server e s’immette il comando: rpm -ivsh MDM-M.M-X.YY.rpm dove M.M è la version major number, X.YY il minor version number. Prima di procedere con l’installazione, si deve tenere conto di questi 5 punti fondamentali: 1. Configurazione del firewall 2. Certificato tomcat 3. Utenti e gruppi LINUX 4. Tacacs, per gestire accessi NOTA ->Nella documentazione sono stati riportati esplicitamente solo i punti 1 e 5, poiché sono quelli che devono essere seguiti alla lettera, per un sicuro e corretto funzionamento in rete. Gli altri sono reperibili direttamente sulla documentazione ufficiale nel file ConfigurationGuide.pdf alla pagina 32. I punti 2,3,4 non sono stati riportati perché dipendono dalle decisioni di amministrazione del Software. 1) Per instaurare una connessione con l’MDM, il firewall dev’essere configurato per permettere i seguenti traffici: incoming connection 443/TCP per richieste HTTPS Ssh (22/TCP) per scambio di chiave tra detector e guards syslog (514/udp) per ricevere gli eventi dalla rete Outgoing connection Device remote agent (RA) (1334/TCP) Network Time Protocol (se installato) Terminal Access Controller Access Control System (TACACS, se configurato) Hardening Per rafforzare (hardening) il sistema Cisco raccomanda di avviare il servizio MySql in un ambiente chroot, (change root) un metodo di sicurezza usato per isolare i limiti operativi di una applicazione e adottare le seguenti misure di sicurezza: • Cambiare la password di admin di MySql che di default è bianca. • Cancellare guest e utenti anonimi. • Creare un nuovo utente per gestire l’MDM back-end con una password forte, contenente caratteri speciali e alfanumerici. Questo utente avrà tutti i permessi per il “Riverhead” database. Considerare i seguenti step: 1. Configurare le proprietà della connessione sul back-end db. Aggiornare il file /Riverhead/Ofek/rsc/db.properties con nuovo utente e password. 2. Inserire il comando service backend restart per riavviare il servizio, in questo modo si applicano le nuove credenziali. Installazione Configurazione Virtual Machines Ntop NTOP (acronimo di Network TOP (comando)) è un programma per l'analisi e il monitoraggio del traffico di rete. Il programma è rilasciato sotto licenza GPL. Il programma include funzionalità di IDS sebbene non sia specificatamente studiato per questi compiti. Peculiarità del programma è l'utilizzo di un'interfaccia web per mostrare le statistiche e per comandare il programma. Questa scelta rende il programma estremamente portabile dato che il componente più critico da rendere portabile in un programma è l'interfaccia grafica e quindi utilizzare un browser per la gestione della grafica elimina il problema. Network management sta diventando un operazione sempre più complessa a causa della varietà dei tipi di rete e l'integrazione di differenti network media. Il costo del network management aumenta con l'aumento: delle dimensioni, della complessità e della eterogeneità. In questo scenario, uno strumento di automazione per il controllo delle risorse è essenziale per permettere al network management di svolgere il proprio lavoro. Ntop è un semplice, gratuito ed efficace strumento per monitorare e misurare il network traffic, inizialmente concepito da Luca Deri e Stefano Suin per controllare i problemi di performance sulla campus network dell'Università di Pisa. Senza l'aiuto di NTOP e tools simili, trovare le cause dei problemi di rete potrebbe essere estremamente tedioso. La presentazione dei dati di NTOP è adatta ad ogni esigenza. Barre e grafici a torta sono usati per illustrare l'utilizzo dei protocolli e le statistiche sulla dimensione dei pacchetti. I dati raccolti durante il monitoring possono essere loggati in un file per futuri controlli usando qualunque applicazione di foglio di calcolo come “Calc” di OpenOffice o “Excel” di Microsoft. Protocolli Di default il programma riconosce i seguenti protocolli di rete: • TCP/UDP/ICMP • (R)ARP • IPX • DLC • Decnet • AppleTalk • NetBIOS • TCP/UDP • • FTP • HTTP • DNS • Telnet • SMTP/POP/IMAP • SNMP • NFS • X11 Fibre Channel • Control Traffic - SW2,GS3,ELS • SCSI Ambiente di collaudo L’ambiente di collaudo viene realizzato per simulare al meglio il sistema Ntop. Su un server HP Proliant ML 570 è installato il sistema Operativo VMWare ESX 3.0.1, sul quale è stata creata la seguente “service blade” di Ntop: Ntop-SISTEMA (IP:192.168.0.1, SO: Linux Kernel 2.6.17-10): funzione di Network Monitoring Virtual Machine: Due schede di rete HD da 4G Una CPU La prima scheda di rete (eth1) possiede un indirizzo IP cosi da permettere la gestione da remoto, tramite ssh, della macchina e di Ntop tramite interfaccia web; la scheda è collegata ad uno switch virtuale su una normale porta. La seconda scheda di rete (eth2) non possiede indirizzo IP ed è collegata ad una porta di SPAN dello switch virtuale, il compito di questa scheda è catturare i pacchetti che transitano nello switch cosi da poter essere analizzati. Descrizione blade L'architettura di Ntop è mostrata dalla seguente figura. Il Packet Sniffer colleziona i pacchetti che, in seguito, sono passati al Packet Analyser per essere processati. Ogni qual volta le informazioni di traffico vengono richieste, il Report Engine legge le richieste per visualizzare le informazioni di traffico. Packet Sniffer Il Packet Sniffer supporta differenti tipi di interfacce, includendo: PPP, Ethernet e Token Ring. Permette di catturare pacchetti, cosi da filtrarli prima che inizi il processo di analizi. Packet filtering usa la libreria libpcap, i filtri sono specificati usando semplici espressioni tcpdump. Il Packet Sniffer permette di abbassare la perdita di pacchetti durante fasi di traffico esplosivo; se la funzione di analisi e sniffing fossero collassate, durante una fase esplosiva di traffico si avrebbe un alta perdita di pacchetti, causata dall'overhead dell'analisi. Packet Analyser Il Packet Analyser elabora un pacchetto alla volta. Il Packet headers sono analizzati in accordo al tipo di media interfacce usato. Questo perché gli headers dipendono dal tipo di interfaccia (Una Token Ring non ha le stesse caratteristiche di un'altra). Le informazioni sugli Hosts sono immagazzinate in una tabella di hash la cui chiave corrisponde ai 48 bit del MAC_address garantendone l'unicità, e permettendo a differenti network protocols di essere elaborati. Ogni entry contiene diversi contatori che mantengono traccia dei dati inviati/ricevuti dagli Hosts, ragruppandoli in base al protocollo di rete supportato. Per ogni pacchetto, la Hash entry corrispondete al campo sorgente e destinazione; Essa viene ricercata o creata se non esiste. Non essendo possibile prevedere il numero dei pacchetti di ogni host gestiti da ntop, è impossibile avere una tabella di hash grande a sufficienza per inserirvi tutti i possibili hosts. Quando necessario ntop libera la host table, dalle entry obsolete, cosi da occupare uno spazio limitato di memoria senza inficiare le performance del sistema. Se ntop riceve pacchetti non-IP, i contatori sono aggiornati e i pacchetti sono scartati. Invece se vengono ricevuti pacchetti IP, saranno processati. Report Engine L'attuale versione di Ntop possiede solo l'interfaccia web-base: Web-mode ntop aggisce come un HTTP server e permette agli utenti di analizzare le statistiche di traffico e gestire ntop con un semplice web browser. Security Feature NTOP supporta nella ricerca alcuni problemi di rete includendo: Uso di IP duplicati. Identificazione di local Host in "promiscuous mode". 12Rilevamento di mal configurazi12oni delle applicazioni. (grazie all'analisi dei dati sul traffico dei protocolli) Misure sullo sfruttamento dei servizi Identificazione di hosts che non usano uno specifico proxy. Identificazione di hosts che usano protocolli non necessari. Identificazione di routers Uso eccessivo dell banda Rilevamento di workstations mal configurate che agiscono come routers Misure sui protocol Local Network Traffic Map: Questa funzionalità non è abilitata di default su ntop; per abilitarla si devono installare i seguenti pacchetti: graphviz: libreria grafica (installabile con apt-get inserendo il cd di installazione) gsfonts-x11: font per la creazione della mappa gsfonts xutils (scaricato a parte) xutils-dev libfs6 xfonts-utils libxfont1 libfontenc1 xfonts-encodings Servizi presenti sulla blade NTOP SSH,per la gestione remota della macchina. Proxy: aggiornamenti del sistema operativo. A causa dell'uso del proxy ISA Microsoft con autenticazione all'interno di Telecomitalia non è possibile effettuare gli aggiornamenti di Ubuntu. Soluzione: Software (ntlmaps-0.9.9.6) che permette di formattare le richieste, cosi che possano transitare per il proxy ISA; il software per gli aggiornamenti dovrà usare come proxy: “http://localhost:5865” Problematiche: questo workaround comporta un uso considerevole delle risorse della macchina, che rischia di inficiare il normale funzionamento di ntop, per mancanza di risorse; si consiglia di usarlo solo quando il sistema si ritene debba essere aggiornato, o di installarlo in una macchina dedicata. Procedure per la corretta configurazione della macchina: 1. Configurare l'interfaccia di rete adibita allo sniffing a finché si avvii senza indirizzo IP e senza effettuare richieste DHCP. ● auto eth0 ● iface eth0 inet manual ● up ifconfig eth0 up ● up ip link set eth0 promisc on 2. Non possono essere avviati due processi Ntop con stesso utente e porte di ascolto per la web-interface. 3. Far girare ntop come demone (disconnesso da qualunque shell) 4. Indicare l'interfaccia di sniffing. 5. Indicare la porta tcp per la web interface (di default è la 3000 in http) Comando di avvio ntop Avviare ntop (la 'w' minuscola indica la porta per il protocollo http, la 'w' maiuscola indica il protocollo https, la 'u' indica l'utente con i cui privilegi ntop gira): ntop -d -i eth2 -w 0 -W 443 -u ntop Dipendenze per la corretta installazione di ntop ● libglib1.2 ● libc6 ● libgd2-xpm ○ libfreetype6 ○ libxpm4 ○ libpng12-8 ○ libx11-6 ○ libjpeg62 ● libgdbm3 ● libpcap0.7 (vuole perforza la 0.7) ● libssl0.9.8 (va installata esternamente) ● zlib1g Nfsen Introduzione Per poter avere una visione di insieme, effettuare una tariffazione, del traffico che transita in una rete IP. È necessario poter disporre di dispositivi sonda e di uno o due correlatori che, elaborando le informazioni inviate dalle sonde, possono fornire un quadro completo sullo stato della rete. NetFlow è un sistema di accounting e billing (fatturazione) del traffico IP, composto da un probe (sonda) e da un collector • Sonda: software installato su un network-device (switch o router), o su una macchina, che esporta le informazioni relative i flussi IP (source, destination, address, port...) ad una macchina esterna (collector). Nome del SW è netflow v5, v7, v9... installabile su piattaforma CISCO • Collector: Macchina esterna che colleziona i flussi delle varie sonde correlandoli e aggregandoli. Netflow è un prodotto by CISCO. Sulla rete, esistono anche altre alternative proprietarie e non, che forniscono funzionalità e compatibilità simili ai prodotti CISCO. Uno di questi è NFdump. NFdump È un collector composto da vari tools CLI, compatibile con le sonde NetFlow v5, v7 e v9. I pincipali tools sono: Nfcapd: Netflow capture daemon. Reads i netflow data dalla rete e li immagazzina in un file. Aggiorna il file automaticamente ongi x minuti (tipicamente 5) nfcapd legge i netflow v5, v7 e v9. È possibile settare un daemon per ogni flusso Nfdump: Netflow dump. Legge i netflow data dal file creato da nfcapd. La sua sintassi è simile a tcpdump. Visualizza i netflow data e può creare diverse statistiche, ordinabili secondo le proprie esigenze, in base: IP addresses, ports.. Nfprofile: Netflow profiler. Legge i netflow data dal file creato da nfcapd. Filtra i netflow data in base ai profili creati e memorizza il risultato in un altro file per futura visione. Nfreplay: Netflow replay. Legge i netflow data dal file creato da nfcapd e li invia ad altri host. Nfclean.pl: Cleanup old data. Semplice script per cancellare vecchi dati. Ft2nfdump: Legge e converte i netflow data per poter essere letti da nfdump. Documentazione reperibile su http://nfdump.sourceforge.net NFsen: Interfaccia web di NFdump. Essa permette di visualizzare in maniera ordinata, tramite dei grafici, le informazioni acquisite da NFdump. http://nfsen.sourceforge.net Installazione Dipendenze: Software e Librerie necessarie per NFdump. • byacc (al posto di bision per debian) • flex ○ m4 • cdbs (>= 0.4.25-1) • zlib Librerie consigliate: • dpatch • debhelper (>= 5.0) Software e Librerie necessarie per NFsen: • Server WEB (apache2) • Perl 5.6.0 (già presente su Ubuntu6.10) • PHP >=4.1 • RRD tools perl ○ RRD tools ■ libart-2.0-2 (>= 2.3.16) ■ libfreetype6 (>= 2.2) ■ libpng12-0 (>= 1.2.13-4) ■ zlib1g (>= 1:1.2.1) ■ ttf-dejavu (>= 2.1-1) ● • defoma NFdump tools Installazione NFdump NFsen: 1. Scompattare il file nfdump-xxx.tar.gz 2. Entrare nella directory creata 3. Digitare i seguenti comandi: ● sudo ./configure –enable-sflow ● sudo make ● sudo make install Dopo aver scompattato l'archivio “tar xvzf nfsen-1.2.4.tar.gz” bisogna rinominare il file dentro la cartella nfsen-1.2.4/etc/nfsen-default.conf in nfsen.conf. In questo file vi è la configurazione di default di nfsen. La prima cosa da fare è creare il percorso /data/nfsen/, poi si vanno a modificare i parametri che indicano l'utente e il gruppo apache, di default sono www, ma apache2 crea l'utente e il gruppo www-data. Opzionalmente è possibile modificare anche l'utente che può avviare il servizio, indicandolo in $USER nel file di configurazione. (se l'utente indicato non esiste, il programma di installazione riporterà errore), in fine inserire l'utente indicato in $USER, nel gruppo www-data: “sudo vim /etc/group” e alla riga www-data:x:33: scrivere dopo i ':' l'utente indicato in $USER. Digitare dentro la cartella nfsen-1.2.4/ con i privilegi di root il comando: ./install.pl etc/nfsen.conf per installare il software. Dopo il successo dell'installazione basta digitare /data/nfsen/bin/nfsen.rc start per far partire il servizio. (Solo root e l'utente indicato in $USER possono avviare o interrompere il servizio.) NB: se si usa il nfdump.deb gli eseguibili sono in /usr/bin/ mentre nfsen li cerca in /usr/local/bin, mentre se si usa il sorgente gli eseguibili sono inseriti direttamente in /usr/local/bin. Quando si avvia nfcapd e riporta come errore, problemi nell'apertura del socket, vuol dire che stanno girando due istanze. APACHE: NFsen non apre nessuna porta TCP/UDP, quindi necessità di un server WEB. Si è scelto di usare Apache2, poiché è il server web per eccellenza per i sistema Linux. Su una debian-like per installarlo e sufficiente digitare sudo apt-get install apache2 inserendo il cd di installazione. Configurazione: Inizialmente si configura il file webnfsen dentro /etc/apache2/sites-avalible/, impostando come Documentroot /var/www/nfsen/. (Esiste già un file “default” con dei parametri già impostati, basta rinominarlo webnfsen ed effettuare le dovute modifiche). In secondo luogo si crea un link nella cartella /etc/apache2/sites-enable/, che si riferirà al file webnfsen Nel file apache2.conf alla sezione “Directory Indexs” si inserisce nfsen.php, così da indicargli il file che deve leggere per primo nella directory root. Per testare il funzionamento si è effettuata usa connessione http sul server virtuale. Come risultato si è visualizzata la pagina di NFsen con i link. Se si vuole inserire anche la documentazione, deve essere decommentata la riga: // print "<a href='doc/NfSen.html' target='_blank' >Help</a>\n"; Nel file navigation.php nella directory /var/www/nfsen/. In oltre, poiché la documentroot e /var/www/nfsen, nel file config.php alla riga 6 si dovrà scrivere: $DOCURL= “/doc” NB: per visualizzare il contenuto della cartella doc è necessario togliere tutto ciò che riguarda /doc dal file webnfsen. webnfsen è la copia del file “default”, con la documentroot impostata /var/www/nfsen. Questo perché nel file default la /doc corrisponde ad un link per una cartella interna al server con diritti di accesso limitati. NB: nel file webnfsen si consiglia di scrivere il parametro Off sulla riga ServerSignature, cosi si evita che il server apache dia delle informazioni importanti quali: release del SW, O.S., ... quando una pagina non è trovata o vengono generati degli errori (URL non corretta ..) Hardening Configurazione Autenticazione: Solitamente Apache, così com'è, non è configurato affinché possa proibire o permettere l'accesso alle directory. La prima modifica da eseguire è nel file apache2.conf, scorrendo fino ad arrivare alla linea che inizia con "AccessFileName": questa direttiva, indica il nome del file da utilizzare per leggere gli attributi che si devono dare alle directory nelle quali tale file è presente. Teoricamente, la direttiva dovrebbe essere seguita da ".htaccess", che è un nome standard per i server Apache. Apache andrà a cercare per ogni directory richiamata da un browser questo file, dal quale leggerà le istruzioni. Ovviamente, se questo non è presente, Apache agirà come di norma; se invece il file esiste, Apache lo leggerà e agirà di conseguenza: se sono impostate delle protezioni tramite password, Apache farà in modo che il browser visualizzi una maschera nella quale vengono richiesti username e password, tramite i quali Apache può verificare o meno l'autenticità del richiedente. La seconda modifica da attuare è nel file /etc/apache2/sites-available/webnfsen: scorrere anche questo file fino ad arrivare alla riga "AllowOverride", inserendo un "AuthConfig" Apache richiederà l'autenticazione. Riavviato Apache, si potrà preparare il file che servirà a proteggere le directory che ci interessano, .htaccess. Volendo proteggere la directory http://serverweb/, corrispondente alla directory locale /var/www/nfsen. Prima di tutto, si crea un file ".htaccess" all'interno di questa directory, scrivendo: AuthName "prova" AuthType Basic AuthUserFile /etc/apache/passwd require valid-user Caratteristiche del file: La prima riga indica il nome della protezione: nella maschera che il browser ci mostrerà si leggerà: "Enter username for prova at localhost". Il discorso è molto più ampio: qualsiasi altro file o directory protetto con lo stesso nome in AuthName sarà accessibile senza la necessità di eseguire ulteriori autorizzazioni. La seconda riga indica il tipo di autorizzazione da eseguire. La terza riga indica il file che Apache andrà a leggere per verificare se l'username e la password inseriti sono corretti. La quarta riga controlla gli username: con "require valid-user" Apache accetterà qualsiasi username presente nel file specificato in AuthUserFile, per limitare maggiormente l'accesso, si può scrivere: “require user nome1 nome2 nome3 ecc.” È possibile inoltre far riferimento ai gruppi, specialmente quando il numero di utenti cresce troppo. I gruppi funzionano come quelli dei sistemi Unix ed ogni utente può far parte di più gruppi scrivendo “require group nome_del_gruppo”. Come con gli utenti, anche in questo caso possono essere specificati più nomi di gruppo da utilizzare. Se invece si usa "require group" insieme a "require user" succede che, qualunque utente membro di uno dei gruppi indicati può avere accesso, così come ogni utente esplicitamente specificato. Come per gli utenti viene creato il file /etc/apache/group, questo sarà formato da linee del tipo: nome_del_gruppo: nome1 nome2; come con il file passwd, si dovrà specificare ad Apache dove andare a leggere i gruppi utilizzeremo: AuthGroupFile /etc/apache/group Il file .htaccess completo potrebbe essere: AuthName "prova" AuthType Basic AuthUserFile /etc/apache/passwd AuthGroupFile /etc/apache/group require valid-user require group admin Creare gli utenti: L'utility htpasswd crea ed aggiorna i file di autenticazione utilizzati da Apache. La sintassi è: htpasswd -c file username l'opzione '-c' crea il file delle password, nel caso questo non esista; se il file esiste, verrà sovrascritto con la conseguente perdita dei dati precedenti. Esempi: htpasswd -c /etc/apache/passwd user creerà il file /etc/apache/passwd ed inserirà l'username "user" e chiederà la password (con conferma) per l'utente. “htpasswd /etc/apache/passwd user” si può comportare in due modi: se l'utente non esiste, inserisce l'username e chiede la password; se invece l'utente esiste, htpasswd capirà che si vuole cambiare la password all'utente specificato. HTTPS Il modulo mod_ssl aggiunge un'importante caratteristica al server Apache2, l'abilità di criptare le comunicazioni. In questo modo il browser utilizza la cifratura SSL per le comunicazioni. Il modulo mod_ssl è disponibile nel pacchetto apache2-common. (sudo apt-get install apache2common) Se è stato installato questo pacchetto, è possibile eseguire, in un terminale, il seguente comando per avviare il modulo mod_ssl: sudo a2enmod ssl Generare Certificati e Coppia di Chiavi: Nella maggior parte dei casi, viene inviata la richiesta del certificato (compresa la chiave pubblica), una prova dell'identità della società e del pagamento a un Certificate Authority. La CA verifica la richiesta e l'identità del richiedente e quindi invia il certificato. In alternativa è possibile creare i propri certificati auto-firmati. Questi certificati non sono accettati automaticamente dai browser, agli utenti viene chiesto di accettare il certificato per stabilire una connessione sicura. Una volta ottenuto un certificato auto-firmato o un certificato da un CA, è necessario installarlo nel proprio server. 1. Creare un coppia di chiavi pubblica e privata: openssl genrsa -des3 -out server.key 1024 È ora necessario inserire una passphrase. Per una maggiore sicurezza, dovrebbe contenere almeno 8 caratteri, la lunghezza minima con l'opzione "-des3" è di 4 caratteri, dovrebbe includere numeri e/o segni di punteggiatura e non dovrebbe essere una parola reperibile in un vocabolario, ricordarsi che la passphrase è "case-sensitive". Ripetere la passphrase per la verifica. Una volta inserita correttamente, la chiave per il server è generata e salvata nel file “server.key”. È possibile utilizzare il server sicuro anche senza una passphrase, può essere utile in quanto non viene richiesta ad ogni riavvio del server. Ma è altamente insicuro in quanto se viene compromessa la chiave è possibile compromettere l'integrità del server. Per utilizzare il server sicuro senza la passphrase, non utilizzando l'opzione «-des3» durante la fase di creazione della chiave o eseguendo il seguente comando: openssl rsa -in server.key -out server.key.insecure Una volta eseguito il comando precedente, la chiave non sicura è creata nel file server.key.insecure. È possibile utilizzare questo file per generare il CSR senza una passphrase. 2. Creare il CSR, eseguire il seguente comando: openssl req -new -key server.key -out server.csr Viene richiesta la passphrase. Se viene inserita correttamente, è necessario inserire alcune informazioni come nome della società, nome del sito, email, ecc.... Una volta forniti tutti i dati, il CSR è creato nel file server.csr. È possibile inviare questo CSR a un CA per la certificazione, il quale utilizzerà questo CSR per emettere il certificato. È anche possibile utilizzare il CSR per creare certificati auto-firmati. 3. Creare un certificato auto-firmato: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Il comando precedente chiederà la passphrase. Una volta digitata correttamente, il certificato viene creato e sarà disponibile nel file server.crt. 4. Installare il certificato: sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private È necessario anche aggiungere le seguenti quattro righe al file /etc/apache2/sites-available/webnfesnt. Vanno collocate nella sezione VirtualHost sotto la riga DocumentRoot: SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key HTTPS dovrebbe essere in ascolto sulla porta 443, quindi è necessario aggiungere la seguente riga al file /etc/apache2/ports.conf: Listen 443 5. Accedere al server: Una volta installato il certificato è necessario riavviare il server web: sudo /etc/init.d/apache2 restart Viene richiesta la passphrase. Una volta digitata correttamente, il server web sicuro viene avviato. È possibile accedere alle pagine sicure del server digitando nella barra degli indirzzi del browser https://nome_host/url 4 Competenze acquisite e/o consolidate. Ricerca Informazioni. Il saper ricercare le informazioni è qualcosa di fondamentale nella vita di tutti i giorni, ma diventa necessaria nel lavoro dell'informatico. In questo stage ho affinato le mie tecniche di ricerca su internet che mi hanno permesso di reperire materiale ed informazioni per: documentazione, come eseguire operazione Gestione Backup. Effettuare dei back-up o tenere delle copie per dei ripristini è molto importante, diventa critica questo operazione quando si tratta di backupare dati di una certa importanza. In oltre è molto utile in termini di tempo; poiché ripristinare un sistema partendo da zero richiede molto tempo e risorse che potrebbero essere meglio impiegate In questo stage ho avuto modo di imparare, praticamente, l'utilità dei bakup e degli snapshot, cancellandoli perché avevo necessità di spazio, rendendomi conto in seguito della loro importanza 5 Conclusioni Lo stage mi ha permesso di apprendere le logiche di lavoro all'interno di una grande azienda come Telecomitalia; nonostante le difficoltà incontrate ho cercato di dare il meglio ed impegnarmi in quello che facevo, cercando di produrre qualcosa di usabile per l'azienda, con ciò che avevo a disposizione.
Documenti analoghi
WürthPhoenix neteye 2011 – 2012
La scalabilità dell’area di monitoraggio di NetEye è gestita in modo automatico per garantire un
miglioramento lineare sul numero di possibili esecuzioni di controllo con delle risorse adeguate
(ad...