Network monitoring (anche remoto) con EtherApe
by admin on Jan.25, 2010, under Hacking, Linux, Tools
EtherApe è una validissima soluzione open source per il monitoraggio del traffico di rete del quale, grazie alla propria interfaccia grafica, è in grado di offrire una efficace visione in realtime. Oltre ad interpretare traffico ottenuto “dal vivo”, EtherApe può leggere un file tcpdump (pcap).
Nella sua ultima versione (0.9.9), rilasciata il 4 gennaio del 2010, EtherApe offre molte features:
- Il traffico di rete viene rappresentato graficamente. Tanto più attivo è un nodo, tanto più grandi sono le sue dimensioni.
- I protocolli utilizzati vengono rappresentati tramite links, tra i nodi coinvolti, aventi una colorazione specifica.
- L’utente può selezionare su quale livello della pila protocollare concentrare il monitoraggio.
- Il monitoraggio può riferirsi al traffico di una intera sottorete, a quello tra specifici indirizzi IP, o anche specifiche porte.
- Come anticipato, i pacchetti possono sia essere catturati a partire da connessioni in corso su interfaccie ethernet, FDDI, PPP, SLIP e WLAN, che letti da un capture file prodotto da tcpdump. Una ampia tipologia di frames e di pacchetti viene attualmente supportata: ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN, ICMP, IGMP, GGP, IPIP, TCP, EGP, PUP, UDP, IDP, TP, ROUTING, RSVP, GRE, ESP, AH, EON, VINES, EIGRP, OSPF, ENCAP, PIM, IPCOMP, VRRP; and most TCP and UDP services, like TELNET, FTP, HTTP, POP3, NNTP, NETBIOS, IRC, DOMAIN, SNMP, etc.
- La visualizzazione può essere rifinita utilizzando dei filtri aderenti alla sintassi pcap.
- La periodicità con cui viene aggionata la visualizzazione e la persistenza dei nodi in essa sono parametri pienamente configurabili.
- La risoluzione dei nomi viene attuata ricorrendo alle funzioni libc standard.
- Cliccando su di un nodo oppure su di un link si ottiene una finestra di dettaglio.
- Statistiche globali del traffico per protocollo.
- Statistiche globali del traffico per nodo.
Installazione
EtherApe necessita su piattaforma Linux di alcuni prerequisiti:
- La libpcap packet capture library.
- GTK+ (versione 1.2 o superiore)
- Libglade
- GNOME
Sebbene siano disponibili pacchetti pre-compilati per le diverse distribuzioni (rpm e deb), questi non sono ottimizzati per piattaforme superiori a quella Intel 386, e riguardano versioni piu datate del software. Pertanto è opportuna una installazione a partire dal codice sorgente, cosa che richiede il relativo tarball file e il ricorso all’utente root (ed anche alle versioni “devel” dei prerequisiti):
# wget http://sourceforge.net/projects/etherape/files/etherape/0.9.9/etherape-0.9.9.tar.gz/download
# mv eterape-0.9.9.tar.gz /opt
# cd /opt
# tar xvzf etherape-0.9.9.tar.gz
etherape-0.9.9/
etherape-0.9.9/depcomp
etherape-0.9.9/glade/
etherape-0.9.9/glade/etherape.png
[...]
# cd etherape-0.9.9
# ./configure
[...]
# make
[...]
# make install
[...]
Una volta installato, EtherApe può essere lanciato digitando etherape al prompt, oppure a partire dal menu di gnome.

EtherApe è in grado di tracciare molti tipi di traffico di rete. In presenza di traffico, l’ammontare di quest’ultimo viene rappresentato dallo spessore delle linee che connettono i nodi interessati. La rappresentazione riguarda non solo il tipo e la quantità del traffico, ma anche origine e destinazione di esso.
Si possono ottenere ulteriori informazioni se dal menu View si seleziona Protocols per aprire la finestra Protocols, dove viene mantenuto un subtotale aggiornato per ogni tipo di pacchetto catturato.
Configurazione di EtherApe
Per configurare EtherApe occorre agire su Pref (preferences), raggiungibile sia attraverso il menu File che attraverso il pulsante specifico della toolbar, se questa è presente.

La prima scheda (Diagram) della finestra Preferences di EtherApe può essere usata per configurare alcune specifiche protocollari. Configurando il “Protocol Stack Level”, si può specificare a quale livello monitorare i pacchetti. Sono cinque i livelli dello stack che è possibile osservare: Livello 1, physical medium), Livello 2 (eth_II), Livello 3 (IP), Livello 4 (TCP e UDP), e Livello 5 (HTTP ecc). L’ uso del livello più basso fornisce le informazioni più specifiche sui pacchetti in transito.
“Node Size Variable” è una impostazione che consente di definire la direzione del traffico da monitorare. Vengono considerate due tipologie di traffico, istantaneo e cumulativo, ciascuno con tre possibili direzioni (inbound, outbound, ed in+out).
Come per tutti i monitors di rete, una delle caratteristiche più importanti di EtherApe è il filtraggio. Un filtro permette di monitorare il traffico in modo granulare.
La drop-down list in alto a destra denominata Capture Filter (sempre nella scheda Diagram ) è dove va definito il filtro.
Volendo pertanto monitorare una sottorete il cui spazio di indirizzamento IP corrisponde al range 192.168.1.0-255, occorrerebbe introdurre “src net 192.168.1 dst net 192.168.1″ per creare lo specifico filtro.
Nella fattispecie, gli indirizzi incompleti indicano ad EtherApe che si tratta di un intervallo di indirizzi e non di un singolo indirizzo.
Il significato delle altre impostazioni presenti nella scheda è assolutamente intuitivo, così come di quelle presenti nella scheda Colors.

Nella successiva scheda Timings è possibile modificare la frequenza di aggiornamento, o Diagram Refresh Period, espressa millisecondi.
Occorre considerare che più rapido è l’aggiornamento, tanto più difficile è seguire visivamente la rappresentazione del traffico. Tuttavia, con intervalli lunghi (2000 millisecondi, per esempio), troppo traffico verrebbe trascurato.
Le altre voci presenti si riferiscono tutte a dei timeouts. Ad esempio, Diagram (gruppo Node Timeouts) indica per quanto tempo un nodo debba restare visualizzato in assenza di attività. Il valore di default per tale impostazione è 60 secondi. In una rete con molti nodi potrebbe essere opportuno impostare un valore minore per mantenere il diagramma più facilmente leggibile. Per esempio, già con una rete di 4 nodi, potrebbero esservi troppi indirizzi, tra origini e destinazioni, contemporaneamente presenti, precludendo una visione chiara del traffico. Facendo sì che i nodi scompaiano dalla visualizzazione (comunque dopo un certo periodo di inattività), il traffico di rete risulterebbe molto più leggibile.
Input da file e monitoring remoto
La capacità da parte di EtherApe di leggere un file prodotto da tcpdump permette di analizzare il traffico catturato off-line.
Per sfruttare questa funzionalità il comando tcpdump deve venire invocato con gli switches -n e -w. Lo switch -n indica a tcpdump di non risolvere gli indirizzi IP, mentre lo switch -w lo istruisce a scrivere i pacchetti nel file specificato invece che su stdout.
Una volta ottenuto, col comando etherape -r dump_file, EtherApe inizierà a visualizzare il traffico registrato nel file come se venisse catturato in realtime.
Dato che è possibile incanalare l’ output di tcpdump attraverso una sessione ssh, è altresì possibile monitorare con EtherApe anche una rete remota. Per farlo occorre avere i permessi di root sulla macchina remota e lanciare un comando come:
# ( ssh SERVER_IP -l root /usr/sbin/tcpdump -n -w - ) | /usr/local/bin/etherape -m ip -r -
dove SERVER_IP_ADDRESS rappresenta l’attuale indirizzo di un server remoto.
Al lancio del comando verrà richiesta l’introduzione della password per l’utente root. Una volta introdotta la password, EtherApe si avvierà visualizzando il traffico della rete remota.


