Además de usar LibreNMS en aaNetworks, desde hace tiempo tenía la idea de usar NetFlow [https://en.wikipedia.org/wiki/NetFlow], esta configuración está al borde de OverKill en un home network, pero qué más da!
Flow Exporter: por el momento cuento con cinco equipos que cumplen con esta tarea, lo exportadores o probe como son mejor conocidos son los encargados de agregar los paquetes en flows y exportarlos al equipo central el cual se usara para hacer visualización de la información exportada.
Equipos cumpliendo esta tarea son:
zapp – Mikrotik RB493AH: RouterOS tiene la funcionalidad de capturar paquetes y enviarlos como flow ya sean v5, v9 o IPFIX, en mi caso está configurado para v9.
elzar – Ubuntu 17.04.
vul – Debian Jessie.
leela – Debian Stretch.
fry – Debian Stretch.
En el caso de Debian, existen varias opciones para tener la funcionalidad de PROBE, algunas son directamente en el kernel otras son aplicaciones que usan libcap, en mi caso me decidí por una aplicación llamada pmacct (ni idea como se pronuncia) la cual cuenta con un PROBE y muchas otras funcionalidades que en una entrada futura hablare de ellas.
Flow Collector: esta es la plataforma/aplicación responsable de recibir los flows que fueron generados en los PROBE, esta es la parte difícil, muchas de estas plataformas/aplicaciones son de pago. La razón, sencilla, los PROBE ya vienen en los routers asi que solo faltaría el Collector y dependiendo de la calidad del software que se use para colectar se verán los beneficios de tener NetFlow.
En mi caso he implementado una aplicación no tan conocida, tope con ella en un sub-reddit. flowAnalyzer es una combinación de varias aplicaciones las cuales forman el Colector y la aplicación de Análisis. Esta plataforma está basada en ELK, esta es la ventaja, luego que tenemos información generada en los probe importadas en un index de Kibana, podemos generar cualquier tipo de gráficos con información importada en el index.
En el caso de flowAnalyzer, los colectores son el producto del creador de la plataforma, estos colectores fueron desarrollados específicamente para esta tarea usando Python como lenguaje.
En esta tabla se pueden apreciar las versiones de flow soportadas y sus respectivos puertos.
Discover: esta es una sección típica de Kibana, aquí podemos ver casi en real-time todo lo que fue indexado y procesado por ElasticSearch y Kibana. Partiendo de este punto crearemos visualizaciones para luego crear dashboards.
La siguiente captura muestra todo el tráfico relacionado a la categoría Web que ha pasado por Vul.