Seguridad de red · 7 min read · Sep 12, 2025

Cómo instalar la herramienta de monitoreo de seguridad de red Zeek en Ubuntu 24.04

Zeek (anteriormente Bro) es una plataforma gratuita y de código abierto para el monitoreo de seguridad de red. Es un poderoso analizador de tráfico de red pasivo que investiga actividades sospechosas o maliciosas. Zeek puede ser utilizado como un monitor de seguridad de red (NSM) y soporta una amplia gama de análisis de tráfico, desde el dominio de seguridad hasta la medición de rendimiento y solución de problemas.

En este tutorial, aprenderás cómo instalar la herramienta de monitoreo de seguridad de red Zeek en el servidor Ubuntu 24.04. También aprenderás cómo ejecutar Zeek en modo clúster, cómo analizar los registros de Zeek con el comando ‘zeek-cut’ y cómo generar y analizar el registro JSON de Zeek con la utilidad ‘jq’.

Prerrequisitos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un servidor Ubuntu 24.04
  • Un usuario no root con privilegios de administrador

Instalando Zeek

Zeek es una herramienta de monitoreo de seguridad de red para sistemas operativos similares a Unix. Se puede instalar utilizando múltiples métodos. En este ejemplo, instalarás Zeek en el servidor Ubuntu 24.04 con el gestor de paquetes APT del servicio de construcción de OpenSUSE.

Primero, ejecuta el siguiente comando para agregar el repositorio de Zeek a tu sistema Ubuntu.

echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list

Ahora descarga y agrega la clave GPG para el repositorio de Zeek con el siguiente comando.

curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_24.04/Release.key | 
 gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null

Una vez que la clave GPG y el repositorio de Zeek estén agregados, ejecuta el comando ‘ apt ‘ a continuación para actualizar tu paquete de Ubuntu.

sudo apt update

Ahora puedes ejecutar el comando ‘ apt ‘ a continuación para verificar el paquete ‘ zeek ‘. Verás múltiples versiones de Zeek.

sudo apt search zeek  
sudo apt-cache policy zeek

check zeek

A continuación, instala Zeek con el siguiente comando ‘ apt ‘. En este ejemplo, instalarás Zeek LTS.

sudo apt install zeek

Ingresa ‘ Y ‘ para confirmar la instalación.

install zeek

Después de que la instalación haya finalizado, agrega el directorio ‘ /opt/zeek/bin ‘ a la variable PATH del sistema a través del archivo ‘ ~/.bashrc ‘. Luego recarga el archivo ‘ ~/.bashrc ‘ para aplicar tus nuevos cambios. Con esto, podrás ejecutar la línea de comandos de Zeek a través de tu terminal.

echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc  
source ~/.bashrc

Por último, ejecuta el comando ‘ zeek ‘ a continuación para verificar la versión de Zeek y los comandos y opciones básicos.

zeek --version  
zeek --help

Verás una salida como la siguiente:

zeek help

Configurando Zeek

Después de que Zeek esté instalado, necesitas configurar cómo se ejecutará Zeek en tu infraestructura. Puedes elegir ejecutar Zeek en modo independiente o en modo clúster. Para implementaciones grandes, puedes usar el modo clúster, donde los componentes de Zeek se instalan en servidores separados. Para este propósito de prueba, configuraremos y ejecutaremos Zeek en modo clúster utilizando un solo servidor.

Verifica la dirección IP de tu servidor con el siguiente comando ‘ ip ‘. En este ejemplo, tenemos una dirección IP de servidor Ubuntu ‘ 192.168.10.60 ‘.

ip a

Abre la configuración de red de Zeek ‘ /opt/zeek/etc/networks.cfg ‘ con el editor ‘ nano ‘.

sudo nano /opt/zeek/etc/networks.cfg

Ingresa tu subred de red de los servidores objetivo como el siguiente.

192.168.10.0/24 Red Local

Guarda el archivo y sal del editor cuando termines.

Ahora abre la configuración del nodo de Zeek ‘ /opt/zeek/etc/node.cfg ‘ usando ‘ nano ‘.

sudo nano /opt/zeek/etc/node.cfg

Comenta las siguientes líneas para deshabilitar el modo independiente de Zeek. Por defecto, Zeek se ejecuta en modo independiente con el ‘ localhost ‘ y la interfaz de red ‘ eth0 ‘.

#[zeek]  
#type=standalone  
#host=localhost  
#interface=eth0

Pega la siguiente configuración para ejecutar Zeek en modo clúster dentro de un solo servidor. Asegúrate de cambiar la dirección IP por la dirección IP de tu servidor Ubuntu. Como puedes ver a continuación, el modo clúster de Zeek tendrá múltiples componentes como logger, manager, proxy y workers.

# logger  
[zeek-logger]  
type=logger  
host=192.168.10.60  
  
# manager  
[zeek-manager]  
type=manager  
host=192.168.10.60  
  
# proxy  
[zeek-proxy]  
type=proxy  
host=192.168.10.60  
  
# worker  
[zeek-worker]  
type=worker  
host=192.168.10.60  
interface=eth0  
  
# worker localhost  
[zeek-worker-lo]  
type=worker  
host=localhost  
interface=lo

Cuando termines, guarda el archivo y sal del editor.

A continuación, ejecuta el comando ‘ zeekctl ‘ a continuación para verificar la sintaxis de Zeek. Si tienes una configuración adecuada, verás una salida ‘ scripts are ok ‘.

zeekctl check

check zeek config

Ahora ejecuta el comando ‘ deploy ‘ para implementar tu instalación de Zeek. Con esto, se iniciarán el logger, el manager, el proxy y los workers de Zeek.

zeekctl deploy

deploy zeek

Puedes verificar cada componente de Zeek con el siguiente comando.

zeekctl status

En la salida a continuación, puedes ver que cada componente de Zeek está en ejecución. Esto significa que la implementación del clúster de Zeek de un solo nodo ha sido exitosa.

check zeek status

Usando zeek-cut para analizar los registros de Zeek

Ahora que has instalado y desplegado Zeek, los archivos de registro de tu red se generarán en el directorio ‘ /opt/zeek/logs/current ‘. Habrá múltiples archivos de registro de Zeek que debes conocer y mantener bajo vigilancia. En esta sección, aprenderás cómo usar la utilidad ‘zeek-cut’ para generar registros en formato TSV (Tab Separated Value).

Verifica el directorio de registros de Zeek ‘ /opt/zeek/logs/current ‘ con el comando ‘ls’ a continuación.

ls -ah /opt/zeek/logs/current/

Verás múltiples archivos de registro como:

  • conn.log: El registro de conexión tanto para TCP como para UDP. Este archivo de registro proporciona la información más útil, como la marca de tiempo, la duración de la conexión, el servicio y muchos más.
  • dns.log: El archivo de registro DNS (Domain Name System).
  • http.log: El registro del Protocolo de Transferencia de Hipertexto (HTTP).
  • ssh.log: El registro de Shell Seguro (SSH) para rastrear conexiones SSH.
  • ssl.log: El registro de Capa de Conexión Segura (SSL) que también contiene el registro HTTPS.

Ahora muévete al directorio ‘ /opt/zeek/logs/current ‘ y puedes ejecutar el comando ‘ cat ‘ para mostrar los registros de Zeek y canalizar la salida con el comando ‘ zeek-cut ‘ para analizar la salida en formato TSV (Tab Separated Value).

cd /opt/zeek/logs/current/  
  
cat dns.log | zeek-cut id.orig_h query answers  
cat dns.log | zeek-cut query answers id.orig_h

En este ejemplo, te mostraremos valores de los campos ‘ id.orig_h ‘, ‘ query ‘ y ‘ answers ‘.

zeek log

También puedes usar el comando ‘ zeek-cut ‘ de la siguiente manera para procesar los registros TSV y obtener una salida similar.

zeek-cut id.orig_h query answers < dns.log

zeek-cut log

Configurando la salida de Zeek a JSON

Zeek soporta múltiples formatos de registro, incluyendo TSV y JSON. En esta sección, aprenderás cómo generar un registro de Zeek en formato JSON. Luego, aprenderás cómo analizar registros JSON con la línea de comandos ‘jq’ para que puedas leer fácilmente tus registros.

Abre la configuración de Zeek ‘/opt/zeek/share/zeek/site/local.zeek’ con el siguiente editor ‘nano’.

sudo nano /opt/zeek/share/zeek/site/local.zeek

Descomenta la siguiente línea para habilitar el registro de salida a JSON.

@load policy/tuning/json-logs

Guarda el archivo y sal del editor.

Ahora ejecuta el comando ‘ zeekctl ‘ a continuación para aplicar y desplegar tus cambios. Y una vez que el proceso haya terminado, el formato de registro JSON será generado por Zeek.

zeekctl deploy

Puedes ver la siguiente salida durante la implementación de Zeek.

deploy zeek

A continuación, ejecuta el comando ‘ cat ‘ a continuación para verificar el archivo de registro de Zeek. Verás que el registro de Zeek ahora está en formato JSON.

cat /opt/zeek/logs/current/dns.log

Analizando el formato JSON de Zeek con jq

Instala el paquete ‘ jq ‘ con el comando ‘apt’ a continuación.

sudo apt install jq -y

Una vez que la instalación haya finalizado, ve al directorio ‘/opt/zeek/logs/current’ con el comando ‘cd’.

cd /opt/zeek/logs/current/

Para analizar registros en formato JSON, ejecuta el comando ‘jq’ a continuación.

jq . dns.log

json log parsing with jq

Si deseas tener una salida compacta, usa la opción ‘-c’ como la siguiente:

jq . -c dns.log

Por último, también puedes especificar archivos de registros JSON con el comando ‘jq’ a continuación.

jq -c '[."id.orig_h", ."query", ."answers"]' dns.log

jq show specific key-value

Conclusión

¡Felicidades! Has completado la instalación de la herramienta de monitoreo de red Zeek en el servidor Ubuntu 24.04. Has aprendido cómo desplegar Zeek en modo clúster en un solo nodo/servidor, analizar los registros de Zeek con la utilidad ‘ zeek-cut ‘ para generar formato TSV (Tab Separated Value), generar registros de Zeek en formato JSON y analizar registros JSON con la utilidad ‘jq’. A partir de aquí, puedes proceder al siguiente paso enviando tu registro JSON o registros de Zeek a un sistema de registro centralizado como Graylog y ELK/EFK Stack.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.