CR-2026-06-25: Wazuh Agent Enrollment — modestus-p16g
Change Summary
| Field | Value |
|---|---|
CR ID |
CR-2026-06-25-wazuh-agent-enrollment |
Author |
Evan Rosado |
Status |
Complete (with follow-ups) |
Priority |
P0 (security visibility gap — 0/10 agents enrolled) |
Risk Level |
Medium (root-level agent on hardened system) |
Approval |
Self-approval |
Target Date |
2026-06-25 |
Systems Affected |
modestus-p16g (ThinkPad P16 Gen 2, Arch Linux) |
Rollback Window |
Immediate — stop service, remove package |
Related Incidents |
INC-2026-06-25-002 (monitor freeze — no logs captured because no agent) |
Description
What
Install and enroll the Wazuh 4.x agent on modestus-p16g as the first endpoint in the Domus Digitalis SIEM cluster. Configure log collection for systemd journal, AppArmor, nftables, pacman, sshd, and auditd. Integrate with the existing hardening stack without introducing regressions.
Why
Two days of intensive security hardening — AppArmor enforce, nftables egress filtering, LUKS, USBGuard, auditd, fail2ban — have produced a defense-in-depth posture with zero telemetry. The Wazuh SIEM cluster is running on k3s, but no agents are enrolled. Every security event on the workstation disappears into local logs that nobody monitors. INC-2026-06-25-002 (monitor freeze) demonstrated the gap: no agent meant no alert, no timeline reconstruction, no correlation.
This is the first agent enrollment. It establishes the template for the remaining 9 endpoints.
Prerequisites Verified
| Check | Target | Result |
|---|---|---|
Registration port |
wazuh.inside.domusdigitalis.dev:1515 |
OK |
Event port |
wazuh-workers.inside.domusdigitalis.dev:1514 |
OK |
API port |
wazuh.inside.domusdigitalis.dev:55000 |
OK |
API authentication |
wazuh-wui / gopass |
OK |
Dashboard redirect |
wazuh.inside.domusdigitalis.dev:443 |
302 (expected) |
Risk Assessment
| Risk | Mitigation |
|---|---|
AppArmor conflict |
Deploy ossec profile in complain mode first; enforce after 48h observation |
nftables egress block |
Pre-configure explicit allow rules before starting agent |
auditd contention |
Wazuh reads audit logs via file — no socket conflict with auditd |
Root-level process |
ossec-agentd runs as root by design; AppArmor profile constrains filesystem access |
Agent instability |
systemd service can be stopped/disabled instantly; no kernel modules involved |
Scope
-
In scope: modestus-p16g agent install, AppArmor profile, nftables egress rules, log collection config
-
Out of scope: Other 9 endpoints, Wazuh manager/indexer configuration, custom rules/decoders
-
Template value: This CR becomes the reference implementation for all subsequent agent enrollments
Deviations from Plan
The following deviations occurred during implementation. All are documented in the implementation partial with the actual commands used.
| Deviation | Detail |
|---|---|
CDN access denied |
The |
No Arch support in install script |
|
RPM extraction method |
Agent installed by downloading the official RPM and extracting with |
wazuh group, not ossec |
Wazuh 4.14.x expects group |
agent-auth manual registration |
Auto-enrollment via |
Workers address, not manager |
Agent connected to |
Rootcheck definition files missing |
RPM extraction does not include |
nftables Phase 4 skipped |
No egress filtering active on the workstation — all outbound allowed via |