Sécurité réseau · 7 min read · Sep 12, 2025

Comment installer l'outil de surveillance de la sécurité réseau Zeek sur Ubuntu 24.04

Zeek (anciennement Bro) est une plateforme gratuite et open-source pour la surveillance de la sécurité réseau. C’est un puissant analyseur passif de trafic réseau qui enquête sur les activités suspectes ou malveillantes. Zeek peut être utilisé comme un moniteur de sécurité réseau (NSM) et prend en charge un large éventail d’analyses de trafic, du domaine de la sécurité à la mesure de performance et au dépannage.

Dans ce tutoriel, vous apprendrez comment installer l’outil de surveillance de la sécurité réseau Zeek sur le serveur Ubuntu 24.04. Vous apprendrez également comment exécuter Zeek en mode cluster, comment analyser les journaux Zeek avec la commande ‘zeek-cut’, et comment générer et analyser les journaux JSON de Zeek avec l’utilitaire ‘jq’.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Un serveur Ubuntu 24.04
  • Un utilisateur non-root avec des privilèges d’administrateur

Installation de Zeek

Zeek est un outil de surveillance de la sécurité réseau pour les systèmes d’exploitation de type Unix. Il peut être installé en utilisant plusieurs méthodes. Dans cet exemple, vous installerez Zeek sur le serveur Ubuntu 24.04 avec le gestionnaire de paquets APT du service de construction OpenSUSE.

Tout d’abord, exécutez la commande ci-dessous pour ajouter le dépôt Zeek à votre système Ubuntu.

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

Téléchargez maintenant et ajoutez la clé GPG pour le dépôt Zeek avec la commande ci-dessous.

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

Une fois la clé GPG et le dépôt Zeek ajoutés, exécutez la commande ‘ apt ‘ ci-dessous pour mettre à jour votre paquet Ubuntu.

sudo apt update

Vous pouvez maintenant exécuter la commande ‘ apt ‘ ci-dessous pour vérifier le paquet ‘ zeek ‘. Vous verrez plusieurs versions de Zeek.

sudo apt search zeek  
sudo apt-cache policy zeek

check zeek

Ensuite, installez Zeek avec la commande ‘ apt ‘ suivante. Dans cet exemple, vous installerez Zeek LTS.

sudo apt install zeek

Entrez ‘ Y ‘ pour confirmer l’installation.

install zeek

Après la fin de l’installation, ajoutez le répertoire ‘ /opt/zeek/bin ‘ au PATH système via le fichier ‘ ~/.bashrc ‘. Puis rechargez le fichier ‘ ~/.bashrc ‘ pour appliquer vos nouveaux changements. Avec cela, vous pouvez exécuter la ligne de commande Zeek via votre terminal.

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

Enfin, exécutez la commande ‘ zeek ‘ ci-dessous pour vérifier la version de Zeek et les commandes et options de base.

zeek --version  
zeek --help

Vous verrez une sortie comme suit :

zeek help

Configuration de Zeek

Après l’installation de Zeek, vous devez configurer comment Zeek fonctionnera sur votre infrastructure. Vous pouvez choisir d’exécuter Zeek en mode autonome ou en mode cluster. Pour les déploiements importants, vous pouvez utiliser le mode cluster, où les composants de Zeek sont installés sur des serveurs séparés. Pour ce test, nous allons configurer et exécuter Zeek en mode cluster en utilisant un seul serveur.

Vérifiez l’adresse IP de votre serveur avec la commande ‘ ip ‘ suivante. Dans cet exemple, nous avons une adresse IP de serveur Ubuntu ‘ 192.168.10.60 ‘.

ip a

Ouvrez la configuration réseau de Zeek ‘ /opt/zeek/etc/networks.cfg ‘ avec l’éditeur ‘ nano ‘.

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

Entrez votre sous-réseau de réseau des serveurs cibles comme suit.

192.168.10.0/24 Réseau local

Enregistrez le fichier et quittez l’éditeur une fois terminé.

Ouvrez maintenant la configuration du nœud Zeek ‘ /opt/zeek/etc/node.cfg ‘ en utilisant ‘ nano ‘.

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

Commentez les lignes suivantes pour désactiver le mode autonome de Zeek. Par défaut, Zeek fonctionne en mode autonome avec ‘ localhost ‘ et l’interface réseau ‘ eth0 ‘.

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

Collez la configuration suivante pour exécuter Zeek en mode cluster sur un seul serveur. Assurez-vous de changer l’adresse IP avec l’adresse IP de votre serveur Ubuntu. Comme vous pouvez le voir ci-dessous, le mode cluster de Zeek aura plusieurs composants tels que logger, manager, proxy, et 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

Une fois terminé, enregistrez le fichier et quittez l’éditeur.

Ensuite, exécutez la commande ‘ zeekctl ‘ ci-dessous pour vérifier votre syntaxe Zeek. Si vous avez une configuration correcte, vous verrez une sortie ‘ scripts are ok ‘.

zeekctl check

check zeek config

Maintenant, exécutez la commande ‘ deploy ‘ pour déployer votre installation de Zeek. Avec cela, le logger, le manager, le proxy et les workers de Zeek seront démarrés.

zeekctl deploy

deploy zeek

Vous pouvez vérifier chaque composant Zeek avec la commande ci-dessous.

zeekctl status

Dans la sortie ci-dessous, vous pouvez voir que chaque composant Zeek fonctionne. Cela signifie que le déploiement du cluster Zeek à nœud unique a réussi.

check zeek status

Utilisation de zeek-cut pour analyser les journaux Zeek

Maintenant que vous avez installé et déployé Zeek, des fichiers journaux de votre réseau seront générés dans le répertoire ‘ /opt/zeek/logs/current ‘. Il y aura plusieurs fichiers journaux Zeek que vous devez connaître et surveiller. Dans cette section, vous apprendrez comment utiliser l’utilitaire ‘zeek-cut’ pour générer des journaux au format TSV (Valeurs Séparées par des Tabulations).

Vérifiez le répertoire des journaux Zeek ‘ /opt/zeek/logs/current ‘ avec la commande ‘ls’ ci-dessous.

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

Vous verrez plusieurs fichiers journaux tels que :

  • conn.log : Le journal de connexion pour TCP et UDP. Ce fichier journal fournit les informations les plus utiles telles que l’horodatage, la durée de connexion, le service, et bien plus encore.
  • dns.log : Le fichier journal DNS (Domain Name System).
  • http.log : Le journal du protocole de transfert hypertexte (HTTP).
  • ssh.log : Le journal de la connexion SSH (Secure Shell) pour le suivi des connexions SSH.
  • ssl.log : Le journal du protocole SSL (Secure Socket Layer) qui contient également le journal HTTPS.

Déplacez-vous maintenant dans le répertoire ‘ /opt/zeek/logs/current ‘ et exécutez la commande ‘ cat ‘ pour afficher les journaux Zeek et canaliser la sortie avec la commande ‘ zeek-cut ‘ pour analyser la sortie au format TSV (Valeurs Séparées par des Tabulations).

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

Dans cet exemple, nous vous montrerons les valeurs des champs ‘ id.orig_h ‘, ‘ query ‘, et ‘ answers ‘.

zeek log

Vous pouvez également utiliser la commande ‘ zeek-cut ‘ comme suit pour traiter les journaux TSV et obtenir une sortie similaire.

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

zeek-cut log

Configuration de la sortie Zeek au format JSON

Zeek prend en charge plusieurs formats de journaux, y compris TSV et JSON. Dans cette section, vous apprendrez comment générer un journal Zeek au format JSON. Ensuite, vous apprendrez comment analyser les journaux JSON avec la ligne de commande ‘jq’ afin de pouvoir lire facilement vos journaux.

Ouvrez la configuration de Zeek ‘/opt/zeek/share/zeek/site/local.zeek’ avec l’éditeur ‘nano’ suivant.

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

Décommentez la ligne suivante pour activer la sortie du journal au format JSON.

@load policy/tuning/json-logs

Enregistrez le fichier et quittez l’éditeur.

Maintenant, exécutez la commande ‘ zeekctl ‘ ci-dessous pour appliquer et déployer vos changements. Une fois le processus terminé, le format de journal JSON sera généré par Zeek.

zeekctl deploy

Vous pouvez voir la sortie suivante lors du déploiement de Zeek.

deploy zeek

Ensuite, exécutez la commande ‘ cat ‘ ci-dessous pour vérifier le fichier journal Zeek. Vous verrez que le journal Zeek est maintenant au format JSON.

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

Analyse du format JSON de Zeek avec jq

Installez le paquet ‘ jq ‘ avec la commande ‘apt’ ci-dessous.

sudo apt install jq -y

Une fois l’installation terminée, allez dans le répertoire ‘/opt/zeek/logs/current’ avec la commande ‘cd’.

cd /opt/zeek/logs/current/

Pour analyser les journaux au format JSON, exécutez la commande ‘jq’ ci-dessous.

jq . dns.log

json log parsing with jq

Si vous souhaitez obtenir une sortie compacte, utilisez l’option ‘-c’ comme suit :

jq . -c dns.log

Enfin, vous pouvez également spécifier des fichiers de journaux JSON avec la commande ‘jq’ ci-dessous.

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

jq show specific key-value

Conclusion

Félicitations ! Vous avez terminé l’installation de l’outil de surveillance réseau Zeek sur le serveur Ubuntu 24.04. Vous avez appris comment déployer Zeek en mode cluster sur un nœud/serveur unique, analyser les journaux Zeek avec l’utilitaire ‘ zeek-cut ‘ pour générer un format TSV (Valeurs Séparées par des Tabulations), générer un journal Zeek au format JSON, et analyser le journal JSON avec l’utilitaire ‘jq’. À partir de là, vous pouvez passer à l’étape suivante en envoyant votre journal JSON ou vos journaux Zeek à un système de journalisation centralisé tel que Graylog et la pile ELK/EFK.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.