#4sysadmins

Inicio » GNU/Linux » Generar recolectar y tratar Netflow

Generar recolectar y tratar Netflow

Últimas Entradas

Follow #4sysadmins on WordPress.com

¿Que es Netflow?

Netflow es un protocolo de red desarrollado por Cisco Systems para recolectar información sobre tráfico IP. Netflow se ha convertido en un estándar de la industria para monitorización de tráfico de red.

En la actualidad Netflow es soportado por todos los switches y routers Cisco. No obstante, otros dispositivos de fabricantes como Juniper, Enterasys Switches y OS como Linux, OpenBSD, FreeBSD y NetBSD ofrecen suits de herramientas que dan soporte a Netflow.

Otros fabricantes han diseñado sistemas similares dada su popularidad y casos de usos. Algunos de estos fabricantes son HP y Huawei Technology (NetStream) o Alcatel-Lucent (Cflowd) y Ericsson (Rflow).

 

700px-Netflow_architecture

¿Como funciona Netflow?

Básicamente unos dispositivos de red como los routers y switches Cisco con la opción de Netflow habilitada, generarán datos que podrán ser enviados mediante el protocolo netflow (basado en UDP o SCTP) a una máquina centralizadora de registros (un servidor recolector de datos) que además podrá estar recolectando otros datos vía snmp, syslog, etc…

Cada paquete netflow contiene una pequeña cantidad de información (los datos son enviados en un archivo binario, nunca en crudo). Cada línea de información del paquete netflow contiene una serie de campos de información:

<Ip origen> <Ip destino> <puerto UDP/TCP origen> <puerto UDP/TCP destino> <Protocolo IP> <Interfaz SNMP> <Servicio IP>

Cada una de las líneas que componen el paquete netflow podrá ser interpretada como un evento único en “cualquiera” de las aplicaciones disponibles para recolectar y tratar estos datos (flume, logstash…)

¿No tenemos un Router Cisco pero queremos generar datos Netflow?

Existen varias aplicaciones con las que podremos generar datos netflow en un sistema GNU/Linux, como softflowd o fprobe. En esta entrada vamos a utilizar fprobe, aunque nunca está demás probar algunas otras. Para mis propósitos, yo decidí utilizar fprobe.

Generación de datos netflow

1º Instalamos fprobe:

$ sudo apt-get install fprobe

Nota: Nos aparecerá una interfaz en la que podremos elegir la fuente de datos netflow (por ejemplo eth0) y el destino (servidor colector) al que queremos enviar esta información. Esto es modificable, de momento aceptaremos <OK> en ambos pasos.

2º El servicio se habrá iniciado automáticamente con el paso anterior, así, que lo pararemos:

$ sudo ps -ef
root 2218 1 0 11:05 ? 00:00:00 /usr/sbin/fprobe -ieth0 -fip localhost:555
$ sudo kill 2218

3º Ahora lo vamos a volver a arrancar. Podemos dejar la IP (localhost) o apuntar a una IP y puerto remoto desde donde recolectaremos esta información.

$ sudo fprobe -i eth0 collect.4sysadmins.com:23456

Esta línea lo que hace es recoger toda la información que viaja a través de nuestra interfaz de red eth0 convirtiéndola en formato netflow y la envía a un host de destino, un recolector de datos (collect.4sysadmins.com) que tenemos escuchando en el puerto 23456

¿Como recuperamos los datos que envía la sonda que hemos creado?

4º En el servidor remoto o en local (si nos estamos enviado a nosotros mismo los datos netflow) deberemos de recoger los datos. Para ello utilizaremos una de las herramientas de la suit nfdump, nfcapd. Antes deberemos como no, de tener instalada la suit:

$ sudo apt-get install nfdump

Nota: Necesitaremos crear un directorio donde enviaremos los archivos que contienen las trazas netflow recogidas:

$ mkdir -p /home/nebul4ck/netflow/source1
$ sudo nfcapd -w -D -p 23456 -z -t 120 -l /home/nebul4ck/netflow/source1

Opciones utilizadas en tiempo de arranque para el demonio nfcapd:

-w : Es opcional, solo hace que las horas en las que los archivos son rotados conicidan de forma “exacta”. Es decir si los archivos rotan cada 5min, pues tendremos archivos creados a las 12:05, 12:10, 12:15 y no en 12:03, 12:08, 12:13….
-D : Inicializar nfcapd en modo demonio (background)
-p : El puerto por el que recolectaremos la información. Debe ser el mismo al que estamos enviando desde el generador de netflow fprobe.
-z : Esta opción comprime los paquetes de salida
-t : Intervalo de tiempo en segundos en los que rotaremos los archivos, por defecto 300s (5min)
-l : Indicamos la carpeta creada anteriormente. Aquí se almacenarán los paquetes creados por nfcapd que contienen flow de cada 2 min (-t 120).

¿Como volcamos los resultado?

Para ver el contenido de los archivos creados por nfcapd utilizaremos otra de las herramientas de la suit, en este caso nfdump (tiene el mismo nombre que la suit).

5º Volcamos el contenido de alguno de los archivos en la stdout.

$ nfdump -r /home/nebul4ck/netflow/source1/nfcapd.201506121340

netflow
Nota: Podemos ver las páginas man de estos comandos para configurar a nuestro gusto el funcionamiento de las mismas. Por ejemplo en vez de un solo archivo podemos recoger de un directorio con la opción –dirname

Anuncios

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: