H ome
Acerca de
Servicios
MONITOREO de TRAFICO con MIKROTIK Y NETFLOW Home » MONITOREO de TRAFICO con MIKROTIK MIKROTIK Y NETFLOW
07 may
Noticias | Comentarios Noticias | Una pregunta recurrente que me suelen hacer es la siguiente… ¿…cómo monitorear monitorear el total de tráfico (su bida y bajada), de nuestra red de clientes / hosts, de manera tal que podamos visualizar el tráfico IP por IP de manera individu al…?
Algunos administradores directamente crean “queues simples” en el routeador Mikrotik , y luego, la herramienta graph (del menú “tools“), crea automagicamente las gráficas dentro del propio Mikrotik. Sin embargo, no siempre es efectiva esa herramienta, ya sea porque puede ser que no utilicemos sobrecargar el router (ya que los grá ficos son creados, que ueues ues simples, … o porque no queremos sobrecargar actualizados, procesados y almacenados en el mismo), … o porque a veces sucede sucede que el router pierde éstos gráficos, por diversos motivos. Bien, desde mi punto de vista la la mejor manera que yo he encontrado encontrado al día de hoy de hacerlo es mediante la utilización del protocolo protocolo NetFlow
NetFlow es un protocolo de red desarrollado por Cisco Systems para recolectar información información sobre sobre tráfico IP. estándar de la industria de monitoreo de tráfico de red, Netflow se ha convertido en un estándar y actualmente está soportado para varias plataformas (además de Cisco) Dado a que Mikrotik dispone de NetFlow, al a ctivar el mismo lo que sucede sucede es que el Router comienza a enviar pequeños trozos trozos de información a un servidor (también llamado “colector”) Netflow , que es quien recibe información del router (o sonda o “ exporter “), “), la almacena y procesa. Luego con esta información es posible elaborar gráficos del tráfico.
Galeri a
Casos de Ex i to
Blog
Contacto
Más información sobre NetFlow http://es.wikipedia.org/wiki/Netflow
***************************************************************************** Manos a la Obra! Lo primero que vamos a necesitar es un servidor (colector ) que reciba los paquetes NetFlow enviados por el router (sonda). Para el desarrollo del presente ejemplo, optamos por un servidor Linux Debian. No es el propósito de éste artículo indicar como se monta un Linux Debian. Quienes necesiten informacion al respecto recomiendo el sitio web HowToForge https://www.howtoforge.com/ Una vez que tengamos en ma rcha nuestro equipo con Linux Debian, con los siguientes paquetes adicionales podremos montar nuestro colector “NetFlow“ apache2 (para poder desplegar el gráfico por web) pmacct (paquete de linux que contiene el colector netflow) pnrg (pequeña aplicación que realiza gráfi cos a partir de los informes g enerados por pmacct)
***************************************************************************** Instalación del colector “NetFlow” en Linux Como señalamos, el paquete que contiene el colector NetFlow en L inux es PMACCT, el cual instalaremos así:
aptitude install pmacct
Dicho paquete pmacct incluye ademas: pmacctd : convierte al Li nux en una sonda (o “ex porter”), de cada paquete que lo atraviesa. No lo vamos a util izar dado a que en éste escenario el servidor L inux no actúa como sonda, sino en realidad lo vamos a configurar como “colector” nfacctd : es la aplicación que vamos a utilizar y es la que realmente ”colecta” paquetes NetFlow proveniente de la “sonda” o “ex porter” pmacct: (no confundir con pmacctd) es la a plicacion que lee los paquetes netFlow colectados por “nfacctd” y permite mostrar estadísticas y hacerlos humanamente leibles.
Existen otras apli caciones incluidas en el paquete como sfacctd y uacctd que son similares pero trabajan sobre variaciones del protocolo NetFlow. Rápidamente diremos que sfacctd es el colector del protocolo sFlow (http://www.sflow.org ) y uacctd es el colector basado en “Linux Netlink ULOG” (http://rlworkman.net/howtos/ulogd.html) –
Lo sigui ente que vamos a hacer es quitar del proceso de booteo el pmacctd ya que el paquete lo activa automáticamente cada vez que arranca la maquina Linux. Para ello
update‐rc.d ‐f sfacctd remove update‐rc.d ‐f uacctd remove update‐rc.d ‐f pmacct remove
Con ésto, sólo quedará activo el servicio “nfacctd “, es decir el colector NetFlow, el cual es el que nos interesa ya que recibirá del router Mikrotik (“sonda“) los paquetes NetFlow Ahora configuramos nfacctd : Podemos renombrar el archivo original para no perderlo:
mv /etc/pmacct/nfacctd.conf /etc/pmacct/nfacctd.conf.dist
Y ahora creamos un archivo nuevo de configuración:
vim /etc/pmacct/nfacctd.conf
! ! NFACCTD CONFIGURATION, ACEPTAR TRAFICO DESDE MIKROTIK ! TRAFFIC FLOW. ! debug: false daemonize: true ! plugin_buffer_size: 2048 plugin_pipe_size: 2048000 ! networks_file: /etc/pmacct/hosts.def ! ! IMPORTANTE DEFINIR EL PUERTO QUE ESCUCHARA EL COLECTOR ! LUEGO EN EL MIKROTIK DEBEMOS INDICAR ESTE NUMERO DE PUERTO ! nfacctd_port: 5055 ! ! ! NOS INTERESA EL TRAFICO IN/OUT ! plugins: memory[in], memory[out] ! aggregate[in]: dst_host aggregate[out]: src_host ! ! LA INFORMACION DE LOS FLOWS RECIBIDOS SE ALMACENARA ! EN LA MEMORIA, PARA LUEGO SER PROCESADA Y GRAFICADA ! imt_path[in]: /tmp/pmacct_in.pipe imt_path[out]: /tmp/pmacct_out.pipe
En éste archivo de configuración hacemos referencia a l archivo hosts.def , en el cual debemos indicar las subredes que nos interesan monitorear (en éste caso, las subredes de nuestros clientes)
172.16.0.0/16 10.0.0.0/8 192.168.0.0/16 Rangos de Ips publicas, etc...
Reiniciamos el servicio para que tome los cambios
/etc/init.d/nfacctd stop
/etc/init.d/nfacctd start
Chequeamos que realmente se encuentre funcionando el colector, mediante el comando netstat. Debería arrojarnos un resultado así:
COLECTOR‐SERVER:/etc/pmacct# netstat ‐punlt|grep 5055 udp6 0 0 :::5055 :::* 4503/nfacctd: Core
Y con esto, finalmente hemos terminado de configurar el colector!!!!
***************************************************************************** Activación de la sonda “NetFlow” en RouterOS Debemos activar la sonda (Routeador MIKROTIK) para que envie los flujos NetFlow al colector, es decir el Linux. Esto es mucho más sencillo de hacer
/ip traffic‐flow interfaces=all
set active‐flow‐timeout=30m cache‐entries=4k enabled=yes inactive‐flow‐timeout=15s \
/ip traffic‐flow target add address=172.16.21.2:5055 disabled=no v9‐template‐refresh=20 v9‐template‐timeout=30m \ version=9
Con esto, le estamos diciendo al Mikrotik que active el envio de paquetes NetFlow a 172.16.21.2 (en este ejemplo, la IP de nuestro servidor “colector” Li nux) , puerto 5055, usando la version 9 de NetFlow. Podemos ver la evolución de envío de paquetes NetFlow en IP‐>TrafficFlow‐>Status También podemos chequear la recepcion de paquetes NetFlow en el debian mediante el comando pmacct (no confundir con pmacctd)
pmacct ‐s ‐p /tmp/pmacct_in.pipe
o para ver el trafico OUT:
pmacct ‐s ‐p /tmp/pmacct_out.pipe
Se tiene que desplegar una tabla así como la siguiente:
COLECTOR‐SERVER:/etc/pmacct# pmacct ‐s ‐p /tmp/pmacct_out.pipe SRC_IP PACKETS BYTES 11.0.1.234 2 238 11.0.3.168 2 238 11.0.0.42 2 238 11.1.2.196 2609 181636 11.1.4.130 208 34155 11.1.3.163 26 1664 11.1.1.229 53 5886 11.0.0.226 2 238 11.1.0.221 2978 1209665 11.1.3.122 732 138421 11.0.2.119 2 238 11.0.1.152 2 238
***************************************************************************** Instalación de PNRG PNRG como indicamos arriba es la aplicación que toma los datos almacenados en el colector, leyéndolos con el comando pmaccct, y con esta información
genera los g ráficos buscados. Para que todo funcione más fácilmente y no tengamos que modifi car la configuración por defecto, lo ideal es instalarlo en /usr/local/pntg
mkdir /usr/local/pnrg cd /usr/local/pnrg
Lo descargamos:
wget http://www.pmacct.net/pnrg/pnrg‐0.1.tar.gz
Descomprimimos:
tar zxvf pnrg‐0.1.tar.gz mv pnrg‐0.1/* .
De este modo en /usr/local/pnrg nos quedará instalada la aplicación. Ahora instalamos alg unos paquetes necesarios para el funcionamiento de Pnrg
apt‐get install rrdtool
Ahora debemos indicarle a PNRG que a ctualice los gráficos cada 5 mi nutos
echo "*/5 * * * * root ( cd /usr/local/pnrg/; ./pnrg‐wrapper.sh )" > /etc/cron.d/pnrg
Y creamos algunos Symbolic Links para que no tengamos que modifi car los scripts de Pnrg
ln ‐s /usr/bin/pmacct /usr/local/bin/pmacct mkdir ‐p /usr/local/rrdtool/bin/ ln ‐s /usr/bin/rrdtool /usr/local/rrdtool/bin/rrdtool ln ‐s /usr/bin/rrdcgi /usr/local/rrdtool/bin/rrdcg i
***************************************************************************** Instalación y configuración de Apache Para que PNRG pueda desplegar los gra ficos debemos instalar y configurar el servidor web apache La instalación es sumamente sencilla:
apt‐get install apache2
Vamos a configurarlo de tal modo que podamos acceder a las gráficas desde http://IP.SERVIDOR/pnrg Entonces creamos el sig uiente enlace simbolico.
ln ‐s /usr/local/pnrg/spool /var/www/pnrg
Y habilitamos la ejecución de los archivos.cgi en /var/w ww/pnrg Editamos /etc/apache2/sites‐enabled/000‐default
y agregamos lo siguiente
AddHandler cgi‐script .cgi .pl Options Indexes ExecCGI AllowOverride None Order allow,deny Allow from all
Por último, reiniciamos a pache para que tome los cambios
/etc/init.d/apache2 restart
Si todo ha salido bien, podemos acceder a las g ráficas desde http://IP.SERVIDOR/pnrg En el menú de la izquierda deberán aparecernos todas las direcciones IPs de los hosts pertenecientes a nuestra red declarada en /etc/pmacct/hosts.def
Dejar un Mensaje Nombre * Email *
Sitio Web Comentario
Adicionar Comentario
Síganos en:
Lleve un registro de NetPro en todas sus redes sociales favoritas.
Copyright © 2013 ‐ NetPro ‐ Todos los derechos reservados.
Información de Contacto NetPro Humboldt 1844 Bahia Blanca, b8001dgj Argentina Tel/Fax: (0291) 481 7008 Mail: netpro@netpro‐ar.com