Hosting Agent
Hosting Agent (concept)
Purpose
Define the Hosting Agent as an observation profile for Linux hosting environments, including Plesk-shaped hosts: collect service and panel signals and observe the network without dropping packets.
Concept
Two processes on the hosting node:
- Unprivileged Agent —
zwall-hosting-agent.serviceorzwall-hosting-agent-v2.service, userzwall-hosting, binary/opt/zwall-hosting/bin/zwall-agentwith--config /etc/zwall-hosting/agent.ymloragent-v2.yml.CapabilityBoundingSetandAmbientCapabilitiesempty. v1 supplementary groupsadm psaserv; v2admonly (Plesk/site sources staypermission_blockeduntil operator ACLs). The Agent never joins a customer-content group. - Privileged loader —
zwall-hosting-ebpf-loader.serviceas root, loadshosting_observe.owith--object --sha256 --interfaces --run-user zwall-hosting --run-group zwall-hosting.ExecStop --detach. Capabilities bounded toCAP_CHOWN CAP_SYS_ADMIN CAP_NET_ADMIN. UNIX socket/run/zwall-hosting-ebpf/observer.sock.
The Agent does not receive CAP_NET_ADMIN / CAP_SYS_ADMIN. Network attach is not the Agent’s job. hosting.network is a socket client.
Fail-closed YAML: hosting.enabled: true, agent.protection_model: hosting, hosting.enforcement: false, audit_only and log_only true. Example profile identity hosting-plesk-observe-v2 is not a public SKU.
Collectors are path- and permission-dependent. Several example sources are permission_blocked or source_not_present by default. There is no shipped universal ACL.
Data/control flow
- Logs, cert expiry metadata, service/disk/parser health: Agent reads local state → category-safe events → Manager.
- Network: loader attaches pass-only programs → Agent polls socket → category-safe detector classes → Manager.
- Heartbeat:
observation_onlyplus Hosting status. - Control plane: enroll like any Agent; cannot receive rules or restart APIs (409). systemd on the node for process control.
Preflight: --hosting-network-preflight-url / --hosting-network-preflight-id prints COMPATIBLE or INCOMPATIBLE. Upgrade preflight prints UPGRADE_COMPATIBLE or UPGRADE_*.
Boundaries
- Never drop, redirect, or rewrite forwarding.
- No VM topology enrichment claim.
- No Hosting sources into automatic/provider AI.
- No UID/GID filtering feature.
- No mixing
zwall-agent.serviceas a drop engine on the same shared hosting node. protection_model: hybridis the wrong concept for this profile (the hybrid example misleads vs Hosting identity).- Events in Hosting APIs are category-safe: no raw payload or customer IPs.
Edition differences
Enterprise only. Community has no Hosting units, loader, or Hosting APIs.
Common misconceptions
- “Add the Agent to the site group so nginx logs work.” Never join a customer-content group; grant exact-path ACLs.
- “v2
admis enough for Plesk panel.log.” The unit comments say otherwise until operator ACLs. - “Enable enforcement flags for protection.” Validation rejects that.
- “Hosting Agent v2 is a different product SKU.” Public name remains Hosting Agent.