Sicurezza Rete · 7 min read · Sep 12, 2025

Come installare lo strumento di monitoraggio della sicurezza di rete Zeek su Ubuntu 24.04

Zeek (precedentemente Bro) è una piattaforma gratuita e open-source per il monitoraggio della sicurezza di rete. È un potente analizzatore passivo del traffico di rete che indaga su attività sospette o dannose. Zeek può essere utilizzato come monitor di sicurezza di rete (NSM) e supporta un’ampia gamma di analisi del traffico, dal dominio della sicurezza alla misurazione delle prestazioni e alla risoluzione dei problemi.

In questo tutorial, imparerai come installare lo strumento di monitoraggio della sicurezza di rete Zeek sul server Ubuntu 24.04. Imparerai anche come eseguire Zeek in modalità cluster, come analizzare i log di Zeek con il comando ‘zeek-cut’ e come generare e analizzare i log JSON di Zeek con l’utilità ‘jq’.

Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Un server Ubuntu 24.04
  • Un utente non root con privilegi di amministratore

Installazione di Zeek

Zeek è uno strumento di monitoraggio della sicurezza di rete per sistemi operativi simili a Unix. Può essere installato utilizzando più metodi. In questo esempio, installerai Zeek sul server Ubuntu 24.04 con il gestore di pacchetti APT dal servizio di build OpenSUSE.

Per prima cosa, esegui il comando qui sotto per aggiungere il repository di Zeek al tuo sistema Ubuntu.

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

Ora scarica e aggiungi la chiave GPG per il repository di Zeek con il comando qui sotto.

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 volta aggiunta la chiave GPG e il repository di Zeek, esegui il comando ‘ apt ‘ qui sotto per aggiornare il tuo pacchetto Ubuntu.

sudo apt update

Ora puoi eseguire il comando ‘ apt ‘ qui sotto per controllare il pacchetto ‘ zeek ‘. Vedrai più versioni di Zeek.

sudo apt search zeek  
sudo apt-cache policy zeek

check zeek

Successivamente, installa Zeek con il seguente comando ‘ apt ‘. In questo esempio, installerai Zeek LTS.

sudo apt install zeek

Inserisci ‘ Y ‘ per confermare l’installazione.

install zeek

Dopo che l’installazione è terminata, aggiungi la directory ‘ /opt/zeek/bin ‘ al PATH di sistema attraverso il file ‘ ~/.bashrc ‘. E poi ricarica il file ‘ ~/.bashrc ‘ per applicare le tue nuove modifiche. Con questo, puoi eseguire la riga di comando di Zeek attraverso il tuo terminale.

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

Infine, esegui il comando ‘ zeek ‘ qui sotto per controllare la versione di Zeek e i comandi e le opzioni di base.

zeek --version  
zeek --help

Vedrai un output simile al seguente:

zeek help

Configurazione di Zeek

Dopo aver installato Zeek, devi configurare come Zeek verrà eseguito sulla tua infrastruttura. Puoi scegliere di eseguire Zeek in modalità standalone o cluster. Per grandi distribuzioni, puoi utilizzare la modalità cluster, in cui i componenti di Zeek sono installati su server separati. Per questo scopo di test, configureremo e eseguiremo Zeek in modalità cluster utilizzando un singolo server.

Controlla l’indirizzo IP del tuo server con il seguente comando ‘ ip ‘. In questo esempio, abbiamo un indirizzo IP del server Ubuntu ‘ 192.168.10.60 ‘.

ip a

Apri la configurazione di rete di Zeek ‘ /opt/zeek/etc/networks.cfg ‘ con l’editor ‘ nano ‘.

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

Inserisci il tuo subnet di rete dei server target come segue.

192.168.10.0/24 Rete Locale

Salva il file ed esci dall’editor quando hai finito.

Ora apri la configurazione del nodo di Zeek ‘ /opt/zeek/etc/node.cfg ‘ utilizzando ‘ nano ‘.

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

Commenta le seguenti righe per disabilitare la modalità standalone di Zeek. Per impostazione predefinita, Zeek viene eseguito in modalità standalone con ‘ localhost ‘ e l’interfaccia di rete ‘ eth0 ‘.

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

Incolla la seguente configurazione per eseguire Zeek in modalità cluster all’interno di un singolo server. Assicurati di cambiare l’indirizzo IP con l’indirizzo IP del tuo server Ubuntu. Come puoi vedere qui sotto, la modalità cluster di Zeek avrà più componenti come logger, manager, proxy e 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

Quando hai finito, salva il file ed esci dall’editor.

Successivamente, esegui il comando ‘ zeekctl ‘ qui sotto per verificare la sintassi di Zeek. Se hai una configurazione corretta, vedrai un output ‘ scripts are ok ‘.

zeekctl check

check zeek config

Ora esegui il comando ‘ deploy ‘ per distribuire la tua installazione di Zeek. Con questo, il logger, il manager, il proxy e i workers di Zeek verranno avviati.

zeekctl deploy

deploy zeek

Puoi controllare ciascun componente di Zeek con il comando qui sotto.

zeekctl status

Nell’output qui sotto, puoi vedere che ciascun componente di Zeek è in esecuzione. Questo significa che la distribuzione del cluster Zeek a nodo singolo è riuscita.

check zeek status

Utilizzo di zeek-cut per analizzare i log di Zeek

Ora che hai installato e distribuito Zeek, i file di log della tua rete verranno generati nella directory ‘ /opt/zeek/logs/current ‘. Ci saranno più file di log di Zeek che devi conoscere e tenere d’occhio. In questa sezione, imparerai come utilizzare l’utilità ‘zeek-cut’ per generare log in formato TSV (Tab Separated Value).

Controlla la directory dei log di Zeek ‘ /opt/zeek/logs/current ‘ con il comando ‘ls’ qui sotto.

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

Vedrai più file di log come:

  • conn.log: Il log delle connessioni sia per TCP che per UDP. Questo file di log fornisce le informazioni più utili come timestamp, durata della connessione, servizio e molto altro
  • dns.log: Il file di log DNS (Domain Name System)
  • http.log.log: Il log del protocollo di trasferimento ipertestuale (HTTP)
  • ssh.log: Il log della shell sicura (SSH) per il tracciamento delle connessioni SSH.
  • ssl.log: Il log del Secure Socket Layer (SSL) che contiene anche il log HTTPS

Ora spostati nella directory ‘ /opt/zeek/logs/current ‘ e puoi eseguire il comando ‘ cat ‘ per mostrare i log di Zeek e pipe l’output con il comando ‘ zeek-cut ‘ per analizzare l’output nel 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

In questo esempio, ti mostreremo i valori dei campi ‘ id.orig_h ‘, ‘ query ‘ e ‘ answers ‘.

zeek log

Puoi anche utilizzare il comando ‘ zeek-cut ‘ come segue per elaborare i log TSV e ottenere un output simile.

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

zeek-cut log

Configurazione dell’output di Zeek in JSON

Zeek supporta più formati di log, inclusi TSV e JSON. In questa sezione, imparerai come generare un log di Zeek in formato JSON. Poi, imparerai come analizzare i log JSON con la riga di comando ‘jq’ in modo da poter leggere facilmente i tuoi log.

Apri la configurazione di Zeek ‘/opt/zeek/share/zeek/site/local.zeek’ con il seguente editor ‘nano’.

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

Decommenta la seguente riga per abilitare l’output del log in JSON.

@load policy/tuning/json-logs

Salva il file ed esci dall’editor.

Ora esegui il comando ‘ zeekctl ‘ qui sotto per applicare e distribuire le tue modifiche. E una volta che il processo è terminato, il formato di log JSON verrà generato da Zeek.

zeekctl deploy

Puoi vedere il seguente output durante la distribuzione di Zeek.

deploy zeek

Successivamente, esegui il comando ‘ cat ‘ qui sotto per controllare il file di log di Zeek. Vedrai che il log di Zeek è ora in formato JSON.

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

Analisi del formato JSON di Zeek con jq

Installa il pacchetto ‘ jq ‘ con il comando ‘apt’ qui sotto.

sudo apt install jq -y

Una volta terminata l’installazione, vai nella directory ‘/opt/zeek/logs/current’ con il comando ‘cd’.

cd /opt/zeek/logs/current/

Per analizzare i log in formato JSON, esegui il comando ‘jq’ qui sotto.

jq . dns.log

json log parsing with jq

Se desideri avere un output compatto, utilizza l’opzione ‘-c’ come segue:

jq . -c dns.log

Infine, puoi anche specificare file di log JSON con il comando ‘jq’ qui sotto.

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

jq show specific key-value

Conclusione

Congratulazioni! Hai completato l’installazione dello strumento di monitoraggio della rete Zeek sul server Ubuntu 24.04. Hai imparato come distribuire Zeek in modalità cluster in un singolo nodo/server, analizzare i log di Zeek con l’utilità ‘ zeek-cut ‘ per generare il formato TSV (Tab Separated Value), generare i log di Zeek in formato JSON e analizzare i log JSON con l’utilità ‘jq’. Da qui, puoi procedere al passo successivo inviando i tuoi log JSON o i log di Zeek a un sistema di logging centralizzato come Graylog e ELK/EFK Stack.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.