Netflow Open Source en Linux

Implementación gratuita y open source sobre Centos 7 para capturar NETFLOW, utilizando NFDUMP y NFSEN.

INSTALACIÓN:
(Te recomiendo primero correr el template para centos7)

	# DEPENDENCIAS
	sudo yum -y install rrdtool rrdtool-devel rrdutils perl-rrdtool flex perl-Sys-Syslog perl-MailTools perl-Socket6 wget gcc perl-Data-Dumper

	# APACHE
	sudo yum -y install httpd php
	sudo systemctl enable httpd
	sudo systemctl start httpd

	# NFDUMP
	cd /usr/src/
	sudo wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.13/nfdump-1.6.13.tar.gz
	sudo tar -xvzf nfdump-1.6.13.tar.gz
	cd nfdump-1.6.13
	sudo ./configure --prefix=/ --enable-nfprofile
	sudo make
	sudo make install

	# NFSEN
	cd /usr/src/
	sudo wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
	sudo tar -xvzf nfsen-1.3.6p1.tar.gz
	cd nfsen-1.3.6p1

	# CONF NFSEN
	sudo cp etc/nfsen-dist.conf etc/nfsen.conf
	# Fix Apache Users
	USER_APACHE=apache
	sudo sed -i 's/$WWWUSER  = "www";/$WWWUSER  = "'$USER_APACHE'";/g' etc/nfsen.conf
	sudo sed -i 's/$WWWGROUP = "www";/$WWWGROUP = "'$USER_APACHE'";/g' etc/nfsen.conf
	# Fix bin Prefix
	sudo sed -i "s/$PREFIX  = '\/usr\/local\/bin';/$PREFIX  = '\/usr\/bin';/g" etc/nfsen.conf
	# Fix Document Root de Apache
	sudo sed -i 's/$HTMLDIR    = "\/var\/www\/nfsen\/";/$HTMLDIR    = "\/var\/www\/html\/nfsen\/";/g' etc/nfsen.conf
	# Create Netflow User
	USER_NETFLOW=netflow
	sudo useradd $USER_NETFLOW
	sudo passwd -l $USER_NETFLOW
	sudo usermod -a -G $USER_APACHE $USER_NETFLOW
	# Crear Install Path (Para cambiar, modificar $BASEDIR en nfsen.conf)
	sudo mkdir -p /data/nfsen


	# INSTALL NFSEN
	sudo ./install.pl etc/nfsen.conf

CONFIGURACIÓN DE LOS DISPOSITIVOS:

Editá el archivo $PATH_INSTALL_NFSEN/etc/nfsen.conf, y ubicá el siguiente codigo:

	%sources = (
	    'upstream1'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
	    'peer1'        => { 'port' => '9996', 'IP' => '172.16.17.18' },
	    'peer2'        => { 'port' => '9996', 'IP' => '172.16.17.19' },
	);

Borrar la línea upstream1, peer1 y peer2, y agregar una línea por cada equipo a monitorear, que incluirá el puerto (puedes recibir más de un netflow en el mismo puerto), la IP de origen, el color en hexa y el tipo que será netflow.

Ejemplo:

	%sources = (
	    'EQUIPO1'     => { 'port' => '5000', 'IP' => '192.168.0.1', 'col' => '#0000ff', 'type' => 'netflow' },
	    'EQUIPO2'     => { 'port' => '5000', 'IP' => '192.168.0.2', 'col' => '#2efe2e', 'type' => 'netflow' },
	    'EQUIPO3'     => { 'port' => '5001', 'IP' => '192.168.0.3', 'col' => '#d6f8d3', 'type' => 'netflow' },
	);

RECONFIGURAR:

Cada vez que edites la configuración deberás reconfigurar nfsen así

	$PATH_INSTALL_NFSEN/bin/nfsen reconfig

Y para levantar el servicio:

	$PATH_INSTALL_NFSEN/bin/nfsen start

ACCESO WEB:

http://servidor/nfsen/nfsen.php

Saludos!

Gabriel

Read more