Khalil Yahyaoui

Cybastion · 2026 · Étude de casCase study

Étendre la détection d'un SOC à un site distantExtending a SOC's detection to a remote site

Le manager Security Onion et le site à surveiller n'étaient pas sur le même réseau. J'ai déployé un capteur Security Onion sur le site, relié au manager par un tunnel WireGuard chiffré, et alimenté par du port mirroring pour une capture entièrement passive.

The Security Onion manager and the site to monitor weren't on the same network. I deployed a Security Onion sensor on site, connected to the manager through an encrypted WireGuard tunnel, and fed by port mirroring for fully passive capture.

OutilsTools · Security Onion, WireGuard, port mirroring (SPAN) RôleRole · cadré, déployé et documenté seulscoped, deployed and documented on my own

Les détails propres à l'environnement du client (matériel, topologie, configuration) sont volontairement omis.

Environment-specific details (hardware, topology, configuration) are intentionally left out.

Le problèmeThe problem

Le manager Security Onion et le site qu'on voulait surveiller étaient sur deux réseaux séparés. Il fallait donc deux choses :

The Security Onion manager and the site we wanted to monitor were on two separate networks. That meant solving two things:

  • faire communiquer un capteur sur le site avec un manager situé ailleurs, de manière chiffrée ;
  • s'assurer que ce capteur voie vraiment tout le trafic du site, et pas seulement le sien.
  • getting an on-site sensor to talk to a manager located elsewhere, over an encrypted link;
  • making sure that sensor actually sees all of the site's traffic, not just its own.

Je n'avais jamais touché à WireGuard, à OpenBSD ni au port mirroring avant ce projet.

I had never worked with WireGuard, OpenBSD, or port mirroring before this project.

Architecture

CAPTURE  (passive)

  site traffic ──▶ managed switch ──SPAN (TX+RX)──▶ sensor capture NIC (no IP)

MANAGEMENT  (encrypted)

  sensor mgmt NIC ── gateway A ══ WireGuard ══ gateway B ── Security Onion manager

Le capteur a deux interfaces réseau, avec deux rôles bien séparés : une pour écouter le site, l'autre pour parler au manager.

The sensor has two network interfaces with two distinct jobs: one to listen to the site, the other to talk to the manager.

Le tunnel WireGuardThe WireGuard tunnel

La solution : un tunnel WireGuard site-à-site entre deux passerelles, une de chaque côté, authentifié par clés X25519. L'interface de management du capteur passe par la passerelle locale, puis dans le tunnel jusqu'au manager.

The solution: a site-to-site WireGuard tunnel between two gateways, one on each side, authenticated with X25519 keys. The sensor's management interface goes through the local gateway, then through the tunnel to the manager.

C'est par ce tunnel que le capteur remonte ses logs, ses métadonnées Zeek et ses alertes Suricata, et que le manager le pilote. Les deux machines ne sont pas sur le même réseau, mais le tunnel les fait communiquer comme si elles l'étaient, de manière chiffrée.

That tunnel is how the sensor ships its logs, Zeek metadata, and Suricata alerts, and how the manager controls it. The two machines aren't on the same network, but the tunnel lets them talk as if they were, encrypted.

La capture : port mirroringCapture: port mirroring

Pour que le capteur voie tout le trafic du site, j'ai configuré une session de port mirroring (SPAN) sur le switch : tout ce qui passe par le lien montant est dupliqué vers le port du capteur, dans les deux sens (TX et RX). Avec un seul sens, on verrait les requêtes sans les réponses, ce qui est inexploitable.

To let the sensor see all site traffic, I configured a port mirroring (SPAN) session on the switch: everything crossing the uplink is copied to the sensor's port, in both directions (TX and RX). With only one direction you'd see requests without responses, which is useless for analysis.

L'interface de capture n'a ni adresse IP ni route, et c'est voulu : c'est le principe de la surveillance passive. Le capteur voit tout sans être visible sur le réseau qu'il surveille. S'il avait une IP, il deviendrait lui-même une cible.

The capture interface has no IP address and no route, on purpose: that's how passive monitoring works. The sensor sees everything while staying invisible on the network it watches. If it had an IP, it would become a target itself.

VérificationVerification

J'ai d'abord testé la connectivité à travers le tunnel, dans les deux sens. Ensuite, j'ai écrit une checklist de mise en service qui valide chaque segment séparément : lien et session de mirroring actifs, interface de capture sans IP, trafic brut visible avec tcpdump, services du capteur opérationnels, synchronisation avec le manager, et alertes visibles côté manager.

First, I tested connectivity across the tunnel in both directions. Then I wrote a commissioning checklist that validates each segment on its own: link and mirroring session up, capture interface with no IP, raw traffic visible with tcpdump, sensor services running, sync with the manager, and alerts showing up on the manager.

Tout est documenté dans des documents techniques internes, pour que quelqu'un d'autre puisse reprendre le déploiement.

Everything is written up in internal technical documents so someone else can take over the deployment.

Ce que j'en retiensWhat I took from it

C'est le projet le plus lourd de mon stage : trois sujets que je ne connaissais pas (WireGuard, OpenBSD, port mirroring) à faire fonctionner ensemble. Ce qui a marché, c'est de découper le problème et de valider chaque segment isolément avant d'assembler le tout. Le capteur étend maintenant la détection du SOC à un segment réseau qu'on ne voyait pas avant.

This was the heaviest project of my internship: three things I didn't know (WireGuard, OpenBSD, port mirroring) that all had to work together. What worked was breaking the problem down and validating each segment on its own before putting everything together. The sensor now extends the SOC's detection to a network segment we couldn't see before.

← Retour aux projets← Back to all projects