Pipeline de journaux de pare-feu avec Cursor
Tu as fait tout ce que disait la documentation. Tu as activé la journalisation distante sur le boîtier pfSense, tu l’as dirigée vers ta machine Windows et tu as ouvert le port UDP 514. Rien n’est arrivé. Depuis plus de dix ans, le forum Netgate accumule des discussions sur ce silence précis — des journaux générés mais jamais envoyés, syslogd discrètement arrêté après un redémarrage. Quelque part entre le pare-feu et ton disque, l’événement a disparu — et rien dans la chaîne ne t’indique où.
La solution habituelle est un SIEM, qui remplace un problème par un autre, plus gros : tu dois désormais administrer Elasticsearch. Ce guide emprunte une autre voie. Tu ouvres Cursor, tu réponds à cinq questions et tu approuves des commandes pendant qu’un agent d’IA construit le pipeline de journaux du pare-feu. À la fin, tu auras sur disque un événement de pare-feu vérifié, un historique consultable dans une base de données locale et un analyste IA qui lit tes journaux — mais qui ne peut pas toucher à ton pare-feu.
Empreinte totale : un service Windows, un dossier et un fichier SQLite.
Le pipeline de journaux du pare-feu que tu vas construire
┌──────────┐ syslog ┌────────┐ ┌────────────┐ ┌───────────┐
│ Firewall │──UDP 514─>│ NXLog │──JSON─>│ C:\logdata │──5min─>│ fwlogs.db │
│ (any) │ │ service│ spool │ \spool\ │ ingest │ (SQLite) │
└──────────┘ └────────┘ └────────────┘ └─────┬─────┘
│ SELECT only
┌─────v─────┐
│ Cursor │
│ agent │
└───────────┘
pfSense sert d’exemple tout au long du guide, mais n’importe quel pare-feu capable d’envoyer des messages syslog convient — OPNsense, UniFi, SonicWall ou un commutateur administrable. NXLog Community Edition reçoit les messages sur le port 514 et écrit des fichiers tampons JSON. Une tâche planifiée les charge dans SQLite. L’agent interroge la base en lecture seule et rend compte de ce qu’il trouve.
Attends — Cursor n’est-il pas un outil de programmation ?
C’est ce qu’en dit le marketing. Sous le capot, Cursor est un agent qui lit des fichiers, écrit des fichiers et exécute des commandes de terminal avec ton approbation. Le monde d’un administrateur système est fait de fichiers : configurations, journaux, scripts, bases de données. Tu n’écriras pas une seule ligne de code — tu utiliseras deux éléments de commande, la zone de discussion et le bouton d’approbation. L’agent écrit la configuration NXLog, le schéma SQL et le script d’ingestion ; tu les lis et tu cliques sur oui.
Prérequis
| Exigence | Remarques |
|---|---|
| Windows 10/11 ou Server 2019+, x64 | NXLog CE n’a pas de version Windows ARM64 |
| Adresse IP statique sur la machine de collecte | Une réservation DHCP convient |
| La machine reste allumée | Win11 : désactive la mise en veille, sinon les journaux UDP disparaissent sans avertissement |
| Droits d’administrateur | L’installation du service nécessite une élévation de privilèges |
| N’importe quel pare-feu capable d’envoyer des messages syslog | Tu accéderas une fois à son panneau d’administration |
| Cursor installé | L’offre gratuite suffit |
Étape 1 : cinq réponses avant toute exécution
Crée un dossier — C:\fw-pipeline — et ouvre-le dans Cursor. Crée un fichier, answers.yaml :
firewall: "pfSense CE 2.7.2" # vendor + version (or your model, e.g. Netgate 2100) firewall_ip: "192.168.1.1" # address it sends syslog from collector_ip: "192.168.1.20" # this machine's static IP transport: "udp" # udp | tcp — pfSense native syslog is UDP-only data_stays_local: true # log data never leaves this machine
Tout ce que l’agent génère découle de ces cinq lignes. Le fabricant et la version déterminent les clics précis qu’il t’indique. L’adresse IP du pare-feu devient la clé de l’appareil dans la base de données. data_stays_local: true signifie que l’analyse s’effectue sur la base de données locale — les journaux bruts ne sont jamais collés en masse dans une invite.
Les détails omis dans cet article se trouvent dans deux fichiers complémentaires — la référence de déploiement et la FAQ de dépannage. L’agent les télécharge à l’étape suivante ; les liens sont là si tu veux d’abord y jeter un coup d’oeil.
Étape 2 : des garde-fous avant l’agent
Cinquante-trois pour cent des administrateurs système ne laisseraient pas l’IA toucher à la production sans supervision. C’est un bon réflexe. Ne place pas les règles dans l’invite — place-les là où l’agent ne peut pas les ignorer. Crée .cursor/rules/pipeline.md :
- Show every terminal command and wait for approval. No auto-run. - Query fwlogs.db with the read-only "analyst" account only. - Never connect to the firewall. Its config is the human's job. - If any value in answers.yaml is blank, stop and ask. Never guess. - Append every database query you run to agent-audit.log, with timestamp.
Cursor charge ces règles dans chaque session ouverte dans ce dossier. L’agent propose ; tu approuves. C’est le même modèle de confiance que tu appliquerais à un nouvel administrateur débutant — sauf que celui-ci ne s’ennuie jamais et lit chaque ligne de journal.
Étape 3 : laisse l’agent construire le collecteur
Voici maintenant la première véritable invite — colle-la dans la discussion :
Download both companion files from https://gist.github.com/matbanik/18dadee60389913b982493c8cbbe99ad into this folder and read
them, then read answers.yaml. Install NXLog Community Edition as a service,
configure it to receive syslog on the chosen transport and write JSON spool
files to C:\logdata\spool with filenames like fw-{timestamp}.json, and open
the Windows Firewall port — bound to the Private and Domain profiles, not
Public. Show me each command before running it.
Tu approuveras l’installation d’un MSI, un fichier nxlog.conf généré et une commande New-NetFirewallRule. Vérifie deux détails dans la configuration générée : parse_syslog() sur l’entrée, afin que les formats RFC 3164 et RFC 5424 soient tous deux correctement enregistrés, et une valeur SockBufSize plus élevée, car le tampon UDP par défaut de Windows est minuscule et perd les rafales de messages.
Vérifie :
Get-Service nxlog # Status: Running
Étape 4 : dirige le pare-feu vers le collecteur
La seule étape manuelle. L’agent lit answers.yaml et te donne les clics précis pour ta plateforme, mais c’est toi qui les effectues — le pare-feu reste hors de sa portée. Sur pfSense : Status → System Logs → Settings → Remote Logging — active la fonction, saisis l’adresse IP du collecteur et le port 514, puis coche les catégories souhaitées. Pour les autres pare-feu, la recette est la même : destination = adresse IP du collecteur, port 514, RFC 5424 si cette option est proposée.
Une règle que tout le monde oublie : si le collecteur se trouve sur un autre segment, le pare-feu a besoin d’une règle de sortie l’autorisant à atteindre le port 514. Un pare-feu ne journalisera pas ses propres messages syslog bloqués.
Étape 5 : le premier événement — ou l’endroit où il a disparu
Surveille le dossier tampon. Si un fichier fw-*.json apparaît et grossit, le plus difficile est fait. Si rien n’apparaît — c’est ici que tous les autres guides haussent les épaules. Demande à l’agent de parcourir l’échelle de dépannage :
event created on the firewall? - no -> log category or severity filter │ yes packet left the firewall? - no -> syslogd died after reboot, egress rule │ yes packet reached Windows? - no -> routing or ACL on the path │ yes NXLog listening on 514? - no -> service stopped, port taken │ yes Windows Firewall let it through? - no -> rule bound to the wrong profile │ yes line in the spool file? - no -> EDR blocked NXLog, parse error
L’agent teste lui-même la plupart des échelons — il envoie un message syslog synthétique, vérifie l’écouteur et lit le propre journal de NXLog — puis il t’indique quel saut a perdu ton événement. Sous Windows 11, le coupable habituel est un réseau Wi-Fi classé Public alors que la règle est liée au profil Private.
Étape 6 : rends le pipeline durable
Une dernière invite :
Create fwlogs.db with an events table keyed by device IP and receive time, an ingest path and a read-only analyst access pattern, and a scheduled task that loads closed spool files every five minutes, checks the sqlite3 exit code before archiving each file, and prunes anything older than 90 days.
L’utilisation de fichiers tampons avant l’ingestion n’est pas un compromis — NXLog Community Edition ne peut de toute façon pas écrire directement dans une base de données sous Windows, et les fichiers tampons servent aussi de preuves brutes rejouables. La vérification du code de sortie est importante : n’archive un fichier qu’après que SQLite a confirmé son chargement, sinon un verrouillage temporaire peut faire disparaître silencieusement une heure de journaux.
Étape 7 : interroge tes journaux
La récompense, volontairement placée à la fin — l’analyse ne vaut que ce que vaut le pipeline sur lequel elle repose. Essaie :
Using the analyst account, summarize the last 24 hours: repeated auth failures, deny spikes, source IPs never seen before, config changes outside business hours. For each finding, list the supporting event IDs and one plausible benign explanation.
Cette dernière exigence fait réellement la différence. Un agent obligé de contester ses propres constatations te signale la tentative d’attaque par force brute sur le VPN, pas ton téléviseur qui cherche un micrologiciel à 3 heures du matin. Chaque constatation est accompagnée de preuves que tu peux vérifier — car le compte de l’agent ne peut rien faire d’autre que lire.
Les pièges qui te feront perdre du temps
La règle du pare-feu est liée au profil Public. Sous Windows 11, le Wi-Fi utilise par défaut le profil Public et bloque silencieusement le trafic entrant sur le port 514. Passe le réseau en Private ou lie la règle à tous les profils que tu utilises.
Le collecteur s’est mis en veille. UDP ne réessaie pas — une machine Win11 en veille perd tous les événements jusqu’à son réveil. powercfg /change standby-timeout-ac 0.
Les journaux arrivent, mais pas ceux dont tu as besoin. « Syslog fonctionne » et « les événements de sécurité sont transférés » sont deux options distinctes sur la plupart des pare-feu. Une catégorie manquante possède son propre filtre.
L’EDR a mis NXLog en quarantaine. Un nouveau binaire qui ouvre un port d’écoute ressemble à un logiciel malveillant. Ajoute une exclusion de chemin avant l’installation, pas après.
L’agent veut réparer le pare-feu à ta place. N’étends pas sa portée parce que l’étape 5 s’est bien passée. La lecture seule avec des propositions constitue l’état permanent sûr.
Ce que tu as maintenant
Ton pare-feu a toujours communiqué. Tu en as maintenant la preuve sur disque, un historique que tu peux interroger et un analyste disponible qui lit tout et ne touche à rien. La prochaine fois que quelque chose semblera anormal sur le réseau, tu ne liras pas des discussions de forum — tu interrogeras tes propres journaux.
Ressources
- Journalisation distante avec Syslog — documentation pfSense
- Syslog génère des fichiers journaux, mais ne les envoie pas au serveur distant — forum Netgate
- syslogd peut s’arrêter lorsque le serveur de journaux refuse les connexions — bug pfSense #16362
- Référence de NXLog Community Edition
- Documentation de Cursor
- Le protocole Syslog (RFC 5424)
- Le protocole syslog BSD (RFC 3164)
- Présentation du Pare-feu Windows
- Avec quoi les gens collectent-ils les messages syslog ? — r/networking
- 53 % des administrateurs système ne feraient pas confiance à l’IA seule avec tes serveurs — Kiteworks
- Téléchargements de SQLite
The Focalia Letter
Une idée à utiliser. Environ sept minutes. Deux fois par mois.
À lire ensuite
Les garde-fous pour les agents de codage IA surpassent les modèles plus intelligents
Ton agent n'oublie pas parce qu'il est stupide. Il oublie parce que tu ne lui as donné aucun endroit où déposer les choses. Cinq garde-fous pour les agents de codage IA qui ont résolu le problème.
Lire la suite →Reset Windows Update : Le Guide Définitif de RWU pour les MSP
L'outil de réinitialisation Windows Update le plus téléchargé a été archivé. RWU reprend le flambeau — avec des diagnostics prêts pour l'IA, des codes de sortie compatibles RMM et des paramètres par défaut sûrs qui ne détruiront pas vos politiques Intune.
Lire la suite →Évaluer l'IA comme outil de productivité
Quatre questions que les développeurs ne posent pas sur les outils de codage IA — et pourquoi les réponses comptent plus que le battage médiatique.
Lire la suite →