Wazuh SIEM Deployment Project
Critical: Post-ApisCP Migration Only
Wazuh deployment is ONLY planned for NEW ApisCP servers, NOT current cPanel infrastructure.
Reason: Imunify360 (even FREE version) conflicts with Wazuh agents due to both using the /var/ossec directory (OSSEC-based). Current cPanel servers have Imunify360 installed and cannot run Wazuh agents.
Prerequisite: Complete ApisCP migration (Q2-Q3 2026) before beginning Wazuh deployment.
Interim Solution: Grafana + Prometheus + Loki stack deployed in Q1 2026 for infrastructure monitoring. See Grafana Monitoring Project.
Executive Summary
Objective: Deploy Wazuh SIEM on new ApisCP servers for advanced security monitoring, threat detection, and compliance reporting.
Benefits: - Real-Time Threat Detection: Automated security event analysis and alerting - File Integrity Monitoring: Detect unauthorized file modifications - Vulnerability Detection: Automated CVE scanning and remediation tracking - Compliance Reporting: GDPR, PCI DSS, CIS Benchmarks dashboards - Centralised Security: Unified SIEM for all infrastructure - Integration with Grafana: Single pane of glass for infrastructure + security
Timeline: 8-11 weeks (2-3 months) AFTER ApisCP migration completion
Target Deployment: Q3-Q4 2026 (July-December 2026)
Infrastructure Required: Hetzner CPX11 (€4.15/month, ~£43/year) or reuse existing Grafana monitoring server
Project Status: Planning phase - awaiting ApisCP migration completion
Why Wazuh Post-ApisCP Only
The Imunify360 Conflict
Technical Conflict:
- Imunify360: Uses /var/ossec directory (OSSEC-based IDS/IPS)
- Wazuh: Also uses /var/ossec directory (Wazuh is OSSEC fork)
- Result: Package conflict prevents co-installation, even for Wazuh agent-only
Research Findings:
- Confirmed via Wazuh GitHub issues and Imunify360 support forums
- Even custom directory workarounds (/opt/wazuh-agent) are complex and unsupported
- Both systems share the same OSSEC codebase, causing fundamental conflicts
Current cPanel Servers: - eu1.cp: Imunify360 FREE + KernelCare (cannot run Wazuh agent) - ns1: Imunify360 FREE (cannot run Wazuh agent) - ns2: Imunify360 FREE (cannot run Wazuh agent)
New ApisCP Servers: - NO Imunify360 installed (no conflict) - Wazuh agents can be deployed without issues - ApisCP has different security architecture, no need for Imunify360
Two-Phase Monitoring Strategy
Phase 1: Grafana Stack (Q1 2026 - NOW): - Grafana + Prometheus + Loki for infrastructure monitoring - Compatible with current cPanel + Imunify360 environment - Provides immediate visibility and alerting - Foundation for Wazuh integration - Status: See Grafana Monitoring Project
Phase 2: Wazuh SIEM (Q3-Q4 2026 - Post-ApisCP): - Wazuh on NEW ApisCP servers (no Imunify360) - Advanced security event detection and correlation - Integration with existing Grafana dashboards - Unified monitoring across infrastructure and security - Status: This document (planning phase)
Target Architecture
Wazuh + Grafana Unified Monitoring
graph TB
subgraph "NEW ApisCP Infrastructure - Post-Migration"
APIS1[ApisCP Server 1<br/>AlmaLinux 10<br/>~15 Client Accounts<br/>NO Imunify360]
APIS2[ApisCP Server 2<br/>AlmaLinux 10<br/>~15 Client Accounts<br/>NO Imunify360]
DNS1[DNS Server 1<br/>PowerDNS<br/>AlmaLinux 10]
DNS2[DNS Server 2<br/>PowerDNS<br/>AlmaLinux 10]
end
subgraph "Monitoring Agents - ApisCP Servers"
NEXPORTER1[Node Exporter<br/>Metrics]
PROMTAIL1[Promtail<br/>Logs]
WAZUH1[Wazuh Agent<br/>Security Events]
NEXPORTER2[Node Exporter<br/>Metrics]
PROMTAIL2[Promtail<br/>Logs]
WAZUH2[Wazuh Agent<br/>Security Events]
end
subgraph "Existing Monitoring Server"
GRAFANA[Grafana<br/>Unified Dashboards]
PROMETHEUS[Prometheus<br/>Infrastructure Metrics]
LOKI[Loki<br/>Log Aggregation]
end
subgraph "NEW Wazuh SIEM Infrastructure"
WAZUH_MGR[Wazuh Manager<br/>Security Event Processing]
WAZUH_IDX[Wazuh Indexer<br/>OpenSearch Database]
WAZUH_DASH[Wazuh Dashboard<br/>Security Visualization]
end
APIS1 --> NEXPORTER1
APIS1 --> PROMTAIL1
APIS1 --> WAZUH1
APIS2 --> NEXPORTER2
APIS2 --> PROMTAIL2
APIS2 --> WAZUH2
DNS1 --> WAZUH1
DNS2 --> WAZUH2
NEXPORTER1 --> PROMETHEUS
NEXPORTER2 --> PROMETHEUS
PROMTAIL1 --> LOKI
PROMTAIL2 --> LOKI
WAZUH1 -->|TLS 1514| WAZUH_MGR
WAZUH2 -->|TLS 1514| WAZUH_MGR
WAZUH_MGR --> WAZUH_IDX
WAZUH_IDX --> WAZUH_DASH
PROMETHEUS --> GRAFANA
LOKI --> GRAFANA
WAZUH_IDX -->|Data Source| GRAFANA
ADMIN[Administrator] -->|HTTPS| GRAFANA
ADMIN -->|HTTPS Optional| WAZUH_DASH
style APIS1 fill:#3498db,stroke:#2c3e50,stroke-width:2px,color:#fff
style APIS2 fill:#3498db,stroke:#2c3e50,stroke-width:2px,color:#fff
style DNS1 fill:#3498db,stroke:#2c3e50,stroke-width:2px,color:#fff
style DNS2 fill:#3498db,stroke:#2c3e50,stroke-width:2px,color:#fff
style GRAFANA fill:#f39c12,stroke:#2c3e50,stroke-width:3px,color:#fff
style WAZUH_MGR fill:#e74c3c,stroke:#2c3e50,stroke-width:2px,color:#fff
style WAZUH_IDX fill:#e74c3c,stroke:#2c3e50,stroke-width:2px,color:#fff
style WAZUH_DASH fill:#e74c3c,stroke:#2c3e50,stroke-width:2px,color:#fff
Key Points: - Three data sources: Prometheus (metrics), Loki (logs), Wazuh (security events) - Single interface: Grafana as primary dashboard (Wazuh Dashboard optional) - Unified alerting: All alerts via Grafana Unified Alerting - Correlation capability: Link infrastructure anomalies with security events
Wazuh Capabilities
What Wazuh Provides
1. Security Information and Event Management (SIEM): - Centralised collection and analysis of security events - Real-time threat detection with pre-built rule sets - Correlation of events across multiple servers - Timeline visualization for incident investigation
2. File Integrity Monitoring (FIM):
- Monitor critical system files (/etc/, /bin/, /sbin/)
- Monitor web application directories (/var/www/, ApisCP sites)
- Detect unauthorized file modifications with file diffs
- Alert on configuration changes
3. Vulnerability Detection: - Automated CVE scanning of installed packages - Integration with National Vulnerability Database (NVD) - Prioritized vulnerability reporting (Critical/High/Medium/Low) - Remediation tracking and verification
4. Intrusion Detection System (IDS): - Network and host-based intrusion detection - Signature-based and anomaly-based detection - Integration with threat intelligence feeds - Automated blocking of malicious IPs (integration with CSF/firewall)
5. Log Data Analysis: - Parse and analyse logs from all services (Apache, Exim, SSH, etc.) - Pattern matching and correlation - Detect authentication failures, brute force attempts, privilege escalation - Custom rules for application-specific events
6. Compliance and Reporting: - GDPR: Data access monitoring, encryption verification, retention compliance - PCI DSS: If needed for payment processing (complements Stripe/PayPal) - CIS Benchmarks: Security configuration alignment - Automated compliance dashboards and reports
7. Incident Response Integration: - Automated incident creation for high-severity events - Evidence collection and preservation - Integration with existing Incident Response procedures - Active response capabilities (block IPs, isolate compromised accounts)
What Grafana Stack Already Provides
To avoid duplication, understand what's already covered by Grafana + Prometheus + Loki:
| Capability | Grafana Stack | Wazuh SIEM | Recommendation |
|---|---|---|---|
| Infrastructure Metrics | ✅ Prometheus (excellent) | ⚠️ Basic | Use Grafana/Prometheus |
| Log Aggregation | ✅ Loki (good) | ✅ Excellent (OpenSearch) | Use both (Loki for infra, Wazuh for security) |
| Dashboards | ✅ Grafana (best-in-class) | ✅ Wazuh Dashboard (good) | Primary: Grafana, Secondary: Wazuh Dashboard |
| Alerting | ✅ Grafana Unified Alerting | ✅ Wazuh Alerting | Use Grafana (unified notifications) |
| Security Event Detection | ⚠️ Manual rules | ✅ Automated with ruleset | Use Wazuh |
| File Integrity Monitoring | ❌ Not available | ✅ Core feature | Use Wazuh |
| Vulnerability Scanning | ❌ Not available | ✅ Core feature | Use Wazuh |
| Compliance Reporting | ⚠️ Manual dashboards | ✅ Automated reports | Use Wazuh |
Conclusion: Wazuh complements Grafana stack, not replaces it. Together they provide complete observability (infrastructure + security).
Deployment Options
Option 1: All-in-One Wazuh Server (Recommended)
Specifications: - Server: Hetzner CPX11 (2 vCPU, 2GB RAM, 40GB SSD) - Components: Wazuh Manager + Indexer + Dashboard (single server) - Suitable For: 4-6 monitored servers, moderate log volume - Cost: €4.15/month (~£43/year) - Complexity: Simple deployment and management
Pros: - Lower cost - Simple architecture - Sufficient for current scale (4 ApisCP/DNS servers) - Easy backup and disaster recovery
Cons: - Limited scalability (>10 servers may require upgrade) - Single point of failure (mitigated by Grafana stack continuing to operate)
Option 2: Separate Wazuh Components
Specifications: - Wazuh Manager: CPX21 (3 vCPU, 4GB RAM) - Wazuh Indexer: CPX21 (3 vCPU, 4GB RAM) - Wazuh Dashboard: CPX11 (2 vCPU, 2GB RAM) - Cost: ~£210/year - Complexity: More complex deployment
Pros: - Better performance under heavy load - Easier horizontal scaling - Component isolation
Cons: - Higher cost (3x servers) - More complex management - Overkill for current scale
Recommendation: Start with Option 1 (All-in-One). Migrate to Option 2 if client count exceeds 50 or log volume becomes unmanageable.
Option 3: Reuse Existing Monitoring Server
Specifications: - Deploy Wazuh containers on existing Grafana monitoring server (CPX31) - Add Wazuh Manager, Indexer, Dashboard containers to existing Docker Compose - Cost: £0 additional (already paying for monitoring server) - Complexity: Moderate (managing more containers)
Pros: - No additional infrastructure cost - Single server to manage - Simplified network configuration
Cons: - Resource contention (Grafana + Prometheus + Loki + Wazuh on same server) - May require monitoring server upgrade to CPX41 if performance issues
Recommendation: Test this approach first (lowest cost). If performance issues arise, move Wazuh to dedicated CPX11.
Deployment Timeline
Prerequisites (Before Starting)
- Grafana Stack Deployed: Phase 1 monitoring operational (Q1 2026)
- ApisCP Migration Complete: New ApisCP servers deployed and stable (Q2-Q3 2026)
- NO Imunify360 on ApisCP Servers: Confirmed no
/var/ossecconflict - Network Documented: ApisCP server IPs, DNS records, firewall rules documented
Wazuh Deployment Phases
Estimated Start: Q3 2026 (July 2026) - assuming ApisCP migration completes June 2026
gantt
title Wazuh SIEM Deployment Timeline (Post-ApisCP Migration)
dateFormat YYYY-MM-DD
section Prerequisites
Wait for ApisCP Migration :milestone, m1, 2026-06-30, 0d
section Phase 1: Planning
Pre-deployment Checklist :p1a, 2026-07-01, 3d
Provision Wazuh Server :p1b, after p1a, 2d
Document Deployment Plan :p1c, after p1a, 3d
section Phase 2: Wazuh Installation
Install Wazuh Manager :p2a, after p1b, 2d
Install Wazuh Indexer :p2b, after p2a, 2d
Install Wazuh Dashboard :p2c, after p2b, 1d
Configure Authentication :p2d, after p2c, 1d
Configure Email Alerts :p2e, after p2d, 1d
section Phase 3: Agent Deployment
Deploy Agents - DNS Servers :p3a, after p2e, 2d
Test Agent Connectivity :p3b, after p3a, 1d
Deploy Agents - ApisCP Servers :p3c, after p3b, 2d
Validate All Agents :p3d, after p3c, 1d
section Phase 4: Rule Configuration
Enable Default Rules :p4a, after p3d, 2d
Configure FIM :p4b, after p4a, 3d
Create Custom Rules :p4c, after p4b, 4d
Tune Alert Thresholds :p4d, after p4c, 3d
section Phase 5: Grafana Integration
Add Wazuh Data Source :p5a, after p4d, 1d
Import Wazuh Dashboards :p5b, after p5a, 2d
Create Unified Dashboard :p5c, after p5b, 3d
Configure Cross-Source Alerts :p5d, after p5c, 2d
section Phase 6: Testing
Comprehensive Testing :p6a, after p5d, 5d
Performance Optimization :p6b, after p6a, 3d
Documentation Update :p6c, after p6a, 3d
section Phase 7: Production Launch
Production Cutover :p7a, after p6b, 2d
Monitor and Tune :p7b, after p7a, 7d
Total Timeline: 8-11 weeks (56-77 days)
Target Completion: Q3-Q4 2026 (September-October 2026)
Detailed Phase Breakdown
Phase 1: Planning and Preparation (1 week) - Complete pre-deployment checklist (infrastructure, access, monitoring plan) - Provision Wazuh server (Hetzner CPX11 or reuse monitoring server) - Document deployment plan (update this document with specific configurations) - Review Wazuh documentation and training materials
Phase 2: Wazuh Installation (1 week) - Install Wazuh Manager, Indexer, Dashboard (via Docker or native packages) - Configure basic authentication (admin user, API keys) - Verify web interface accessibility - Configure SMTP for email alerts (reuse existing email configuration) - Set up integration points for Grafana (note Indexer URL for later)
Phase 3: Agent Deployment (1 week) - Install Wazuh agents on DNS servers first (lower risk, simpler configuration) - Test agent connectivity, log shipping, and event generation - Install Wazuh agents on ApisCP hosting servers - Verify all agents reporting correctly to Manager - Troubleshoot any connectivity or firewall issues
Phase 4: Rule Configuration and Tuning (2-3 weeks) - Enable default Wazuh rule sets (SSH, web server, file integrity) - Configure File Integrity Monitoring for critical paths - Create custom rules for ApisCP-specific events - Tune alert thresholds to reduce false positives (most time-consuming phase) - Test rules by simulating various attack scenarios
Phase 5: Grafana Integration (1 week) - Add Wazuh Indexer as Grafana data source (OpenSearch/Elasticsearch type) - Import pre-built Wazuh dashboards into Grafana - Create unified security + infrastructure dashboard - Configure cross-data-source alerts (e.g., high CPU + security event correlation) - Test alert routing through Grafana Unified Alerting
Phase 6: Testing and Optimization (1-2 weeks) - Comprehensive functional testing (simulate attacks, verify detection) - Performance testing (ensure Wazuh server not overloaded) - Documentation updates (operational procedures, troubleshooting guides) - Backup and disaster recovery testing - User training (familiarization with Wazuh UI and Grafana dashboards)
Phase 7: Production Launch (1-2 weeks) - Production cutover (Wazuh as primary security monitoring) - Monitor false positive rate and adjust rules - Gather operational feedback - Iterate on dashboards and alerts based on real-world usage
Integration with Grafana Stack
Adding Wazuh as Grafana Data Source
Configuration Steps:
-
Add OpenSearch/Elasticsearch Data Source:
# In /opt/monitoring-stack/grafana/provisioning/datasources/datasources.yml - name: Wazuh type: elasticsearch access: proxy url: http://wazuh-indexer:9200 database: "wazuh-alerts-*" isDefault: false editable: true jsonData: esVersion: "7.10.0" timeField: "@timestamp" logMessageField: "full_log" logLevelField: "rule.level" -
Restart Grafana Container:
-
Verify Data Source:
- Navigate to Grafana UI → Configuration → Data Sources
- Verify "Wazuh" data source shows green "Data source is working"
Unified Dashboard Creation
Example Panels for Unified MDHosting Dashboard:
Row 1: Status Overview - Panel 1: Server Status (Prometheus) - All servers UP? - Panel 2: Security Alert Summary (Wazuh) - Critical/High/Medium/Low counts - Panel 3: Recent Security Events (Wazuh) - Last 10 alerts
Row 2: Infrastructure + Security Correlation - Panel 4: CPU Usage by Server (Prometheus) - Time series - Panel 5: Top Security Events by Type (Wazuh) - Bar chart - Panel 6: Authentication Failures (Wazuh) - Gauge
Row 3: Deep Dive - Panel 7: Network Traffic (Prometheus) - Time series - Panel 8: Intrusion Attempts by IP (Wazuh) - Table - Panel 9: File Integrity Changes (Wazuh) - Log panel
Row 4: Logs and Correlation - Panel 10: Recent Application Logs (Loki) - Log panel - Panel 11: Security Event Timeline (Wazuh) - Time series - Panel 12: Correlated Events (Wazuh + Prometheus) - Custom query
Cross-Data-Source Alerting
Example: Crypto-Mining Detection Alert
# Grafana Alert Rule
name: Possible Crypto-Mining Activity
condition:
- Query A (Prometheus): avg_over_time(node_cpu_usage[5m]) > 80
- Query B (Wazuh): rule.level >= 7 AND rule.groups contains "web"
- Evaluation: IF A AND B within 5-minute window
actions:
- Send notification: Email Admin
- Severity: Critical
annotations:
summary: "High CPU + web security alert on {{ $labels.instance }}"
description: "Possible crypto-mining: High CPU ({{ $valueA }}%) + security event detected"
Interpretation: If high CPU usage correlates with web security event (e.g., malicious script uploaded), trigger alert for possible crypto-mining malware.
Operational Procedures
Daily Monitoring with Wazuh
Grafana-First Approach (5-10 minutes):
- Open Unified Dashboard (Grafana)
- Security Alert Summary Panel:
- Any Critical/High alerts? Investigate immediately
- Medium alerts? Review and triage
- Recent Security Events Panel:
- Scan last 10 events for unusual patterns
- Click event to view full details in Wazuh data source
- File Integrity Changes:
- Any unexpected file modifications? Investigate
- Expected changes (updates, deployments)? Mark as reviewed
- Authentication Failures:
- Spike in SSH/cPanel/email authentication failures? Investigate source IPs
- Check if already blocked by CSF/Fail2Ban
- Correlation Check:
- High CPU + security event? Investigate for compromise
- Disk usage spike + FIM alert? Possible malware or unauthorized file upload
Wazuh Dashboard (Optional, for deep investigation): - Navigate to Wazuh Dashboard (if needed for detailed analysis) - Use Wazuh's specialized views (Security Events, Integrity Monitoring, Vulnerabilities) - Return to Grafana for infrastructure context
Compared to Manual Monitoring: - Before (no SIEM): 15-30 minutes manually reviewing logs, security tools - After (Wazuh + Grafana): 5-10 minutes reviewing unified dashboard - Time Saved: 10-20 minutes per day = 60-140 minutes per week
Incident Investigation with Wazuh
Scenario: Suspected Unauthorized Access
- Initial Alert (via Grafana or email):
-
"Critical: Unauthorized root login from unusual IP"
-
Grafana Unified Dashboard:
- Check "Recent Security Events" panel
- Identify alert source: Wazuh rule "5502 - Linux user login from unusual location"
-
Note: IP address, timestamp, affected server
-
Wazuh Deep Dive:
- Click alert in Grafana → Jump to Wazuh data source
-
View full event details:
- Source IP, username, authentication method
- Previous login history for this user
- Geo-location of IP (if threat intelligence enabled)
-
Correlation with Infrastructure:
- Switch to Prometheus data in Grafana
- Check server resource usage at time of alert
-
Any unusual CPU/network/disk activity?
-
Log Analysis:
- Switch to Loki data in Grafana
- Query:
{server="affected-server", job="secure"} |= "unusual-ip-address" -
View SSH session activity, commands executed
-
File Integrity Check:
- Wazuh FIM panel in Grafana
- Were any files modified after unauthorized access?
-
Check critical paths:
/etc/passwd,/etc/shadow,/root/.ssh/ -
Response Actions:
- If confirmed unauthorized: Follow Incident Response - Unauthorized Access
- Block IP (CSF permanent deny)
- Force password reset or disable compromised account
-
Review and remediate any file modifications
-
Documentation:
- Create incident record: INC-YYYY-MM-DD-###
- Document timeline (from Wazuh + Grafana data)
- Capture evidence (screenshots, log exports)
Efficiency: Wazuh provides immediate detection and context. What previously took 30-60 minutes of manual investigation now takes 10-15 minutes with full evidence trail.
Cost-Benefit Analysis
Total Monitoring Stack Costs
| Component | Monthly Cost | Annual Cost | Purpose |
|---|---|---|---|
| Grafana Monitoring Server (CPX31) | £12 | £144 | Grafana + Prometheus + Loki (Phase 1) |
| Wazuh SIEM Server (CPX11) | £3.60 | £43 | Wazuh Manager + Indexer + Dashboard (Phase 2) |
| OR: Reuse Monitoring Server | £0 | £0 | Deploy Wazuh on existing server (test first) |
| Total (Dedicated Wazuh) | £15.60 | £187 | Complete monitoring + security stack |
| Total (Shared Server) | £12 | £144 | If Wazuh runs on monitoring server |
Comparison with Alternatives:
| Solution | Annual Cost | Capabilities |
|---|---|---|
| Grafana + Wazuh (Self-Hosted) | £144-187 | Infrastructure + Security + Compliance |
| Commercial SIEM (Datadog, Splunk) | £600-2,000+ | Similar capabilities, SaaS, data egress concerns |
| Managed SIEM Service | £1,200-3,600+ | Fully managed, but expensive for small scale |
| Do Nothing (Manual Only) | £0 | High operational burden, slow detection, compliance gaps |
Value Proposition: - £144-187/year for enterprise-grade monitoring + SIEM - Significant time savings: 10-20 hours/month in manual monitoring - Improved security posture: Real-time threat detection vs. reactive response - Compliance benefits: Automated GDPR/PCI reporting - Incident response: Faster detection and investigation (reduce MTTR)
ROI: Cost pays for itself in ~5-10 hours of saved investigation time per year.
Documentation and Training
Documentation to Create/Update
During Wazuh Deployment:
- This Document (wazuh-deployment.md):
- Update with actual deployment configuration
- Document custom rules created
-
Add troubleshooting section based on issues encountered
-
Security Monitoring (../security/monitoring.md):
- Update with Wazuh operational procedures
- Add Wazuh-specific monitoring workflows
-
Update alert triage procedures
-
Incident Response (../security/incident-response.md):
- Integrate Wazuh evidence collection procedures
- Add Wazuh detection examples to playbooks
-
Update investigation workflows
-
Network Architecture (../infrastructure/network-architecture.md):
- Add Wazuh server to network diagram
- Document firewall rules (port 1514 for agent communication)
-
Update security zones
-
Grafana Monitoring (grafana-monitoring.md):
- Add Wazuh integration section
- Document unified dashboard creation
- Update operational procedures
Training Requirements
Administrator Training (3-4 hours):
- Wazuh Architecture Understanding (30 minutes):
- Manager, Indexer, Dashboard components
- Agent communication and data flow
-
Integration with Grafana stack
-
Wazuh UI Navigation (1 hour):
- Dashboard overview
- Security events analysis
- Vulnerability management
- File integrity monitoring
-
Compliance reporting
-
Grafana Unified Dashboard (1 hour):
- Navigating unified infrastructure + security dashboard
- Querying Wazuh data source
- Creating custom panels
-
Alert rule configuration
-
Incident Investigation Workflow (1 hour):
- Using Wazuh for security event investigation
- Correlating with infrastructure metrics (Prometheus)
- Log analysis (Loki)
-
Evidence collection and documentation
-
Operational Procedures (30 minutes):
- Daily monitoring checklist
- Weekly security review
- Alert triage and escalation
- Backup and disaster recovery
Resources: - Wazuh Documentation: https://documentation.wazuh.com - Grafana Documentation: https://grafana.com/docs/grafana/latest/ - MDHosting Internal Docs: This documentation repository
Risks and Mitigations
| Risk | Impact | Probability | Mitigation |
|---|---|---|---|
| ApisCP Migration Delayed | Wazuh deployment delayed | Medium | Grafana stack provides monitoring in interim, no critical gap |
| Imunify360 Accidentally Installed on ApisCP | Wazuh conflict, deployment blocked | Low | Document clearly in ApisCP deployment procedures, verification checklist |
| Wazuh Performance Issues | Alerts delayed, server overload | Medium | Start with CPX11, monitor resource usage, upgrade to CPX21 if needed |
| High False Positive Rate | Alert fatigue, missed real threats | High | Extensive tuning phase (2-3 weeks), adjust thresholds iteratively |
| Integration Complexity | Grafana + Wazuh integration fails | Low | Well-documented process, test in staging first |
| Resource Constraints | Single-operator, limited time | Medium | Phased deployment, automate where possible, leverage pre-built dashboards |
| Data Loss (Wazuh Server Failure) | Lose historical security events | Low | Regular backups, Wazuh data not critical (events also in production logs) |
Overall Risk Level: Low-Medium (manageable with proper planning and phased approach)
Success Criteria
Technical Success: - [ ] Wazuh Manager, Indexer, Dashboard deployed and operational - [ ] All 4 agents (2x ApisCP, 2x DNS) reporting to Manager - [ ] Grafana data source configured, dashboards displaying Wazuh data - [ ] Alert rules configured with <10% false positive rate - [ ] File Integrity Monitoring active on critical paths - [ ] Vulnerability scanning running weekly
Operational Success: - [ ] Daily monitoring workflow updated and followed - [ ] Incident investigation workflow utilizing Wazuh data - [ ] Administrator trained and comfortable with Wazuh UI + Grafana - [ ] Documentation complete and accurate - [ ] Backup and disaster recovery tested
Business Success: - [ ] Improved Mean Time to Detect (MTTD) for security incidents - [ ] Reduced Mean Time to Respond (MTTR) through better investigation tools - [ ] GDPR compliance reporting automated - [ ] Security posture improved (proactive vs. reactive) - [ ] Time savings: 10+ hours/month in manual monitoring
Future Enhancements
Post-Deployment Improvements:
- Active Response Automation:
- Automatically block malicious IPs in CSF firewall
- Isolate compromised accounts (disable cPanel access)
-
Quarantine infected files
-
Threat Intelligence Integration:
- Integrate with threat intelligence feeds (AlienVault OTX, etc.)
- Enrich alerts with IP reputation data
-
Identify known malicious actors
-
Custom Rule Development:
- ApisCP-specific detection rules
- Client-specific patterns (if offering managed security)
-
Zero-day threat hunting queries
-
Extended Monitoring:
- Monitor client WordPress sites for specific vulnerabilities
- Database query monitoring (slow query detection)
-
Custom application monitoring
-
Client-Facing Security Services:
- Offer security monitoring as premium service
- Client-specific security dashboards
-
Monthly security reports for business clients
-
Compliance Expansion:
- PCI DSS reporting (if payment processing moves in-house)
- ISO 27001 alignment
- Additional regulatory frameworks as needed
Related Documentation
Prerequisites: - ApisCP Migration Project - Must be completed before Wazuh deployment - Grafana Monitoring Project - Phase 1 monitoring (deploy first)
Integration Points: - Security Monitoring - Current monitoring practices and Wazuh integration - Incident Response - Incident response procedures using Wazuh data - GDPR Compliance - Compliance monitoring with Wazuh - Network Architecture - Network topology and firewall rules
Reference: - Contacts - Vendor contacts and escalation procedures
Document Control
Version History:
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | January 2026 | Claude Sonnet 4.5 | Initial Wazuh SIEM deployment plan (post-ApisCP migration) |
Review Schedule:
- Pre-Deployment Review: Upon ApisCP migration completion (Q2 2026)
- Post-Deployment Review: 1 month after Wazuh deployment completion
- Quarterly Review: Assess effectiveness, rule accuracy, integration success
- Annual Review: Comprehensive review and update (January each year)
Next Review Date: June 2026 (upon ApisCP migration completion)
Document Status: ✅ Complete - Comprehensive Wazuh SIEM deployment plan Classification: Confidential - Internal Use Only Document Owner: MDHosting Ltd Director (Matthew Dinsdale)
Last updated: January 2026