Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Configurar e instalar Akvorado 2.0 para monitorizar el tráfico de red


El tráfico de red es como el agua que fluye en un río: alguien puede simplemente quedarse en la orilla y ver cómo fluye, o puede sumergirse más profundamente para comprender de dónde viene cada gota, adónde va y qué sucede en el camino. La mayoría de los administradores se conforman con la primera opción, pero aquellos que realmente quieren controlar su infraestructura eligen la segunda.



Akvorado está diseñado precisamente para este fin. Procesa datos de protocolos como NetFlow, sFlow e IPFIX, convirtiendo números abstractos en una representación clara y comprensible de la actividad de la red, sin necesidad de realizar complicadas instalaciones o configuraciones.

Akvorado ofrece un enfoque moderno para el análisis del tráfico de red que supera los principales retos de las soluciones tradicionales: la complejidad de la configuración y la implementación. Lo que antes llevaba días, ahora se gestiona con solo unos pocos comandos. Su arquitectura basada en microservicios lo hace flexible y escalable, y cada componente realiza una tarea específica de manera eficiente.

Aunque existen algunas limitaciones (el sistema aún es nuevo, la comunidad es pequeña y la documentación necesita mejoras), las capacidades de Akvorado son más que suficientes para la mayoría de las redes corporativas. Su tecnología avanzada y su baja barrera de entrada lo convierten en un candidato sólido para su implementación en entornos de producción.




¿A quién va dirigida esta guía?


Esta guía es perfecta para profesionales de diversos campos:


En el fichero /config/console.yaml podemos elegir los top-widgets que se mostrarán:

default-visualize-options:
  graph-type: stacked
  start: 12 hours ago
  end: now
  filter: InIfBoundary = external
  dimensions:
      - SrcCountry 
      - SrcGeoCity
      - SrcAS
      - DstAddr
  limit: 15
homepage-top-widgets:
  - src-as
  - dst-as
  - src-port
  - protocol
  - src-country
  - dst-port
  - protocol
  - etype
dimensions-limit: 100






  • Ingenieros de redes: para identificar y resolver problemas de rendimiento. Cuando los usuarios se quejan de la lentitud de la velocidad de Internet, Akvorado proporciona datos detallados sobre la generación de tráfico, los protocolos dominantes y cualquier anomalía.
  • Profesionales de la seguridad: como sistema de alerta temprana, ayuda a detectar escaneos a gran escala, conexiones sospechosas y ataques DDoS mediante el análisis del tráfico de red. Es especialmente útil para rastrear el origen y el destino del tráfico.
  • Ingenieros de DevOps: para optimizar las arquitecturas de microservicios. Cuando varios servicios interactúan a través de la red, es fundamental comprender sus patrones de interacción. Akvorado muestra quién se comunica con quién y con qué intensidad.
  • Gerentes de TI: para tomar decisiones informadas sobre la asignación del presupuesto. Los datos sobre el uso real del ancho de banda son más elocuentes que cualquier suposición. Por ejemplo, si se debe ampliar una conexión a una sucursal o bloquear servicios específicos (como YouTube).


La arquitectura: cada componente del sistema de «orquestación»



Akvorado no es una aplicación monolítica, sino un conjunto de servicios interconectados, cada uno con su propia función:

1. Akvorado Inlet


El inlet actúa como puerta de enlace, recibiendo datos de dispositivos de red a través de UDP (por ejemplo, el puerto 2055/udp para NetFlow). Su tarea principal es reenviar paquetes a Kafka de manera eficiente y sin retrasos.

Dato interesante: el inlet funciona como una cinta transportadora de alta velocidad, lo que garantiza que todos los paquetes se procesen rápidamente, incluso bajo cargas pesadas.

2. Apache Kafka


Kafka sirve como almacenamiento central y búfer. Está diseñado para ofrecer fiabilidad y escalabilidad, y almacena los datos hasta que otros servicios pueden procesarlos. Esto garantiza el procesamiento asíncrono y la resiliencia del sistema durante los ataques DDoS.

Ejemplo: si Akvorado Orchestrator se ve desbordado, Kafka almacenará en búfer todo el tráfico entrante hasta que el ataque remita, lo que permitirá que el procesamiento normal continúe sin pérdida de datos.

3. Akvorado Orchestrator: el cerebro del sistema


Akvorado Orchestrator es el componente central que procesa los datos sin procesar recibidos de Kafka y los transforma en información significativa. Este proceso implica añadir detalles adicionales, como la ubicación geográfica, el ASN (número de espacio de direcciones) y los nombres de host.

Nota importante: una configuración adecuada con bases de datos GeoIP es esencial para un análisis preciso de los datos. Si no se configuran correctamente, los informes serán incompletos o inexactos. Nos encontramos con este problema al intentar configurar manualmente los archivos necesarios.

4. ClickHouse


Como base de datos columnar rápida y de código abierto, ClickHouse es ideal para analizar grandes conjuntos de datos. Gestiona consultas complejas en segundos, lo que facilita la exploración de datos.

Ejemplo: una consulta para mostrar todo el tráfico de Alemania (DE) al puerto 80 durante el último mes devuelve resultados inmediatamente, incluso con miles de millones de registros.

5. Consola Akvorado

La interfaz web ofrece datos en formatos gráficos, tabulares y de mapas, lo que facilita el filtrado de la información, la identificación de anomalías y la realización de análisis en profundidad.

Una característica clave de Akvorado es su consola, que permite a los usuarios «sumergirse» en los datos. Al hacer clic en cualquier país del mapa o en una dirección IP de la tabla, se puede filtrar instantáneamente toda la información relacionada con ese elemento específico.

6. Dependencias (Redis, Traefik/Nginx)



Redis se utiliza para almacenar datos temporales en caché, lo que acelera significativamente el rendimiento del sistema. Traefik y Nginx actúan como proxies inversos, dirigiendo el tráfico web a diferentes partes de Akvorado. Garantizan un acceso seguro y eficiente a los recursos del sistema.


Primeros pasos: método de inicio rápido


La forma más fácil de empezar a utilizar Akvorado es mediante el script oficial de inicio rápido. Este descarga y configura automáticamente todos los archivos necesarios. Para ello, siga estos pasos:


    Descarga e instalación: Abra un terminal y ejecute el siguiente comando. Esto creará un nuevo directorio akvorado que contiene todos los archivos necesarios:


# mkdir akvorado
# cd akvorado
# curl -sL https://github.com/akvorado/akvorado/releases/latest/download/docker-compose-quickstart.tar.gz | tar zxvf -


    Inicie Akvorado: cambie al directorio recién creado y ejecute Docker Compose. Asegúrese de tener Docker instalado primero; si no es así, instálelo junto con el complemento compose:


    docker-compose up -d


    ¡Y eso es todo! Akvorado ya está en funcionamiento. Pero para comprender completamente cómo funciona, echemos un vistazo al contenido de los archivos.


Comprensión de todos los archivos de configuración


La configuración de Akvorado se almacena en dos archivos principales: docker-compose.yml y akvorado.yml.

docker-compose.yml: gestión de la infraestructura


Este archivo actúa como «director» de todo el sistema, especificando qué servicios deben iniciarse, cómo se interconectan, qué puertos deben abrirse y dónde deben almacenarse los datos.


  • Puertos: la sección akvorado-inlet define los puertos en los que Akvorado escucha el tráfico entrante. Por defecto, estos son 2055/udp (para NetFlow), 6343/udp (para sFlow) y 4739/udp (para IPFIX).
  •  Volúmenes: este archivo gestiona cómo se almacenan los datos en el disco. Por ejemplo, la línea akvorado-geoip:/usr/share/GeoIP:ro monta el volumen akvorado-geoip en el contenedor akvorado-orchestrator.

akvorado.yml: Configuración interna


Este archivo se encuentra en el directorio /config y controla el comportamiento de la propia aplicación Akvorado.

    Compresión en Kafka: La sección kafka contiene la configuración compression-codec: zstd. ¡Esto es crucial! El uso de zstd permite un ahorro significativo de espacio y una reducción de la carga de la red, especialmente con grandes volúmenes de tráfico.

    Configuración de Inlet: esta configuración se almacena en un archivo independiente llamado inlet.yaml, que se incluye en akvorado.yml. Allí encontrará la siguiente configuración:
  •         listen: :2055: el puerto en el que Inlet escucha el tráfico entrante.
  •         use-src-addr-for-exporter-addr: true: esta es una opción importante si sus dispositivos están detrás de un firewall NAT. Indica a Akvorado que utilice la dirección IP del remitente del paquete (es decir, su router) como dirección del exportador.

    Clasificadores: La sección principal de inlet.yaml contiene potentes herramientas para enriquecer automáticamente los datos.
  •         exporter-classifiers: Permite la clasificación automática de dispositivos (exportadores) en función de sus características.
  •         interface-classifiers: Utiliza expresiones regulares para determinar automáticamente si una interfaz de red es externa o interna. Esto simplifica el análisis del tráfico.

Ejemplos configuración /config/outlet.yaml

core:
  workers: 5
  exporter-classifiers:
  interface-classifiers:
    - |
      ClassifyConnectivityRegex(Interface.Description, "^(?i)(opnsense|eno1|vlan0.603|igc2|vlan0.605|bridge0|transit|inet):? ", "$1") &&
      ClassifyProviderRegex(Interface.Description, "^\\S+?\\s(\\S+)", "$1") &&
      ClassifyExternal()

Fichero /config/akvorado.yaml

clickhouse:
  orchestrator-url: http://akvorado-orchestrator:8080
  kafka:
    consumers: 4
   # reduce cpu usage?
    engine-settings:
      - kafka_flush_interval_ms = 1000
  prometheus-endpoint: /metrics
  asns:
    64501: ACME Corporation
  networks:
    # You should customize this section with your networks. This
    # populates the Src/DstNetName/Role/Site/Region/Tenant fields.
    # name SrcNetName
    # role DstNetName
    # site SrcNetRole
    # region  DstNetRole
    # tenant 
    192.168.0.0/24:
      name: interno
      role: interno
    91.126.217.153/32:
      name: vlan605
      city: Barcelona
    1.1.1.1/32:
      name: DNSCloudFlare
    1.0.0.1/32:
      name: DNSCloudFlare
    8.8.8.8/32:
      name: DNSGoogle
    8.8.4.4/32:
      name: DNSGoogle
    173.245.48.0/20:
      name: CloudFlareCDN
    103.21.244.0/22:
      name: CloudFlareCDN
    103.22.200.0/22:
      name: CloudFlareCDN
    103.31.4.0/22:
      name: CloudFlareCDN
    141.101.64.0/18:
      name: CloudFlareCDN
    108.162.192.0/18:
      name: CloudFlareCDN
    190.93.240.0/20:
      name: CloudFlareCDN
    188.114.96.0/20:
      name: CloudFlareCDN
    197.234.240.0/22:
      name: CloudFlareCDN
    198.41.128.0/17:
      name: CloudFlareCDN
    162.158.0.0/15:
      name: CloudFlareCDN
    104.16.0.0/13:
      name: CloudFlareCDN
    104.24.0.0/14:
      name: CloudFlareCDN
    172.64.0.0/13:
      name: CloudFlareCDN
    131.0.72.0/22:
      name: CloudFlareCDN



Pasos finales

Después de instalar Akvorado, siga estos pasos:

1. Compruebe los contenedores: asegúrese de que todos los contenedores se estén ejecutando utilizando el comando 

docker-compose ps

2. Verifique el acceso: se puede acceder a la interfaz web en la dirección http://<su_ip_del_servidor>:8081.
    Configure los dispositivos: este es el paso final y más importante: configure sus enrutadores o conmutadores para dirigir el tráfico de red a la dirección IP de su servidor Akvorado.


¿Por qué debería cambiarme a Akvorado?


Akvorado destaca frente a otras soluciones como ntopng, Grafana Flow y ElastiFlow por su enfoque de la arquitectura y el procesamiento de datos. Comparémoslas:

Akvorado

ntopng

Grafana Flow

ElastiFlow

Architecture

Distributed (Inlet, Kafka, Orchestrator, ClickHouse).

Monolithic.

Combination of Grafana + Telegraf + InfluxDB/Prometheus.

Distributed (Logstash, Elasticsearch, Kibana).

Scalability

High. Easily scalable horizontally using Kafka and ClickHouse.

Low. Limited by the resources of a single server.

Medium. Depends on database configuration.

High. Based on the ELK stack.

Performance

Excellent. ClickHouse enables immediate access to large amounts of data.

Good. Sufficient for small networks.

Depends on the database and data volume.

Good; may be slower with large volumes due to Elasticsearch.

Data “Enrichment”

Built-in and flexible. Supports GeoIP, ASN, SNMP, and custom classifications.

Basic (only GeoIP).

Basic; requires additional configuration.

Built-in (GeoIP, ASN).

Configuration Complexity

Medium. Requires knowledge of Docker Compose and YAML files.

Low. Simple installation.

Medium. Multiple components need to be configured.

High; the ELK stack is complex to set up.

Best Use Cases

For any network that requires detailed analysis, high performance, and scalability.

For small networks, home use, and quick setup.

For those already using the Grafana ecosystem.

For those already using the ELK stack.


La ventaja clave de Akvorado es su uso de ClickHouse. A diferencia de Elasticsearch, que está optimizado para búsquedas de texto completo, ClickHouse está diseñado específicamente para consultas analíticas ultrarrápidas en grandes cantidades de datos estructurados. Esto permite a Akvorado ofrecer un rendimiento que muchas otras soluciones no pueden igualar, especialmente en proyectos a gran escala.


Aquí hay varias razones adicionales por las que Akvorado podría convertirse en su herramienta de monitoreo preferida:


  •     Facilidad de uso: su simplicidad esconde sus potentes capacidades. Se puede configurar en cuestión de minutos utilizando un script de inicio rápido, lo que le permite evaluar rápidamente todas sus funciones sin tener que dedicar horas a una configuración compleja.
  • Análisis visual intuitivo: Akvorado enriquece automáticamente los datos con información geográfica e identificadores del sistema, lo que proporciona información inmediata sobre las fuentes de tráfico en un mapa, sin necesidad de pasos adicionales. Esto transforma los datos sin procesar en una representación visual fácilmente comprensible.
  •     Ideal para aprender: si es nuevo en el análisis del tráfico de red, Akvorado es una herramienta excelente para comprender cómo funciona el análisis de redes. Demuestra claramente cómo se puede extraer información valiosa de los paquetes de datos.
  • Alto rendimiento: incluso en ordenadores portátiles normales, Akvorado funciona rápidamente gracias al uso de ClickHouse, una base de datos optimizada para consultas analíticas, lo que le permite analizar grandes cantidades de datos sin retrasos.

Filtros Disponibles - Ejemplo Flow

Ejemplos Filtros en el fichero /config/console.yaml

database:
  saved-filters:
    # These are prepopulated filters you can select in a drop-down
    # menu. Users can add more filters interactively.
    - description: "From Google Cloud"
      content: >-
        InIfBoundary = external AND SrcAS = AS396982
    - description: "CloudFlare CDN"
      content: >-
        InIfBoundary = external AND SrcNetName = "CloudFlareCDN"
    - description: "Ping"
      content: >-
        InIfBoundary = external AND Proto = "ICMP"
    - description: "https traffic"
      content: >-
        InIfBoundary = external AND SrcPort = 443
    - description: "rsync"
      content: >-
        InIfBoundary = external AND SrcPort = 873
    - description: "DNS"
      content: >-
        InIfBoundary = external AND SrcPort =  53
    - description: "CloudFlare Transit"
      content: >-
        InIfBoundary = external AND SrcAS = AS13335
    - description: "From Adamo"
      content: >-
        InIfBoundary = external AND SrcAS = AS35699
    - description: "From Digi"
      content: >-
        InIfBoundary = external AND SrcAS = AS57269
    - description: "From Movistar"
      content: >-
        InIfBoundary = external AND SrcAS = AS3352
    - description: "Telegram Messenger EUR"
      content: >-
        InIfBoundary = external AND SrcAS = AS62041
    - description: "From Netflix"
      content: >-
        InIfBoundary = external AND SrcAS = AS2906
    - description: "From GAFAM"
      content: >-
        InIfBoundary = external AND
        SrcAS IN (AS15169, AS16509, AS32934, AS6185, AS8075)

  • Last flow
  • TimeReceived 2025-10-02T08:00:12Z
  • Bytes 76
  • Packets 1
  • ExporterAddress 192.168.0.2
  • ExporterGroup
  • ExporterName exporter1
  • ExporterRegion home
  • ExporterRole router
  • ExporterSite
  • ExporterTenant landomain
  • SamplingRate 60
  • SrcAddr 198.98.51.249
  • SrcAS 53667
  • SrcCountry US
  • SrcGeoCity
  • SrcGeoState
  • SrcNetMask 0
  • SrcNetName
  • SrcNetRegion
  • SrcNetRole
  • SrcNetSite
  • SrcNetTenant
  • SrcPort 443
  • InIfBoundary external
  • InIfConnectivity
  • InIfDescription opnsense
  • InIfName opnsense
  • InIfProvider
  • InIfSpeed 1000
  • Dst1stAS 0
  • Dst2ndAS 0
  • Dst3rdAS 0
  • DstAddr 91.126.217.153
  • DstAS 35699
  • DstASPath []
  • DstCommunities []
  • DstCountry ES
  • DstGeoCity
  • DstGeoState
  • DstLargeCommunities []
  • DstNetMask 32
  • DstNetName
  • DstNetRegion
  • DstNetRole
  • DstNetSite
  • DstNetTenant
  • DstPort 55570
  • OutIfBoundary external
  • OutIfConnectivity
  • OutIfDescription opnsense
  • OutIfName opnsense
  • OutIfProvider
  • OutIfSpeed 1000
  • EType 2048
  • ForwardingStatus 0
  • Proto 6

Ejemplos SanKey





Grafana Template Dashboard

Data Source:


Tipo de consulta:
  • sankey 
Al utilizar sankey, se deben utilizar al menos dos dimensiones.


  • timeseries
Unidades
  • l3bps
  • pps
 L3bps (Layer 3 Bits per Second) y PPS (Packets Per Second)


  • Dimensión
Lista de selección múltiple: los valores se obtienen del back-end.
  • Límite: número de resultados devueltos.
El número de resultados devueltos es, en realidad, el límite +1, donde +1 es el valor «otros», que muestra la agregación de todos los demás valores.
  • Filtros: expresión para filtrar el resultado.
El campo se autocompleta y se basa en un verificador sintáctico.










Fuentes:

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.