Free tech learning for everyone, from basics to pro

Cyber Security LabsLabsIntermediate

Lab: a home SIEM with Wazuh

In short: Wazuh is a free, open-source security platform that collects logs, applies detection rules and shows alerts in a web dashboard. In this lab you install it on one VM, connect two agents and trigger alerts you can explain, which is the core loop of SOC work.

Aim and what you need

The aim is to build a working SIEM (security information and event management) system and see events flow from endpoints to alerts. Wazuh bundles a manager (rules and agents), an indexer (search database) and a dashboard (web interface).

  • A server VM with Ubuntu Server 24.04, at least 4 vCPUs, 8 GB RAM and 50 GB disk for an all-in-one install. Example address 192.168.56.10.
  • One Ubuntu VM (192.168.56.20) and, if you can, one Windows 10/11 VM (192.168.56.40) on the same isolated lab network.
  • Internet access from the lab during install, through your lab firewall. About 90 minutes.
Home SIEM lab with WazuhWazuh servermanager, indexer, UIUbuntu agentauth and syslogWindows agentevent logsAnalyst browserHTTPS dashboardFirewallsyslog, optionalFile watchintegrity checks
Figure 1. Agents on each endpoint send events to the Wazuh server, which decodes them, applies rules and shows alerts in a web dashboard.

Steps

  1. Take a snapshot of the clean server VM, then run the assisted all-in-one installer. At the end it prints the admin password; store it in your password manager.
  2. Browse to https://192.168.56.10 and accept the self-signed certificate warning for this lab only.
  3. On the Ubuntu VM, add the Wazuh repository and install the agent, pointing it at the manager.
  4. On Windows, open Agents, Deploy new agent in the dashboard. It builds a PowerShell command for you with the manager address; run it as administrator, then start the service.
  5. Add a folder to file integrity monitoring on the Ubuntu agent and restart the agent.
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash ./wazuh-install.sh -a
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import
sudo chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
sudo apt update
sudo WAZUH_MANAGER="192.168.56.10" apt install -y wazuh-agent
sudo systemctl daemon-reload
sudo systemctl enable --now wazuh-agent
sudo nano /var/ossec/etc/ossec.conf
  <syscheck>
    <directories realtime="yes">/opt/labdata</directories>
  </syscheck>
sudo mkdir -p /opt/labdata
sudo systemctl restart wazuh-agent
NET START WazuhSvc
What happens to one eventCollectionagent reads a log lineDecodingfields such as user, IPRulesmatch and give a levelAlertstored in the indexerDashboardsearch, charts, MITRE
Figure 2. Every log line passes through decoding and rule matching before it becomes a searchable alert.

How to verify

In the dashboard, both agents should show as Active. Now create events you can predict. From another VM, try SSH to the Ubuntu agent with a wrong password a few times; within a minute you should see authentication-failure alerts naming the source IP and user, and repeated failures should raise a higher-level brute-force alert. Create and then edit a file in /opt/labdata; file integrity alerts should show it was added and modified, with old and new checksums. On Windows, a few wrong passwords at the lock screen produce logon-failure alerts from the Security event log. Open one alert and read its rule description, level and MITRE ATT&CK technique: being able to explain an alert is the real skill.

Troubleshooting and clean-up

  • Installer stops early: usually too little RAM or disk. Check the requirements and the log in /var/log/wazuh-install.log.
  • Agent never connects: the agent talks to the manager on TCP 1514 and enrols on TCP 1515. Check the lab firewall and /var/ossec/logs/ossec.log on the agent.
  • Dashboard slow or blank: the indexer needs memory. Give the VM more RAM or close other VMs.
  • Too many alerts: that is normal. Tuning noisy rules is a lab in itself and a great talking point in interviews.

To pause the lab, shut the VMs down cleanly; the indexer dislikes hard power-offs. To remove it, delete the VMs or revert to the snapshot. Do not expose the dashboard to the internet. Write up two alerts you triaged, with screenshots, for your home SOC project.

Practice

Name the three central components of Wazuh.
The manager (server with rules and agent handling), the indexer (stores and searches alerts) and the dashboard (web interface).
Which ports must be open from agents to the manager?
TCP 1514 for event data and TCP 1515 for enrolment.
What does file integrity monitoring detect?
Files being added, changed or deleted in watched folders, with checksums and, if enabled, who made the change.

Key takeaways

  • Wazuh is a free SIEM with a manager, an indexer and a dashboard.
  • An all-in-one lab install needs about 4 vCPUs and 8 GB RAM.
  • Agents send events on TCP 1514; enrolment uses TCP 1515.
  • Create predictable events, such as failed logins, and explain each alert.
  • Keep the dashboard inside the lab and shut VMs down cleanly.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.