% Monitorizaci—n de Netflow con NFSen % % Gesti—n de Redes # Introducci—n ## Metas * Aprender como instalar las herramientas Nfdump y Nfsen ## Notas * Los comandos precedidos por "$" implican que debe ejecutar el comando como usuario genŽrico - no como root * Los comandos precedidos por "#" implican que deber‡ estar trabajando como usuario root. * Los comandos con inicios de li­nea m‡s espec’ficos como "rtrX>" o "mysql>" indican que debe ejecutar los comandos en un equipo remoto, o dentro de otro programa. # Configure el colector Nota: si est‡ trabajando en parejas entonces s—lo el PC que est‡ recibiendo paquetes netflow necesita instalar nfdump y nfsen. Sin embargo, usted puede instalar en el otro pc tambiŽn, s—lo para practicar. ## Instale nfdump y el software asociado Nfdump es parte de las herramientas del colector de flujo Netflow, que incluye: nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen 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 install build-essential $ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev \ libmailtools-perl php5 bison flex ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ahora proceda a descargar y construir. Tenga en cuenta que s—lo el Ÿltimo paso (make install) tiene que hacerse como root. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd $ wget http://noc.ws.nsrc.org/downloads/nfdump-1.6.10p1.tar.gz $ tar xvzf nfdump-1.6.10p1.tar.gz $ cd nfdump-1.6.10p1 $ ./configure --help # optional, shows the build settings available $ ./configure --enable-nfprofile --enable-nftrack $ make $ sudo make install ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ### Testing nfcapd and nfdump ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ mkdir /tmp/nfcap-test $ nfcapd -E -p 9001 -l /tmp/nfcap-test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... despuŽs de un tiempo, una serie de flujos deben ser descargados en la pantalla. Detenga la herramienta con CTRL + C y luego revise el contenido en /tmp/nfcap-test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ ls -l /tmp/nfcap-test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Deber’a ver uno o m‡s archivos llamados `nfcapd.
` Procesar el/los archivo(s) con nfdump: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nfdump -r /tmp/nfcap-test/nfcapd.2013wwxxyyzz | less nfdump -r /tmp/nfcap-test/nfcapd.2013wwxxyyzz -s srcip/bytes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Deben obtener alguna informaci—n. ## Instalaci—n y configuraci—n de NFSen Descargar y compilar. El parche es para arreglar un problema reportado en ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd $ wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz $ tar xvzf nfsen-1.3.6p1.tar.gz $ cd nfsen-1.3.6p1 $ wget http://noc.ws.nsrc.org/downloads/nfsen-socket6.patch $ patch -p0 < nfsen-socket6.patch $ cd etc $ cp nfsen-dist.conf nfsen.conf $ editor nfsen.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ajuste la variable $ BASEDIR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $BASEDIR = "/var/nfsen"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ajuste los usuarios como corresponde, 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 rapidamente. No se recomienda hacer esto en un sistema de produccion. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Receive buffer size for nfcapd - see man page nfcapd(1) $BUFFLEN = 2000; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Encuentre la definici—n de fuentes (%sources), y c‡mbiela a: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %sources=( 'rtrX' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'}, ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (sustituir el router de su grupo para rtrX, y descomente las fuentes existentes de muestra). 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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## Instale NFSen e iniciarlo Cambie al directorio origen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ cd $ cd nfsen-1.3.6p1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ahora, finalmente, instalamos: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ sudo perl install.pl etc/nfsen.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Presione ENTER cuando se le pida la ruta de 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 nfsen: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen # sudo update-rc.d nfsen defaults 20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## Iniciar Nfsen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ sudo service nfsen start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compruebe que el proceso nfcapd se ha inciado: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $ ps auxwww | grep nfcapd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ver los flujos a travŽs de la web: Puede encontrar la p‡gina nfsen aqu’: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://pcX.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 missmatch! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Esto desaparecer‡ si vuelve a cargar la p‡gina, no es un problema. ÁYa est‡! ContinŸe en el tercer laboratorio, ejercicio3-NFSen-PortTracker * NOTAS: # # Adici—n de 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 necesita, lo har’a de la siguiente manera: - Editar /var/nfsen/etc/nfsen.conf y agregar la(s) fuente(s), por ejemplo: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %sources = ( 'rtrX' => { 'port' => '9001', 'col' => '#0000ff', 'type' => 'netflow' }, 'rtrY' => { 'port' => '9002', 'col' => '#00ff00', 'type' => 'netflow' }, 'gw' => { 'port' => '9996', '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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Deberia ver: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ New sources to configure : gw rtrY Continue? [y/n] y Add source 'gw' Add source 'rtrY' Start/restart collector on port '9002' for (rtr2)[pid] Start/restart collector on port '9996' for (gw)[pid] Restart nfsend:[pid] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~