Introduzione a NTop
by admin on Aug.12, 2010, under Hacking, Linux, Sicurezza, Tools
NTOP, (acronimo di Network TOP, in riferimento al famoso comando UNIX) è un’applicazione opensource, disponibile sia per piattaforme UNIX che Win32, rilasciata sotto licenza GPL, e orientata all’analisi e al monitoraggio del traffico di rete, in grado di fornire un importante supporto a varie attività di network management, comprese pianificazione e ottimizzazione della stessa rete, e anche con rilevamento di violazioni alla network security.
Include pertanto funzionalità di IDS sebbene non sia specificatamente studiata per tale compito.
Il programma viene attivamente sviluppato e mantenuto da Luca Deri, ricercatore e docente presso il Dipartimento di Informatica dell’Università di Pisa, ed è caratterizzato da una interfacia web integrata semplice da utilizzare, caratteristica che lo rende pertanto estremamente portabile, ed un minimo utilizzo di risorse.
Il network management è una attività molto complessa, e tale complessità, dovuta alla varietà delle tipologie di network e alla loro crescente integrazione, sta progressivamente aumentando.
Dal momento che le reti diventano progressivamente più grandi, più complesse, ed anche più eterogenee, i costi del network management crescono.
In tale scenario, tools automatici divengono essenziali strumenti di supporto, collezionando informazioni sullo stato ed il comportamento dei vari elementi di rete.
Ntop è uno dei pochi applicativi per le reti locali diffuso anche a livello mondiale, avendo saputo dimostrare nel corso degli anni di essere un tool molto affidabile per il network monitoring sia in ambito LAN (default) che WAN
Sebbene sia disponibile anche sottoforma di package precompilato per differenti distribuxioni Linux, è sicuramente preferibile effettuarne una compilazione a partire dai sorgenti, che sono disponibili sia sotto forma di tarball compresso che tramite server SVN, caso nel quale si possono ottenere così:
# mkdir /opt/tools/
# cd /opt/tools/
# svn co https://svn.ntop.org/svn/ntop/trunk/ntop
Per compilare infine ntop:
# cd ntop
# ./autogen.sh
# make
# make install
Occorre per prima cosa lanciare ./autogen.sh nella directory base (ntop) per creare lo script configure e i Makefiles.
Lo script configure risulta molto indicativo riguardo ad eventuali dipendenze assenti, come ad esempio:
******************************************************************* * * ERROR: gdbm header or library routines are missing * (yes means it was found, no means it was not found) * * gdbm.h...no * gdbm_open() in -lgdbm...no * *>>> No way to proceed. * *??? 1. Install libgdbm *??? and Rerun ./configure *??? or 2. Use the --with-gdbm-xxxxx= options * ******************************************************************* configure: error: Unable to continue... aborting ./configure
dove il problema è chiaramente dovuto all’assenza del package libgdbm-dev.
Si possono anche passare opzioni “configure” ad autogen.sh, come ad esempio in:
# ./autogen.sh --prefix=/usr/local/ntop-svn
Ntop necessita di essere avviato coi privilegi di root per poter catturare i pacchetti in transito dalle schede di rete della macchina e mettere una interfaccia in promiscuous mode.
Non appena avviato tuttavia, per default, declassa i propri privilegi a quelli dell’utente nobody (se non diversamente specificato con l’opzione –u).
È importante ricordare che lo user al quale ntop adegua i propri privilegi deve possedere gli appropriati diritti per accedere alle locazioni dove ntop archivia i propri database (cioè /usr/local/var/ntop per default).
Per impostare correttamente proprietà e diritti su tali directory:
# chown –R [ntopuser]:[ntopusergroup] /usr/local/var/ntop
Quando si installa ntop e lo siconfigura per la prima volta, è necessario impostare una password amministrativa:
# ntop --set-admin-password
oppure
# ntop –A
quindi introdurre e confermare la propria password amministrativa per ntop.
L’avvio di ntop può avvenire semplicemente invocando il comando
# ntop -d
Wed Aug 11 11:33:21 2010 NOTE: Interface merge enabled by default
Wed Aug 11 11:33:21 2010 Initializing gdbm databases
Wed Aug 11 11:33:21 2010 ntop will be started as user nobody
Wed Aug 11 11:33:21 2010 ntop v.4.0.1 (32 bit)
[...]
Wed Aug 11 11:33:21 2010 INIT: Bye bye: I’m becoming a daemon…
Wed Aug 11 11:33:21 2010 INIT: Parent process is exiting (this is normal)
e può normalmente avvenire anche come servizio con:
# /etc/init.d/ntop restart
Per conoscere l’elenco delle possibili opzioni a riga di comando previste da ntop ed il loro scopo si può dare
# ntop –h
oppure
# ntop --help
Welcome to ntop v.4.0.1 (32 bit) [Configured on Aug 11 2010 10:04:39, built on Aug 11 2010 10:06:08] Copyright 1998-2010 by Luca Deri <deri@ntop.org>. Get the freshest ntop from http://www.ntop.org/ Usage: ntop [OPTION] Basic options: [-h | --help] Display this help and exit [-u <user> | --user <user>] Userid/name to run ntop under (see man page) [-t <number> | --trace-level <number>] Trace level [0-6] [-P <path> | --db-file-path <path>] Path for ntop internal database files [-Q <path> | --spool-file-path <path>] Path for ntop spool files [-w <port> | --http-server <port>] Web server (http:) port (or address:port) to listen on [-W <port> | --https-server <port>] Web server (https:) port (or address:port) to listen on Advanced options: [-4 | --ipv4] Use IPv4 connections [-6 | --ipv6] Use IPv6 connections [...]
L’accesso ad ntop può avvenire sia in modalità interattiva che in web mode.
Per accedere ad ntop attraverso l’interfaccia web occorre puntare alla URL http://localhost:3000 o più genericamente http://nnn.nnn.nnn.nnn:3000 nel caso in cui l’accesso avvenga da una macchina diversa da quella dove ntop è in esecuzione.
L’interfaccia web è molto semplice ma lineare, con un menu, nell’area superiore, così strutturato gerarchicamente:
About:What is ntop? (Cosa è e a cosa serve ntop)
About:Il blog di ntop (http://www.ntop.org/blog/)
About:Crediti (altri sviluppatori hanno contribuito al progetto)
About:Make a donation (fate finta di non aver capito, mi raccomando!)
About:Documentazione on line (man pages, FAQ, anche un tutorial python)
About:Mostra configurazione (figura seguente) ntop0.png
About:Riporta un problema

Summary:Traffico. Questa pagina, che è in realtà quella che si apre per prima nel browser (figura seguente),

presenta informazioni tramite una serie di tabelle e grafici riferiti a:
Statistiche globali sul traffico.
Report del traffico per interfaccia attiva.
Distribuzione globale per protocollo (figura seguente).
Distribuzione globale relativa al protocollo TCP/UDP.
Distribuzione del traffico per porte TCP/UDP (Last Minute View)


Summary:Hosts. Fornisce informazioni su tutti gli hosts visti (figura precedente). Il traffico mostrato per ciascun host può essere espresso in byte o pacchetti. I valori di bandwidth sono la percentuale dei bytes total che ntop ha visto sull’interfaccia, ed il totale dei valori NON sarà del 100% dal momento che il traffico locale verrà contato due volte (una volta come inviato e l’altra come ricevuto). La banda per il traffico inviato e ricevuto viene mostrata attraverso barre diversamente colorate.
Cliccando su una icona accanto al nome host se ne ottiene la geolocalizzazione (figura seguente).

Summary:Carico di rete (Network Load). Mostra dei grafici relativi al network throughput degli ultimi 10 minuti, 1 ora, 1 giorno ed 1 mese (figura successiva).

Cliccando sul graph viene visualizzata una tabella dei 3 indirizzi più attivi (cliccando sui grafici Last 10 minute o Last Hour) ogni minuto (figura seguente), oppure ogni ora (cliccando sul grafici Last Day).

Summary:Traffic Map:Region Map. Fornisce informazioni sugli hosts presenti in ciascuna regione (Stati Uniti, Italia, Cina).
Summary:Traffic Map:Host Map. Geolocalizza tutti gli hosts rilevati (figura seguente).

Summary:Network Flows. Fornisce informazioni si qualsiasi specifica regola di flusso, user-defined.
All Protocols:Traffic. Visualizza una tabella che elenca per ciascun host rilevato, quanti dati quell’ host abbia trasferito, quale percentuale del traffico totale rappresenta dal momento in cui ntop è andato in esecuzione, e la quantità di traffico inviato da alcuni protocolli chiave (TCP, UDP, ICMP, ICMPv6, DLC, IPC, RARP, Appletalk, GRE, IPv6, OSPF, IPSec ed altri protocolli).
All Protocols: Throughput. Visualizza una tabella relativa al network throughput. Si possono limitare tali informazioni solamente agli hosts locali oppure solo agli hosts remoti oppure tutti gli hosts e per ciascuna opzione, si possono vedere i dati inviati, i dati ricevuti o la totalità dei data sia inviati che ricevuti.
All Protocols:Activity. Visualizza una tabella che mostra il traffico orario per host. Il valore percentuale per un dato host è il traffico per quell’host durante quell’ora diviso il traffico totale per quell’ host nelle ultime 24 ore.
Riprenderemo il discorso la prossima volta

