nano SIEM
Getting Started

Build a Lab on Ludus

Stand up a complete nano SIEM lab — Active Directory, Windows Sysmon/Event-Log collection, a Vector pipeline, and the open-core stack — on a Ludus cyber range.

Build a Lab on Ludus

Want a realistic, throwaway SIEM lab — a Windows AD domain generating Sysmon and Event Log telemetry, flowing through Vector into a full nano stack? The nano-rs/nano-ludus repo is a set of Ansible roles + a Ludus blueprint that builds exactly that, end-to-end, from the public open-core images.

What you get

DC01 (Win2022) ┐
SRV01 (Win2022)┤─ Sysmon + Event Logs ─► Vector agent ─► aggregator ─► SIEM ─► ClickHouse
WS01 (Win11)   ┘                          (:9000)         (.10.11)     (.10.10)
  • An lab.local Active Directory domain (1 DC, 1 member server, 1 workstation)
  • Sysmon (SwiftOnSecurity config) + Windows Event Logs collected by Vector agents
  • A Vector aggregator + optional Conduit MITM proxy on a proxy box
  • The full nano stack (ClickHouse, PostgreSQL, API/search/jobs, web, nginx) on the SIEM box

Quick start

Build the templates. The blueprint needs debian-12-x64-server-template, win2022-server-x64-template, and win11-22h2-x64-enterprise-template:

ludus templates list
ludus templates build -n win11-22h2-x64-enterprise-template   # repeat per missing template

Add the roles (clone the repo first):

git clone https://github.com/nano-rs/nano-ludus && cd nano-ludus
ludus ansible role add geerlingguy.docker
ludus ansible role add -d roles/nano_stack
ludus ansible role add -d roles/nano_sysmon
ludus ansible role add -d roles/nano_vector_aggregator
ludus ansible role add -d roles/nano_vector_agent
ludus ansible role add -d roles/nano_conduit_proxy

Deploy:

ludus range config set -f blueprint.yml
ludus range deploy
ludus range logs -f

First boot provisions the VMs, builds the AD domain, pulls images, and runs first-boot ClickHouse migrations. A clean run ends with every host at failed=0.

Access over the Ludus WireGuard VPN. The whole app is served through nginx on port 80 — open http://10.<octet>.10.10 and you'll be redirected to /setup to create the admin account. (<octet> is your range's second octet.)

Windows events flow in immediately as raw message + source_type (windows_event / windows_sysmon). Deploy the matching parsers from the in-app Parser Repository to extract structured fields.

Troubleshooting

A few Windows-side gotchas are worth knowing — the roles handle most automatically. The big one:

The repo's README has the full list — the Windows temp-strip workaround, lab-DNS pull throttling, HTTP-vs-HTTPS notes, and more.

On this page

On this page