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.listTé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/nullUne 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 updateVous 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
Ensuite, installez Zeek avec la commande ‘ apt ‘ suivante. Dans cet exemple, vous installerez Zeek LTS.
sudo apt install zeekEntrez ‘ Y ‘ pour confirmer l’installation.

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 ~/.bashrcEnfin, exécutez la commande ‘ zeek ‘ ci-dessous pour vérifier la version de Zeek et les commandes et options de base.
zeek --version
zeek --helpVous verrez une sortie comme suit :

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 aOuvrez la configuration réseau de Zeek ‘ /opt/zeek/etc/networks.cfg ‘ avec l’éditeur ‘ nano ‘.
sudo nano /opt/zeek/etc/networks.cfgEntrez votre sous-réseau de réseau des serveurs cibles comme suit.
192.168.10.0/24 Réseau localEnregistrez 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.cfgCommentez 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=eth0Collez 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=loUne 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
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
Vous pouvez vérifier chaque composant Zeek avec la commande ci-dessous.
zeekctl statusDans 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.

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_hDans cet exemple, nous vous montrerons les valeurs des champs ‘ id.orig_h ‘, ‘ query ‘, et ‘ answers ‘.

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
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.zeekDécommentez la ligne suivante pour activer la sortie du journal au format JSON.
@load policy/tuning/json-logsEnregistrez 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 deployVous pouvez voir la sortie suivante lors du déploiement de 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.logAnalyse du format JSON de Zeek avec jq
Installez le paquet ‘ jq ‘ avec la commande ‘apt’ ci-dessous.
sudo apt install jq -yUne 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
Si vous souhaitez obtenir une sortie compacte, utilisez l’option ‘-c’ comme suit :
jq . -c dns.logEnfin, 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
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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.