Host: Spare laptop • Hypervisor: Proxmox VE
Initial install completed with base configuration for network, storage, and web GUI access.
pve01 upon Proxmox installationlocal (pve01), local-lvm (pve01)ubuntu-24.04.3-live-server-amd64.iso
Create a non-root administrative user secadmin@pve for daily management tasks, following least-privilege practices.
Datacenter → Permissions → Users → Addsecadmin • Realm pve • Enabled ✅ • Strong password set.secadmin@pve created.
Datacenter → Permissions → Add → User Permission/ (cluster-wide) • User secadmin@pve • Role PVEAdmin (VM/storage/network mgmt; not root host control).PVEAdmin rights.
secadmin@pve; confirmed ability to manage VMs, storage, networks.
vmbr1 was created as root@pam; routine management performed as secadmin@pve.Simulate a corporate environment with bridges:
enp3s0 (wired).vmbr0 bound to enp3s0, IP 192.168.2.10/24.
root@pam: Path Datacenter → pve01 → System → Network → Create → Linux Bridge.vmbr1 • Bridge ports: empty • IPv4/CIDR: empty • Autostart ✅.vmbr1 created, Active = Yes.
Base VM to host the Wazuh SIEM (VM 100).
local → ISO Images.Datacenter → pve01 → Create VM101 • Name wazuh-siem • OS: Linux (ubuntu-22.04-server.iso)SeaBIOS, Machine i440fx, SCSI Ctrl VirtIO SCSI single80 GB VirtIO on local-lvm • CPU: 2 cores • RAM: 6 GBOpenSSH Server; skipped snaps.Dual-home the SIEM:
ens18 (vmbr0) → LAN via DHCPens19 (vmbr1) → Static IP for labip a
ens18: DHCP lease 192.168.2.155/24; ens19: DOWN, no IP.
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens18: # LAN NIC (vmbr0)
dhcp4: true
ens19: # Lab NIC (vmbr1)
addresses:
- 10.10.10.1/24
sudo netplan apply
ip a
ens18: DHCP 192.168.2.x; ens19: static 10.10.10.1/24.
10.10.10.0/24 via ens19.The GPG key is required so that apt can verify packages from the Wazuh repository are authentic and trusted before installation.
Place Wazuh GPG key at /usr/share/keyrings/wazuh.gpg prior to repo setup.
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | \
gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && \
chmod 644 /usr/share/keyrings/wazuh.gpg
gpg: failed to create temporary file '/usr/share/keyrings/...': Permission denied
gpg: keyblock resource '/usr/share/keyrings/wazuh.gpg': Permission denied
gpg: no writable keyring found: Not found
gpg: import from [stdin] failed: General error
gpg: Total number processed: 0
gpg invoked with sudo but keyring write bypassed root; cannot write under /usr/share/keyrings/.
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor | sudo tee /usr/share/keyrings/wazuh.gpg > /dev/null
sudo chmod 644 /usr/share/keyrings/wazuh.gpg
Using tee under sudo ensures the file is written with root privileges, avoiding the redirection permission issue.
We then discard what would be written to the console with > /dev/null
ls -l /usr/share/keyrings/wazuh.gpg
# -rw-r--r-- 1 root root <size> /usr/share/keyrings/wazuh.gpg
tee is a reliable cross-version fix.