适用场景
Wazuh SIEM 部署适合需要统一收集服务器日志、实时检测入侵行为的中小企业安全团队。典型场景包括:多台 Linux 服务器分散部署、安全日志散落各处无法关联分析、需要满足等保合规对日志留存与审计的要求,以及希望在不购买商业 SIEM 的前提下获得主机入侵检测(HIDS)能力。Wazuh 同时承担日志管理、文件完整性监控(FIM)、漏洞检测和主动响应四类职责,一套平台即可覆盖常见的安全运营需求。
前置条件
- 一台 Ubuntu 22.04/24.04 或 CentOS 7+ 服务器,内存不低于 4GB,磁盘剩余空间 20GB 以上,用于安装 Wazuh 服务端(Manager + Indexer + Dashboard)
- 被监控主机支持 Linux(RHEL/Debian 系)或 Windows Server 2012+,用于安装 Agent
- 服务端与被监控主机之间开放 TCP 1514(Agent 通信)、TCP 55000(API)、TCP 443(Dashboard) 端口
- 服务器具备外网访问能力,用于下载 Wazuh 安装包与索引模板
原理说明
Wazuh 采用 C/S 架构:Agent 在被监控主机上采集系统事件、审计日志与文件哈希变化,通过加密通道上报给 Manager;Manager 负责解析、告警与存储,并将数据转发给 Indexer(基于 OpenSearch)做全文索引;Dashboard(基于 OpenSearch Dashboards)提供可视化查询与告警面板。Agent 端同时内置 FIM 模块(syscheck),通过定期计算文件哈希并与基线比对,发现被篡改的关键文件;主动响应模块则在告警触发时执行预定义命令(如封锁 IP、杀掉进程),实现自动化应急处置。
操作步骤
步骤一:安装 Wazuh 服务端
Wazuh 官方提供一键安装脚本,会自动部署 Manager、Indexer 与 Dashboard 三个组件:
# 以 root 执行,全程约 10-20 分钟
curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh
bash wazuh-install.sh -a
# 安装完成后查看初始 Dashboard 账号密码
tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
安装脚本末尾会打印 Dashboard 登录地址(https://服务器IP),默认账号 admin,密码在上一步解压的 wazuh-passwords.txt 中。首次登录时浏览器会提示证书不受信任,选择继续访问即可(生产环境请替换为正式证书)。
步骤二:在被监控主机安装并注册 Agent
在 Wazuh Dashboard 中点击 Add agent,选择对应操作系统后复制生成的安装命令。以 Ubuntu 为例:
curl -s https://packages.wazuh.com/4.x/wazuh-install.sh | bash -s -- agent 服务器IP
# 注册并启动(IP 替换为 Wazuh Manager 地址)
/var/ossec/bin/agent-auth -m 服务器IP -p 1515
systemctl enable --now wazuh-agent
回到 Dashboard 的 Agents 页面,约 1 分钟后新 Agent 会显示为 Active 状态。若一直处于 Disconnected,检查服务端防火墙是否放行 TCP 1514。
步骤三:启用 FIM 文件完整性监控
默认配置已监控 /etc、/usr/bin 等关键目录。如需增加自定义目录,编辑 Agent 端配置文件:
# /var/ossec/etc/ossec.conf,在 <syscheck> 段内新增
<directories check_all="yes">/var/www/html</directories>
# 重启 Agent 生效
systemctl restart wazuh-agent
修改完成后,在 Dashboard 的 Security events → Integrity monitoring 页面可实时查看新增、删除、修改的文件事件,包括变更前后的哈希值与操作用户。
步骤四:配置主动响应(可选)
当检测到 SSH 暴力破解时自动封锁攻击 IP,需要在 Manager 的 ossec.conf 中配置:
# /var/ossec/etc/ossec.conf,<ossec_config> 段内新增
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5710,5715</rules_id>
<timeout>600</timeout>
</active-response>
# 重启 Manager 生效
systemctl restart wazuh-manager
rules_id 5710/5715 对应 SSH 多次认证失败规则,600 秒后自动解封。
配置验证
# 查看 Manager 服务状态,应均为 active (running)
systemctl status wazuh-manager wazuh-indexer wazuh-dashboard --no-pager
# 验证 Agent 与 Manager 通信(Agent 端执行)
/var/ossec/bin/agent_control -l # 服务端查看 Agent 列表,状态应为 Active
# 验证日志采集:在被监控主机执行一条错误登录
ssh root@localhost 2>/dev/null || echo "fail"
# 随后在 Dashboard 的 Discover 中搜索 rule.id:5710,应出现告警
常见问题
FAQ 1:Agent 一直显示 Disconnected 怎么办?
依次排查:确认服务端 TCP 1514 端口已放行;在 Agent 端执行 tail -f /var/ossec/logs/ossec.log 查看连接错误;确认 Manager 的 ossec-authd 进程在监听 1515 端口(ss -lntp | grep 1515)。若 Agent 注册失败,可先执行 agent-auth -m 服务器IP 手动注册。
FAQ 2:Wazuh 是否免费?数据量大了性能如何?
Wazuh 核心功能(HIDS、FIM、日志分析、主动响应)完全开源免费,仅企业级托管与部分高级支持需要付费订阅。数据量方面,单台 4GB 内存的 Manager 可稳定承载 50-100 台 Agent;Indexer 建议与 Manager 分机部署,并配置索引生命周期策略(ILM)定期归档旧日志。
总结
本文完整演示了 Wazuh SIEM 平台的部署与核心模块配置:一键安装服务端、Agent 批量接入、FIM 文件完整性监控与主动响应联动。Wazuh 以零授权成本提供了商业 SIEM 的核心能力,适合预算有限但亟需日志审计与入侵检测能力的中小团队。上线后建议定期检查 Dashboard 告警面板、配置邮件通知,并将 Agent 纳入新服务器初始化流程,形成持续的安全监控闭环。