Visualización interactiva de tráfico de red con INAV.

Seguimos con la serie dedicada a Visualización gráfica de tráfico de red. En esta serie hemos visto InetVis , InetVis para detección de escan de puertos (representación tridimiensional de tráfico de red), NetGrok, Representación gráfica de tráfico de red con Argus Xplot /Jplot, Afterglow, TNV, etc, e icluso geolocalización con Snort / snoge, geolocalización con prelude correlator, Xplico, …

En esta ocasión vamos a ver una herramienta de visualización interactiva, en tiempo real, con una arquitectura cliente-servidor. Se trata de INAV (Interactive Network Active-Traffic Visualization).INAV (Interactive Network Active-Traffic Visualization). es una herramienta, como hemos comentado, del tipo cliente-servidor. El cliente desarrollado en Java y, por tanto, multiplataforma.

INAV nos muestra información del tráfico activo por nodos (host activos), la relación o conversación entre hosts, resolución DNS, rendimiento, etc.

Instalación de INAV.

Para el cliente no es necesario requisito alguno. Se trata de una aplicación en Java, por tanto multiplataforma. En este artículo ejecuraré INAV en un sistema Windows XP.

Lo descargamos (cliente) desde aquí: http://inav.scaparra.com/download/client/

Para el servidor es necesario:

  • libpcap0.8
  • libpcap0.8-dev
  • g++

Requisitos que ya tendremos resuelto si hemos seguido otros artículos similares para instalar herramietnas de tráfico de red.

Voy a instalar el server, en este caso, en un sistema GNU/Linux Security Onion. Puede ser cualquiera, también he instalado el server en un Ubuntu Linux.

Vamos a ello:


alfon@alfonubuntu:~$ wget http://inav.scaparra.com/files/server/INAV-Server-0.3.7.tar.gz
--2011-06-15 18:43:21--  http://inav.scaparra.com/files/server/INAV-Server-0.3.7.tar.gz
Resolviendo inav.scaparra.com... 69.163.242.195
Conectando a inav.scaparra.com|69.163.242.195|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 93012 (91K) [application/x-tar]
Guardando en: «INAV-Server-0.3.7.tar.gz»

100%[==============================================================>] 93.012      31,2K/s   en 2,9s

2011-06-15 18:43:24 (31,2 KB/s)-«INAV-Server-0.3.7.tar.gz» guardado [93012/93012]

alfon@alfonubuntu:~$ tar xzvf INAV-Server-0.3.7.tar.gz
INAV-Server-0.3.7/
INAV-Server-0.3.7/README.txt
INAV-Server-0.3.7/server/
INAV-Server-0.3.7/server/minorVersion.txt
INAV-Server-0.3.7/server/build.txt
INAV-Server-0.3.7/server/clientComm.cpp
INAV-Server-0.3.7/server/inputPlugin.hpp
INAV-Server-0.3.7/server/edge.hpp
INAV-Server-0.3.7/server/makefile
INAV-Server-0.3.7/server/pcapSniffer.hpp
INAV-Server-0.3.7/server/rectangle.cpp
INAV-Server-0.3.7/server/ethernet.cpp
INAV-Server-0.3.7/server/udp.cpp
INAV-Server-0.3.7/server/log.h
INAV-Server-0.3.7/server/constants.h
INAV-Server-0.3.7/server/data.hpp
INAV-Server-0.3.7/server/snifferData.cpp
INAV-Server-0.3.7/server/sniffer.h
INAV-Server-0.3.7/server/node.hpp
INAV-Server-0.3.7/server/bandwidthMonitor.cpp

fon@alfonubuntu:~/INAV-Server-0.3.7/server$ make
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o clientComm.o clientComm.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o clientCommData.o clientCommData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o baseData.o baseData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o snifferData.o snifferData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o sniffer.o sniffer.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ethernet.o ethernet.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ip.o ip.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o tcp.o tcp.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o packet.o packet.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o filterData.o filterData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o graphData.o graphData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o bandwidthMonitor.o bandwidthMonitor.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/semaphore.o ../common/semaphore.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o icmp.o icmp.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o traceroute/tracerouteData.o traceroute/tracerouteData.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o traceroute/tracerouteThread.o traceroute/tracerouteThread.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/commandLineParser.o ../common/commandLineParser.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/xmlParser.o ../common/xmlParser.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o helper.o helper.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o udp.o udp.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/parseCommas.o ../common/parseCommas.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o debugThread.o debugThread.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/mutex.o ../common/mutex.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o ../common/threads.o ../common/threads.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o dataQueue.o dataQueue.cpp
g++ -ggdb -g3 -D INAV_VERSION=\"0.3.7\"   -c -o inavServer.o inavServer.cpp
g++ -lpthread -lpcap -o inavd clientComm.o clientCommData.o baseData.o snifferData.o sniffer.o ethernet.o ip.o tcp.o packet.o filterData.o graphData.o bandwidthMonitor.o ../common/semaphore.o icmp.o traceroute/tracerouteData.o traceroute/tracerouteThread.o ../common/commandLineParser.o ../common/xmlParser.o helper.o udp.o ../common/parseCommas.o debugThread.o ../common/mutex.o ../common/threads.o dataQueue.o inavServer.o
alfon@alfonubuntu:~/INAV-Server-0.3.7/server$

Como el server está instalado en un Security Onion, ahora hay que abrir el puerto 5000 para que el cliente se pueda establecer la comunicación:

iptables -A INPUT -p tcp –dport 5000 -j ACCEPT

Ejecutando INAV.

Vamos a ejecutar el servidor de la forma:

Ahora desde mi Windows XP o desde donde tenga el cliente ejecutamos el archivo java:

En la consola, del servidor aparecerán las conexiones, nodos, etc:

Visualizando la actividad de los hosts activos en el cliente.

Ya hemos ejecutado el archivo java y aparecerá una interface gráfica que, en unos segundos, comenzará a tener actividad de forma interactiva, aparfciendo los nodos, relaciones entre ellos, etc.

Eso sí, antes tendremos que indicar el la parte superior el host donde se encuentra el servidor y el puerto (por defecto el 5000).  Pulsamos en connect y

La información que muestra INAV es clara y tampoco necesita mayor explicación.

Se visualizarán solo los nodos o host que estén activos, cuando no lo estén desaparecerán de la zona de visualización de nodos.

Abajo vemos la relación entre uno de las puertas de enlace del laboratorio con otros host externos, el ancho de banda indicado por código de colores, puertos usados..:

Los host irán apareciendo y despareciendo, mostrando información, relaciones, ancho de banda, … todo en tiempo real.

INAV es capaz de gestionar grandes volúmenes de información y representación de nodos. Eso sí, necesitamos tener una buena «máquina».

===

Y hasta aquí por hoy. Hasta la próxima.

Esta entrada fue publicada en INAV, Seguridad y redes, Visualización Gráfica Tráfico red.. Guarda el enlace permanente.

Deja un comentario