# Monitorieando Netflow con NfSen - Gestión de Redes

# Introducción

## Metas

- Aprender a instalar las herramientas nfdump y NfSen

## Notas

- Los comandos precedidos por el signo de pesos “$”, deben ser ejecutados como un usuario general - y no como superusuario (root).
- Los comandos precedidos por el signo de número “#”, deben ser ejecutados por el superusuario (root).
- Los comandos precedidos por lineas de comando más específicas (Ej. “rtrX>” or “mysql>”) deben ser ejecutados en equipos remotos, o dentro de otras aplicaciones.
- Si la línea de comandos termina con una barra invertida “\”, quiere decir que el comando continua en la próxima línea y todas líneas deben ser tratadas como un comando de una sola línea.
- Referencias a “Y”, representan su número de grupo. aa # Configurar el Colector

## Instalar NfDump y el software asociado

NfDump es parte de las herramientas del colector de flujo Netflow, que incluye:

nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen

Estos ya están instalados en su instancia srv1, por lo que puede continuar directamente con el siguiente paso. Están instalados en un contenedor separado llamado “nfsen”.

### Probando nfcapd y nfdump

    $ incus shell nfsen

    # systemctl stop nfsen
    # mkdir /tmp/nfcap-test
    # nfcapd -E  -p 9996 -l /tmp/nfcap-test

… después de un tiempo, una serie de flujos deben ser mostrados en pantalla.

Detenga la herramienta con -C y luego revise el contenido de /tmp/nfcap-test

    $ ls -l /tmp/nfcap-test

Deberá ver uno o más archivos llamados `nfcapd.<AÑO><MES><DÍA><HR><MIN>`

Procesar el/los archivo(s) con nfdump:

    nfdump -r /tmp/nfcap-test/nfcapd.20YYwwxxyyzz | less
    nfdump -r /tmp/nfcap-test/nfcapd.20YYwwxxyyzz -s srcip/bytes

Debe obtener alguna información útil :)

## Instalación y configuración de NfSen

NfSen se ha instalado y configurado para usted. Asegúrese de que todavía se encuentra dentro del contenedor nfsen. De lo contrario, inicie sesión en srv1 y escriba:

    $ incus shell nfsen
    #

## Iniciar NfSen

Para iniciar NfSen:

    # systemctl start nfsen

## Ver los flujos a través de la web:

Puede encontrar la página de nfsen aquí:

    http://srv1-campusY.ws.nsrc.org/nfsen/nfsen.php

Si está trabajando en parejas, entonces ambos deben apuntar su navegador web al PC que está recibiendo flujos.

Es posible que aparezca un mensaje como:

    Frontend - Backend version mismatch!

Esto desaparecerá si vuelve a cargar la página, no es un problema.

¡Ya está! Continúe en el tercer laboratorio, ejercicio3-nfsen-top-talkers

# NOTAS

## Añadiendo fuentes

Si tuvieras varios enrutadores en la red todos enviando los flujos al misma colector, puede o bien configurarlos para que envíen a diferentes puertos del colector, o le puede decir a NFSen la dirección IP de origen de cada router. esto permite a Nfsen mostrar datos diferentes de cada origen.

NO HACERLO AHORA!!! Ya que sólo tiene un único router, pero si lo necesitase, lo haría de la siguiente manera:

- Editar /var/nfsen/etc/nfsen.conf y agregar la(s) fuente(s), por ejemplo:

    %sources = (
        'bdr1_campusY'  => { 'port' => '9996', 'col' => '#0000ff', 'type' => 'netflow' },
        'core1_campusY'  => { 'port' => '9997', 'col' => '#00ff00', 'type' => 'netflow' },
        'transitN_nren'    => { 'port' => '9998', 'col' => '#ff0000', 'type' => 'netflow' },
    );

- Reconfigurar Nfsen.

Usted tendrá que ejecutar esto cada vez que modifique `/var/nfsen/etc/nfsen.conf`:

    $ sudo /etc/init.d/nfsen reconfig

Debería ver:

    New sources to configure : core1-campusY transitN-nren
    Continue? [y/n] y

    Add source 'core1-campusY'
    Add source 'transitN-nren'

    Start/restart collector on port '9997' for (core1-campusY)[pid]
    Start/restart collector on port '9998' for (transitN-nren)[pid]

    Restart nfsend:[pid]

# Installation Reference

El resto de este documento es una referencia en caso de que desees instalar estas herramientas en casa.

## Instalar NfDump y el software asociado

Hay un paquete en Ubuntu, pero es demasiado viejo - por lo que vamos a instalar desde el código fuente. En primer lugar, compruebe que dispone de las herramientas y dependencias necesarias:

    $ sudo apt-get update
    $ sudo apt-get install build-essential autoconf libtool pkg-config
    $ sudo apt-get install rrdtool librrds-perl librrdp-perl librrd-dev libbz2-dev \
           libmailtools-perl libsocket6-perl apache2 libapache2-mod-php bison flex

Ahora proceda a descargar y construir nfdump. Tenga en cuenta que sólo el último paso (make install) tiene que hacerse como root.

    $ cd
    $ wget http://www.ws.nsrc.org/downloads/nfdump-1.7.4.tar.gz
    $ tar xvzf nfdump-1.7.4.tar.gz
    $ cd nfdump-1.7.4
    $ ./configure --help      # optional, shows the build settings available
    $ ./configure --enable-nfprofile --enable-nftrack
    $ make
    $ sudo make install

### Probando nfcapd y nfdump

    $ mkdir /tmp/nfcap-test
    $ nfcapd -E  -p 9996 -l /tmp/nfcap-test

… después de un tiempo, una serie de flujos deben ser mostrados en pantalla.

Detenga la herramienta con -C y luego revise el contenido de /tmp/nfcap-test

    $ ls -l /tmp/nfcap-test

Deberá ver uno o más archivos llamados `nfcapd.<AÑO><MES><DÍA><HR><MIN>`

Procesar el/los archivo(s) con nfdump:

    nfdump -r /tmp/nfcap-test/nfcapd.20YYwwxxyyzz | less
    nfdump -r /tmp/nfcap-test/nfcapd.20YYwwxxyyzz -s srcip/bytes

Debe obtener alguna información útil :)

## Instalación y configuración de NfSen

Descargar y compilar NfSen.

    $ cd
    $ wget http://www.ws.nsrc.org/downloads/nfsen-v.1.3.11.tar.gz
    $ tar -xvzf v.1.3.11.tar.gz
    $ cd nfsen-v.1.3.11/etc
    $ cp nfsen-dist.conf nfsen.conf
    $ editor nfsen.conf

Ajuste la variable $BASEDIR

    $BASEDIR = "/var/nfsen";

Ajuste los usuarios adecuadamente para que Apache pueda acceder a los archivos:

    $WWWUSER = 'www-data';
    $WWWGROUP = 'www-data';

Ajuste el tamaño del búfer a algo pequeño y observara datos rápidamente. No se recomienda hacer esto en un sistema de producción.

    # Receive buffer size for nfcapd - see man page nfcapd(1)
    $BUFFLEN = 2000;

Encuentre la definición de fuentes (%sources), y cámbiela a:

    %sources=(
    'bdr1_campusY' => {'port'=>'9996','col'=>'#0000ff','type'=>'netflow'},
     );

(Sustituir el router de su grupo para bdr1-campusY, y comente o elimine las fuentes existentes de muestra).

Finalmente cambie la variable $HTMLDIR de `/var/www/nfsen/` a `/var/www/html/nfsen/`

    $HTMLDIR    = "/var/www/html/nfsen/";

Ahora, guarde y salga del archivo.

## Cree el usuario netflow en el sistema

    $ sudo useradd -d /var/nfsen -G www-data -m -s /bin/false netflow

## Instalar NfSen e iniciarlo

Cambie de nuevo al directorio donde está el código fuente:

    $ cd
    $ cd nfsen-v.1.3.11

Ahora, finalmente, instalamos:

    $ sudo perl install.pl etc/nfsen.conf

Presione ENTER cuando se le pida donde se encuentra Perl.

## Instalar el script de inicio

Con el fin de que nfsen se inicie y se detenga automáticamente cuando se inicie el sistema, se tiene que agregar un enlace al diretorio init.d apuntando al script de inicio de nfsen:

    $ sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen
    $ sudo update-rc.d nfsen defaults 20