4. Wazuh Agent安装与注册

Wazuh Agent 是部署在被监控主机上的轻量级采集端,它负责收集日志、文件完整性、系统调用、漏洞与配置合规等数据,并通过加密通道发送给 Wazuh Manager。Agent 与 Manager 之间不是简单的“连上就行”,而是必须先完成一次密钥注册:Manager 的 authd 服务为每台 Agent 签发唯一密钥,Agent 用该密钥与 Manager 建立加密会话。因此,Agent 部署可以拆成三个关键动作——安装软件包、注册密钥、启动并托管服务。理解这三者的先后关系,是后续批量部署和排障的基础。

一、部署前的准备与注册方式选择

在安装 Agent 之前,需要先确认 Manager 侧的两个信息:Manager 的 IP 或域名,以及 authd 的注册端口(默认 1515/tcp,通信端口默认 1514/tcp)。注册方式主要有两种:一是使用 agent-auth 工具主动向 Manager 注册,适合脚本化和批量场景;二是通过 Manager 的 manage_agents 工具手动生成密钥,再把密钥导入 Agent,适合网络受限或需要预先分配 ID 的环境。两种方式最终都得到一份 /var/ossec/etc/client.keys(Windows 为 C:\Program Files (x86)\ossec-agent\client.keys)文件,Agent 启动时读取它完成身份认证。

注册前建议在 Manager 的 /var/ossec/etc/ossec.conf 中确认 <auth> 段已启用,并设置合理的 <use_source_ip> 与 <purge> 策略,避免重复注册产生冗余条目。

二、Linux 主机 Agent 部署

以 Debian/Ubuntu 为例,先导入仓库密钥并添加源,再安装指定版本的 Agent。安装过程中会交互式询问 Manager IP 和 Agent 名称,也可以先跳过,安装后用命令行注册。

# 添加 Wazuh 仓库并安装 Agent(示例版本 4.7)
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor -o /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" \
  > /etc/apt/sources.list.d/wazuh.list
apt update && apt install -y wazuh-agent=4.7.0-1

# 注册密钥:向 Manager 的 1515 端口申请
/var/ossec/bin/agent-auth -m 192.168.10.20 -A web-node-01

# 启动并设置开机自启
systemctl daemon-reload
systemctl enable --now wazuh-agent
systemctl status wazuh-agent --no-pager

注册成功后,client.keys 中会出现一行形如 001 web-node-01 any <密钥> 的记录,其中 001 是 Manager 分配的 Agent ID。此时在 Manager 上执行 /var/ossec/bin/agent_control -l,应能看到该 Agent 状态为 Active。若显示 Never connected,优先检查 1514/tcp 是否放通、Agent 服务是否真正运行。

三、Windows 主机 Agent 部署

Windows 使用 MSI 安装包,支持静默安装并直接传入 Manager 地址与注册密钥。推荐在安装时通过 WAZUH_MANAGER 和 WAZUH_REGISTRATION_SERVER 参数完成自动注册,避免手工导入密钥。

msiexec.exe /i wazuh-agent-4.7.0-1.msi /q ^
  WAZUH_MANAGER="192.168.10.20" ^
  WAZUH_REGISTRATION_SERVER="192.168.10.20" ^
  WAZUH_AGENT_NAME="win-dc-01"

net start WazuhSvc
sc query WazuhSvc

安装完成后,服务名为 WazuhSvc,配置文件位于 C:\Program Files (x86)\ossec-agent\ossec.conf。若安装时未注册,可运行 agent-auth.exe -m 192.168.10.20 -A win-dc-01 补注册,再重启服务。Windows 端常见问题是防火墙拦截出站 1514/1515,或服务账户权限不足导致无法读取安全日志,可通过 ossec.log 中的 ERROR: (1216) 等错误码定位。

四、macOS 主机 Agent 部署

macOS 提供 pkg 安装包,安装后同样通过 agent-auth 注册。由于 macOS 对系统扩展和日志访问有额外限制,需要授予终端或 Agent 完全磁盘访问权限,否则无法采集统一日志(Unified Logging)。

sudo installer -pkg wazuh-agent-4.7.0-1.pkg -target /
sudo /Library/Ossec/bin/agent-auth -m 192.168.10.20 -A mac-dev-01
sudo /Library/Ossec/bin/wazuh-control start
sudo /Library/Ossec/bin/wazuh-control status

macOS 上服务由 wazuh-control 管理,也可通过 launchctl 查看守护进程。若采集不到日志,先确认 /Library/Ossec/etc/ossec.conf 中 localfile 的 location 是否指向正确的日志路径,并检查系统隐私设置。

Wazuh Agent 部署与注册数据流 Wazuh Manager authd :1515(密钥签发) remoted :1514(加密通信) agent_control -l 查看状态 Linux Agent apt/yum 安装包 agent-auth -m -A systemctl enable --now client.keys 落盘 Windows Agent msiexec /i /q WAZUH_MANAGER 参数 net start WazuhSvc agent-auth.exe 补注册 macOS Agent installer -pkg -target / agent-auth -m -A wazuh-control start 需完全磁盘访问权限 ① 注册请求 1515 ① 注册请求 1515 ① 注册请求 1515 ② 下发密钥 ② 下发密钥 ② 下发密钥 ③ 加密上报 1514/tcp → Manager 解析入库 → agent_control -l 显示 Active 异常判断:Never connected 查 1514 连通性;密钥冲突查 client.keys 与 authd 日志

五、服务管理与状态判断

三个平台的服务管理命令不同,但判断逻辑一致:服务进程存在、client.keys 有有效条目、Manager 侧显示 Active。Linux 用 systemctl status wazuh-agent,Windows 用 sc query WazuhSvc 或服务管理器,macOS 用 wazuh-control status。若服务反复重启,应查看 Agent 日志:Linux/macOS 在 /var/ossec/logs/ossec.log,Windows 在 C:\Program Files (x86)\ossec-agent\ossec.log。常见错误包括密钥不匹配、Manager 地址写错、端口被防火墙拦截。

六、批量注册方法

当主机数量达到几十上百台时,逐台手工注册不可行。推荐做法是:在镜像或自动化脚本中预置安装包,安装后统一调用 agent-auth 注册,Agent 名称使用主机名或资产编号保证唯一。下面是一个可参考的批量注册脚本片段,适用于 Linux 批量场景。

#!/bin/bash
# 批量注册示例:MANAGER 为 Manager 地址,AGENT_NAME 取主机名
MANAGER="192.168.10.20"
AGENT_NAME=$(hostname -s)

/var/ossec/bin/agent-auth -m "$MANAGER" -A "$AGENT_NAME"
systemctl restart wazuh-agent
systemctl is-active wazuh-agent

批量注册时要注意三点:一是 Agent 名称必须唯一,否则 Manager 会拒绝或产生冲突;二是 authd 默认对同一 IP 的重复注册有限制,可通过 <use_source_ip>no</use_source_ip> 调整;三是注册完成后应在 Manager 上批量核对 agent_control -l 输出,确认没有 Never connected 或 Disconnected 的条目。对于 Windows 批量部署,可结合组策略或配置管理工具推送 MSI 参数,实现安装即注册。

批量注册前务必确认 Manager 的 authd 服务已启动且 1515 端口可达;若使用域名注册,需保证所有 Agent 能正确解析该域名,否则会出现注册超时。

七、注册结果核对清单

检查项LinuxWindowsmacOS
密钥文件/var/ossec/etc/client.keysC:\Program Files (x86)\ossec-agent\client.keys/Library/Ossec/etc/client.keys
服务名wazuh-agentWazuhSvcwazuh-control
日志路径/var/ossec/logs/ossec.logossec-agent\ossec.log/Library/Ossec/logs/ossec.log
Manager 侧确认agent_control -l 显示 Active