1. Introduction
Wazuh SIEM is rapidly becoming a cornerstone in modern cybersecurity operations, offering organizations a robust, open-source platform to monitor, detect, and respond to threats across their IT infrastructure. In this comprehensive tutorial, you'll learn how to deploy Wazuh SIEM 2025 and effectively monitor hosts—from initial setup to advanced integrations and alerting. Whether you're a security analyst, IT administrator, or a cybersecurity enthusiast, this guide will walk you through every step, ensuring your environment is both secure and compliant.
2. What is Wazuh SIEM?
Wazuh SIEM is an open-source Security Information and Event Management (SIEM) solution designed to provide comprehensive visibility into your organization's security posture. It combines log analysis, intrusion detection, file integrity monitoring, vulnerability detection, and compliance reporting in a single unified platform. Wazuh leverages the powerful capabilities of the Elastic Stack for data indexing and visualization, enabling real-time threat detection and response.
For more on SIEM fundamentals, see the CISA SIEM resource page. If you are interested in step-by-step guidance for deploying Wazuh in a modern environment, check out the Deploy Wazuh SIEM 2025: Monitor Hosts guide.
3. Prerequisites
Before you begin deploying Wazuh SIEM 2025, ensure you have:
- Basic knowledge of Linux and Windows administration
- Root or administrative privileges on your target systems
- Network access between the Wazuh server and the hosts to be monitored
- Access to the internet for downloading packages and updates
- Familiarity with security best practices and compliance requirements
4. Preparing the Environment
4.1 System Requirements
Proper resource allocation is critical for optimal Wazuh SIEM performance. The following are recommended minimum requirements for a small to medium deployment:
- Wazuh Server: 4 CPU cores, 8 GB RAM, 100 GB disk space
- Wazuh Dashboard: 2 CPU cores, 4 GB RAM, 50 GB disk space
- Wazuh Agent: 1 CPU core, 1 GB RAM, 10 GB disk space (per host)
For larger environments, refer to the Wazuh hardware sizing guide.
4.2 Network Considerations
Network planning is essential for secure and efficient communication between Wazuh components:
- Ensure TCP ports 1514 (UDP/TCP, agent-server communication) and 55000 (API) are open
- Restrict access to the Wazuh Dashboard (default: 5601) to trusted IPs
- Consider network segmentation for sensitive environments
- Implement VPN or IPsec tunnels for remote agents
For network security guidance, consult the CIS Controls: Network Monitoring and Defense. For more comprehensive comparison of monitoring tools, see Network Monitoring Tools 2025: Top 10 Compared.
4.3 Security Best Practices
To maximize the security of your Wazuh SIEM deployment:
- Use strong, unique passwords for all Wazuh components
- Enable TLS/SSL encryption for agent-server and dashboard communications
- Regularly update Wazuh and underlying OS packages
- Limit administrative access using role-based access control (RBAC)
- Monitor and audit Wazuh logs for suspicious activity
For further reading, see SANS Institute: SIEM Best Practices. You may also want to review Secure Coding Practices 2025: Top 10 Tips to enhance your security posture during deployment.
5. Installing Wazuh
5.1 Installing the Wazuh Server
The Wazuh Server is the core component responsible for collecting, analyzing, and storing security data. Follow these steps to install on a supported Linux distribution (e.g., Ubuntu 22.04 LTS):
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash ./wazuh-install.sh -a
This script automates the installation of the Wazuh server, dashboard, and Elastic Stack components. For manual installation or advanced options, refer to the official Wazuh installation guide.
5.2 Installing the Wazuh Dashboard
The Wazuh Dashboard provides a web-based interface for visualization, alert management, and configuration. If not installed via the script above, you can install it separately:
curl -sO https://packages.wazuh.com/4.x/wazuh-dashboard-install.sh
sudo bash ./wazuh-dashboard-install.sh
After installation, access the dashboard at https://your-server-ip:5601. Secure the dashboard using HTTPS and restrict access to authorized users.
5.3 Installing the Wazuh Agent
The Wazuh Agent must be installed on every host you wish to monitor. For Linux:
curl -sO https://packages.wazuh.com/4.x/wazuh-agent-install.sh
sudo bash ./wazuh-agent-install.sh -a
For Windows, download the agent from the Wazuh Windows MSI and follow the installation wizard. During setup, specify the Wazuh server IP and agent authentication key.
6. Configuring Wazuh
6.1 Initial Configuration
After installation, configure the Wazuh Server for your environment:
- Edit /var/ossec/etc/ossec.conf to set global options (e.g., email, log retention, rules)
- Configure the Wazuh API for integration with the dashboard and automation tools
- Set up TLS certificates for secure agent-server communication
For detailed configuration options, see the Wazuh ossec.conf reference.
6.2 Connecting Agents to the Server
To connect an agent to the server:
- On the server, add the agent:
Follow the prompts to add a new agent and generate a key./var/ossec/bin/manage_agents
- On the agent, import the key:
Paste the key when prompted./var/ossec/bin/manage_agents
- Restart the agent service:
sudo systemctl restart wazuh-agent
For automated deployments, consider using configuration management tools like Ansible or Puppet. If you are interested in automating deployments at scale, see DIY Cracking Rig 2025: Parts, Cost, Performance for infrastructure insights.
6.3 Setting Up User Roles and Permissions
Role-Based Access Control (RBAC) is crucial for limiting access within the Wazuh Dashboard:
- Define roles (e.g., analyst, admin, auditor) with specific permissions
- Assign users to roles via the dashboard's Security section
- Enforce strong authentication (e.g., SAML, LDAP, or MFA)
For RBAC configuration, see the Wazuh RBAC documentation.
7. Monitoring Hosts with Wazuh
7.1 Adding Hosts
To add hosts for monitoring:
- Install the Wazuh Agent on each target host (Linux, Windows, macOS, or cloud instance)
- Register each agent with the server using the manage_agents tool
- Verify agent status in the Wazuh Dashboard under Agents
For cloud environments, refer to the Wazuh cloud security documentation.
7.2 Configuring Log Collection
Log collection is the foundation of effective host monitoring. Wazuh supports:
- Syslog (local and remote)
- Windows Event Logs
- Application logs (Apache, NGINX, MySQL, etc.)
- Cloud service logs (AWS CloudTrail, Azure Activity Logs, GCP Audit Logs)
Configure log sources in /var/ossec/etc/ossec.conf or via the dashboard. For custom log sources, use the localfile directive:
<localfile>
<log_format>syslog</log_format>
<location>/var/log/auth.log</location>
</localfile>
For advanced log collection, see the Wazuh log data collection guide. You may also want to explore Log Management Best Practices 2025 to optimize your organization's log strategy.
7.3 Monitoring Linux Hosts
Linux host monitoring with Wazuh includes:
- File Integrity Monitoring (FIM): Detect unauthorized changes to critical files
- Rootkit Detection: Identify signs of rootkits and malware
- Vulnerability Detection: Scan installed packages for known vulnerabilities
- Log Analysis: Monitor authentication, sudo, and system logs
Example FIM configuration:
<syscheck>
<directories check_all="yes" realtime="yes">/etc,/usr/bin</directories>
</syscheck>
For more on Linux security monitoring, see CIS Linux Security Controls.
7.4 Monitoring Windows Hosts
Windows monitoring with Wazuh provides:
- Event Log Collection: Security, Application, and System logs
- Registry Monitoring: Detect changes to sensitive registry keys
- Active Directory Auditing: Track user and group changes
- Malware Detection: Integrate with Windows Defender or third-party AV
Configure Windows log sources in the agent's ossec.conf:
<localfile>
<log_format>eventchannel</log_format>
<location>Security</location>
</localfile>
For Windows hardening, refer to CIS Windows Security Controls.
8. Alerting and Notifications
8.1 Configuring Alert Rules
Wazuh SIEM uses a powerful rules engine to generate alerts based on log patterns, anomalies, and threat intelligence. To configure alert rules:
- Edit /var/ossec/etc/rules/local_rules.xml to add custom rules
- Leverage built-in rules for common threats (e.g., brute force, privilege escalation)
- Enable integration with external threat feeds (e.g., MITRE ATT&CK, AlienVault OTX)
Example custom rule:
<rule id="100100" level="10">
<decoded_as>json</decoded_as>
<field name="event_type">unauthorized_access</field>
<description>Unauthorized access attempt detected</description>
</rule>
For rule writing best practices, see MITRE ATT&CK Framework.
8.2 Setting Up Email Notifications
To receive alerts via email:
- Configure the email_alerts section in ossec.conf
- Set SMTP server, sender, and recipient addresses
- Define alert levels to trigger notifications
<global>
<email_notification>yes</email_notification>
<email_to>[email protected]</email_to>
<smtp_server>smtp.example.com</smtp_server>
</global>
Test email delivery and adjust spam filters as needed. For secure email, enable STARTTLS or SSL.
9. Integrating Wazuh with Other Tools
9.1 SIEM Integrations
Wazuh SIEM can be integrated with other security platforms for enhanced visibility and orchestration:
- Elastic Stack: Native integration for search and visualization
- Splunk: Forward Wazuh alerts to Splunk for correlation
- Security Orchestration, Automation, and Response (SOAR): Integrate with tools like CrowdStrike or Unit 42
- Threat Intelligence Platforms: Enrich alerts with external threat data
For more on SIEM integrations, see Splunk SIEM resources.
9.2 Cloud Service Integrations
Monitor cloud workloads and services by integrating Wazuh with:
- AWS: CloudTrail, GuardDuty, S3 access logs
- Azure: Activity Logs, Security Center alerts
- Google Cloud: Audit Logs, Security Command Center
Use the wazuh-modulesd and custom decoders to parse and analyze cloud logs. For guidance, see Wazuh cloud integrations.
10. Troubleshooting Common Issues
10.1 Agent Connectivity Problems
If agents fail to connect to the server:
- Verify network connectivity (ping, telnet to port 1514)
- Check firewall rules on both server and agent
- Ensure agent key is correctly imported
- Review agent logs at /var/ossec/logs/ossec.log
For troubleshooting, see Wazuh agent troubleshooting.
10.2 Dashboard Access Issues
If you cannot access the Wazuh Dashboard:
- Ensure the dashboard service is running:
sudo systemctl status wazuh-dashboard
- Check for port conflicts (default: 5601)
- Review dashboard logs at /var/log/wazuh-dashboard/wazuh-dashboard.log
- Verify HTTPS certificates and browser compatibility
For more, see Wazuh dashboard troubleshooting.
11. Best Practices for Production Deployment
To ensure a secure and resilient Wazuh SIEM deployment:
- Deploy Wazuh components on dedicated, hardened servers
- Use High Availability (HA) for critical components (server, Elastic Stack)
- Regularly back up configuration and alert data
- Monitor system performance and scale resources as needed
- Conduct periodic security assessments and update rulesets
- Document procedures and train staff on incident response
For a comprehensive checklist, see CIS Controls Implementation Guide.
12. Conclusion
Deploying Wazuh SIEM 2025 empowers organizations to proactively monitor hosts, detect threats, and respond swiftly to security incidents. By following this tutorial, you have learned how to install, configure, and optimize Wazuh for both Linux and Windows environments, set up alerting, and integrate with other security tools. Remember to adhere to security best practices, keep your deployment updated, and leverage the rich ecosystem of community and professional resources for ongoing success.
13. Further Reading and Resources
- Official Wazuh Documentation
- CISA: SIEM Resources
- SANS Institute: SIEM Best Practices
- MITRE ATT&CK Framework
- CIS Controls
- OWASP Security Resources
- Elastic SIEM Documentation
- Rapid7: SIEM Fundamentals
- Hashcat Usage 2025: Crack Passwords Efficiently