Pipeline de registros de firewall con Cursor
Hiciste todo lo que indicaba la documentación. Activaste el registro remoto en el equipo pfSense, lo dirigiste a tu máquina Windows y abriste el puerto UDP 514. No llegó nada. El foro de Netgate lleva más de una década acumulando hilos sobre este silencio exacto: registros generados pero nunca enviados, syslogd inactivo sin avisar después de un reinicio. En algún punto entre el firewall y tu disco, el evento desapareció, y nada en la cadena te dirá dónde.
La solución estándar es un SIEM, que cambia un problema por otro mayor: ahora Elasticsearch es responsabilidad tuya. Esta guía toma un camino diferente. Abres Cursor, respondes cinco preguntas y apruebas comandos mientras un agente de IA crea el pipeline de registros del firewall. Al terminar, tendrás en el disco un evento de firewall verificado, un historial que puedes consultar en una base de datos local y un analista de IA que lee tus registros, pero no puede tocar tu firewall.
Huella total: un servicio de Windows, una carpeta y un archivo SQLite.
El pipeline de registros de firewall que vas a crear
┌──────────┐ syslog ┌────────┐ ┌────────────┐ ┌───────────┐
│ Firewall │──UDP 514─>│ NXLog │──JSON─>│ C:\logdata │──5min─>│ fwlogs.db │
│ (any) │ │ service│ spool │ \spool\ │ ingest │ (SQLite) │
└──────────┘ └────────┘ └────────────┘ └─────┬─────┘
│ SELECT only
┌─────v─────┐
│ Cursor │
│ agent │
└───────────┘
pfSense es el ejemplo utilizado en toda la guía, pero sirve cualquier firewall compatible con syslog: OPNsense, UniFi, SonicWall o un switch gestionado. NXLog Community Edition recibe en el puerto 514 y escribe archivos JSON de spool. Una tarea programada los carga en SQLite. El agente consulta la base de datos en modo de solo lectura e informa de lo que encuentra.
Espera, ¿Cursor no es una herramienta de programación?
Eso es el marketing. Por debajo, Cursor es un agente que lee archivos, escribe archivos y ejecuta comandos de terminal con tu aprobación. El mundo de un administrador de sistemas está hecho de archivos: configuraciones, registros, scripts y bases de datos. No escribirás ni una línea de código; usarás dos controles, el cuadro de chat y el botón de aprobación. El agente escribe la configuración de NXLog, el esquema SQL y el script de ingesta; tú los lees y haces clic en sí.
Requisitos previos
| Requisito | Notas |
|---|---|
| Windows 10/11 o Server 2019+, x64 | NXLog CE no tiene una compilación para Windows ARM64 |
| IP estática en la máquina colectora | Una reserva DHCP también sirve |
| La máquina permanece encendida | Win11: desactiva la suspensión o los registros UDP desaparecerán sin avisar |
| Derechos de administrador | La instalación del servicio necesita elevación de privilegios |
| Cualquier firewall que pueda enviar syslog | Tendrás que entrar una vez en su panel de administración |
| Cursor instalado | El plan gratuito es suficiente |
Paso 1: cinco respuestas antes de ejecutar nada
Crea una carpeta, C:\fw-pipeline, y ábrela en Cursor. Crea un archivo, 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
Todo lo que genera el agente deriva de estas cinco líneas. El fabricante y la versión determinan los pasos exactos que te indica. La IP del firewall se convierte en la clave del dispositivo en la base de datos. data_stays_local: true significa que el análisis se ejecuta sobre la base de datos local: los registros sin procesar nunca se pegan en bloque en un prompt.
Los detalles que omite este artículo están en dos archivos complementarios: la referencia de despliegue y las preguntas frecuentes sobre solución de problemas. El agente los descarga en el paso siguiente; puedes abrir los enlaces antes si quieres echarles un vistazo.
Paso 2: barreras de seguridad antes del agente
El cincuenta y tres por ciento de los administradores de sistemas no permitiría que una IA tocara producción sin supervisión. Es el instinto correcto. No pongas las reglas en el prompt: ponlas donde el agente no pueda ignorarlas. Crea .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 carga estas reglas en cada sesión de esta carpeta. El agente propone; tú apruebas. Es el mismo modelo de confianza que aplicarías a un administrador junior recién llegado, salvo que este nunca se aburre y lee cada línea de registro.
Paso 3: deja que el agente cree el colector
Ahora viene el primer prompt de verdad; pégalo en el chat:
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.
Aprobarás una instalación MSI, un archivo nxlog.conf generado y una regla New-NetFirewallRule. Comprueba dos detalles de la configuración generada: parse_syslog() en la entrada, para que tanto RFC 3164 como RFC 5424 se reciban correctamente, y un SockBufSize aumentado, porque el búfer UDP predeterminado de Windows es diminuto y pierde las ráfagas.
Verifica:
Get-Service nxlog # Status: Running
Paso 4: dirige el firewall hacia el colector
El único paso manual. El agente lee answers.yaml y te indica los pasos exactos para tu plataforma, pero eres tú quien los ejecuta: el firewall permanece fuera de su alcance. En pfSense: Status → System Logs → Settings → Remote Logging; activa la opción, introduce la IP del colector y el puerto 514, y marca las categorías que quieras. En otros firewalls se sigue la misma receta: destino = IP del colector, puerto 514, RFC 5424 si está disponible.
Una regla que todo el mundo olvida: si el colector está en otro segmento, el firewall necesita una regla de salida que le permita llegar al puerto 514. Un firewall no registrará su propio syslog descartado.
Paso 5: el primer evento o el lugar donde murió
Vigila la carpeta de spool. Si aparece un archivo fw-*.json y aumenta de tamaño, la parte difícil ha terminado. Si no aparece nada, aquí es donde todas las demás guías se encogen de hombros. Pide al agente que recorra la escalera:
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
El agente prueba por sí mismo la mayoría de los peldaños: envía un paquete syslog sintético, comprueba el proceso que escucha y lee el propio registro de NXLog; después te dice en qué salto se perdió tu evento. El culpable habitual en Windows 11 es una conexión Wi-Fi configurada como Public mientras la regla está asociada a Private.
Paso 6: hazlo duradero
Un prompt más:
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.
Usar spool antes de la ingesta no es una concesión: NXLog Community Edition no puede escribir directamente en una base de datos en Windows, y los archivos de spool sirven además como evidencia sin procesar que puedes volver a reproducir. La comprobación del código de salida importa: archiva un archivo solo después de que SQLite confirme la carga, o un bloqueo transitorio se tragará una hora de registros sin avisar.
Paso 7: haz preguntas a tus registros
La recompensa, deliberadamente al final: el análisis solo es tan bueno como el pipeline que lo sustenta. Prueba esto:
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.
Esa última cláusula hace un trabajo de verdad. Un agente obligado a argumentar contra sus propios hallazgos te avisa del intento de fuerza bruta contra la VPN, no de que tu televisor esté buscando firmware a las 3 a. m. Cada hallazgo llega con evidencia que puedes verificar, porque la cuenta del agente no puede hacer nada salvo leer.
Errores que te harán perder el tiempo
La regla del firewall está asociada al perfil Public. Windows 11 en Wi-Fi usa Public de forma predeterminada y descarta sin avisar el tráfico entrante del puerto 514. Configura la red como Private o asocia la regla a todos los perfiles que uses.
El colector entró en suspensión. UDP no reintenta: un equipo con Win11 suspendido pierde todos los eventos hasta que se reactiva. powercfg /change standby-timeout-ac 0.
Llegan registros, pero no los que necesitas. “Syslog funciona” y “se reenvían los eventos de seguridad” son opciones distintas en la mayoría de los firewalls. Una categoría ausente tiene su propio filtro.
El EDR puso NXLog en cuarentena. Un binario nuevo que abre un puerto a la escucha parece malware. Añade una exclusión de ruta antes de instalarlo, no después.
El agente quiere arreglar el firewall por ti. No amplíes su alcance solo porque el paso 5 salió bien. El acceso de solo lectura con propuestas es el estado permanente seguro.
Dónde te deja esto
Tu firewall siempre estuvo hablando. Ahora hay pruebas en el disco, un historial que puedes consultar y un analista de guardia que lo lee todo y no toca nada. La próxima vez que algo parezca ir mal en la red, no estarás leyendo hilos de foros: se lo preguntarás a tus propios registros.
Recursos
- Registro remoto con Syslog: documentación de pfSense
- Syslog genera archivos de registro, pero no los envía al servidor remoto: foro de Netgate
- syslogd puede terminar cuando el servidor de registros rechaza conexiones: error #16362 de pfSense
- Referencia de NXLog Community Edition
- Documentación de Cursor
- El protocolo Syslog (RFC 5424)
- El protocolo syslog de BSD (RFC 3164)
- Descripción general de Windows Firewall
- ¿Con qué recopila la gente syslog?: r/networking
- El 53 % de los administradores de sistemas no confiará sus servidores únicamente a la IA: Kiteworks
- Descargas de SQLite
The Focalia Letter
Una idea que puedes usar. Unos siete minutos. Dos veces al mes.
Leer a continuación
Las salvaguardas para agentes de programación con inteligencia artificial superan a los modelos más inteligentes
Tu agente no olvida porque sea tonto. Olvida porque no le diste ningún lugar donde dejar las cosas. Cinco salvaguardas para agentes de programación con inteligencia artificial que lo solucionaron.
Leer más →Reset Windows Update: La Guía Definitiva de RWU para MSPs
La herramienta más descargada para resetear Windows Update fue archivada. RWU retoma donde la dejaron — con diagnósticos listos para IA, códigos de salida compatibles con RMM y valores predeterminados seguros que no destruirán tus políticas de Intune.
Leer más →Evaluar la IA como herramienta de productividad
Cuatro preguntas que los desarrolladores no están haciendo sobre las herramientas de codificación con IA — y por qué las respuestas importan más que el hype.
Leer más →