Wazuh Enterprise Guide: Architecture, Deployment, Hardening, and Operations
Prerequisites
- Administrare Linux de bază
- Noțiuni de rețelistică și securitate endpoint
Steps
Wazuh is an open-source security platform for threat detection, compliance monitoring, and endpoint visibility across hybrid environments. This guide explains enterprise architecture, implementation, hardening, and operational troubleshooting.
Overview — What Wazuh is, core purpose, and why enterprises use it
Wazuh is an open-source security platform that combines SIEM-like log analytics, endpoint detection and response, file integrity monitoring, vulnerability detection, and compliance reporting. Enterprises use it to centralize telemetry from servers, endpoints, containers, and cloud workloads without locking into a single vendor.
Its core value is correlation: agents collect security-relevant events, the manager applies rules and decoders, and alerts are forwarded to storage and visualization layers. For regulated environments, Wazuh is often used to support CIS, PCI DSS, HIPAA, and ISO 27001 controls.
Architecture — Core components, deployment models, data flow
A typical enterprise deployment includes the wazuh-agent, wazuh-manager, wazuh-indexer, and wazuh-dashboard. Agents send events over encrypted channels to the manager, which decodes and correlates them before writing alerts to the indexer for search and dashboards.
Deployment models include single-node lab setups, distributed manager/indexer clusters, and hybrid designs with remote agents across data centers and cloud VPCs. For resilience, separate the manager from the indexer and place both behind strict network segmentation.
Data flow is: endpoint event -> agent -> manager rules/decoders -> alerts -> indexer -> dashboard. This allows enterprises to retain raw logs on source systems while centralizing security detections.
Implementation Guide — Step-by-step setup with exact CLI commands and config files
- Install the Wazuh repository and manager on Ubuntu 22.04:
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash ./wazuh-install.sh -a
- Enroll an agent on Linux:
curl -sO https://packages.wazuh.com/4.x/wazuh-agent-4.9.0.deb
sudo WAZUH_MANAGER='10.0.0.10' dpkg -i ./wazuh-agent-4.9.0.deb
sudo systemctl enable --now wazuh-agent
- Verify the manager listens on the expected ports:
sudo ss -lntup | grep -E '1514|1515|55000'
- Harden the agent configuration in
/var/ossec/etc/ossec.conf:
<client>
<server>
<address>10.0.0.10</address>
<port>1514</port>
<protocol>tcp</protocol>
</server>
</client>
- Reload services:
sudo systemctl restart wazuh-manager wazuh-agent
Code Examples — 3 practical examples in fenced code blocks
# /var/ossec/etc/ossec.conf snippet for Linux audit and FIM
<syscheck>
<frequency>43200</frequency>
<directories check_all="yes" realtime="yes">/etc,/usr/bin,/usr/sbin</directories>
</syscheck>
# Register an agent with the manager API token flow
TOKEN=$(curl -sku wazuh:wazuh -X POST https://10.0.0.10:55000/security/user/authenticate?raw=true)
curl -k -H "Authorization: Bearer $TOKEN" -X POST https://10.0.0.10:55000/agents -d '{"name":"web01","ip":"any"}'
import requests
r = requests.get('https://10.0.0.10:55000/agents?pretty=true', auth=('wazuh','wazuh'), verify=False)
print(r.json())
Security Hardening — Best practices, encryption, access control
Use TLS for agent-to-manager traffic and restrict ports 1514/tcp, 1515/tcp, and 55000/tcp to trusted networks only. Rotate API credentials, disable default passwords, and integrate dashboard authentication with SSO or LDAP where possible.
Run the manager and indexer on dedicated hosts or VMs with minimal packages, apply OS patching, and back up /var/ossec/etc/ and indexer snapshots. Enable audit logging, least-privilege RBAC, and separate read-only analysts from administrators.
Comparison — Markdown table: Wazuh vs 2 real named competitors on pricing, deployment, scalability, security
| Product | Pricing | Deployment | Scalability | Security |
|---|---|---|---|---|
| Wazuh | Open source; support available commercially | Self-managed, on-prem, cloud, hybrid | Good for mid-to-large estates with proper tuning | Strong endpoint controls, FIM, vuln detection, compliance |
| Microsoft Sentinel | Consumption-based Azure pricing | Cloud-native in Azure | Excellent at hyperscale in Azure | Strong identity integration and cloud-native controls |
| Splunk Enterprise Security | Premium enterprise licensing | On-prem, hybrid, cloud options | Excellent, but cost and tuning are significant | Mature correlation and detection ecosystem |
Troubleshooting — 3 common errors with actual log samples and concise fixes
- Enrollment failure:
ERROR: Unable to connect to enrollment service at 10.0.0.10:1515
Fix: confirm firewall rules, manager service status, and that authd is enabled.
- TLS mismatch:
ERROR: SSL error: certificate verify failed
Fix: verify CA chain, regenerate agent certs, and ensure system time is correct.
- Decoder/rule load issue:
ERROR: Invalid XML in /var/ossec/etc/rules/local_rules.xml
Fix: validate XML syntax and restart wazuh-manager after changes.
Best Practices — Do's and don'ts with concrete examples
- Do place the indexer on fast SSD storage; don’t run it on shared slow disks.
- Do scope agents by environment and business unit; don’t use one flat policy for all endpoints.
- Do test custom rules in a staging manager before production rollout.
- Do forward alerts to a ticketing or SOAR platform for response automation.
- Don’t expose the API publicly; keep it behind VPN, bastion, or private subnets.
- Don’t ignore retention sizing; plan for daily ingest growth and index lifecycle management.
Have a project in mind?
Get an instant AI price estimate for it, or talk directly to our team.
One email a month on what we learn building with AI