< All Topics

Blocks-lab: Introduction

This write-up summarizes the purpose of the lab and the scope of the implementation.

Google Gemini

Problem definition

My experience in the field is manual deployment of Wazuh, and these experiences show that getting such a system up and running requires a lot of time and resources. Starting with data collection: installing servers and agents and then configuring them is the initial challenge (a quick look at Wazuh’s documentation reveals its complexity), followed by data processing and the creation of visualizations, tables, diagrams, and reports.

Approach

Although SIEM systems can vary depending on the user’s needs, a SIEM system built around the following evaluation criteria and supported by clear, structured visualizations already provides a solid foundation — whether for longer-term use or for more customization:

CategoryMetrics/Visualizations
File IntegrityRecent file changes, change trends
Policy ChangesImportant config changes
AuthenticationLogon/logoff attempts, failed logins, geolocation
User MonitoringNew/deleted users, privilege changes
Threat DetectionDetected malware/threats, severity charts

What is the solution?

Make installation, configuration, and presentation automatable. The goal is to start using the SIEM system as soon as possible. I created this lab with the aim of minimizing the time and effort required to build the infrastructure.

The lab’s two technological pillars are Terraform and Ansible. This is represented in the figure above by the automation blocks: infrastructure on the left (built with Terraform) and service on the right (built with Ansible). Both automation blocks must be highly configurable. Without aiming for completeness: the network, security groups, Linux versions, IP addresses, and the directories to be scanned should all be configurable — even before starting the automatic deployment.

Infrastructure

The components and connections of the lab’s infrastructure — whether cloud or on‑prem — are described by Terraform code. Its other task is to prepare the server for using Ansible (see jumpstart.sh).

Service

Environment, Config, Assets: these three words define the server-side framework of the solution, and they also make up the larger part of the implementation. The Ansible role responsible for server deployment has three main tasks:

  1. installing the software environment and dependencies (environment),
  2. configuring the SIEM system (config),
  3. installing the reports and visualizations (assets).

An Ansible role is also prepared for configuring the clients, which, in the case of Wazuh, includes only installing the agents and their basic configuration. Monitoring fine-tuning is performed in the server-side configuration.

Table of Contents