Wazuh:开源安全监控与入侵检测
Wazuh 安全监控入门教程
什么是 Wazuh?
Wazuh 是一个完全开源的安全监控平台,集成了入侵检测、日志分析、漏洞检测、文件完整性监控和合规性自动检查等能力,通常被归类为 SIEM(安全信息和事件管理)和 XDR(扩展检测与响应)工具。它支持部署在私有云、公有云、混合环境以及容器化环境中,帮助个人开发者、安全团队和企业实时发现威胁、分析安全事件并满足合规要求。
无论是保护一台 Web 服务器,还是管理数千个节点,Wazuh 都能提供统一的可视化仪表板,让安全运维变得直观高效。
核心功能
入侵检测
Wazuh 使用基于主机的入侵检测系统(HIDS)来监控系统调用、文件修改、进程行为等。当检测到异常模式(如 rootkit 活动、提权攻击、恶意软件执行)时,会立即生成告警。此外,它还可以集成 Suricata 或 Snort 的网络入侵检测数据,实现复合检测。
日志数据分析
平台能够收集和解析来自操作系统、应用程序、网络设备和云服务的日志。通过内置的数千条解码器和规则,自动将原始日志转化为结构化事件,并关联已知的攻击指纹。例如,一条 Apache web 日志中的 404 错误若频繁出现,可能被规则识别为“Web 漏洞扫描”。
文件完整性监控
Wazuh 可监控指定目录和文件的哈希值、权限、所有者、大小等属性变化。一旦文件被篡改(如 /etc/passwd 被修改),系统会立即发出高优先级告警。该功能对检测恶意软件植入、配置漂移或未授权的变更非常有效。
漏洞检测
Wazuh 定期扫描受管终端,识别已安装软件中存在的已知漏洞(CVE)。通过与公开漏洞数据库交叉比对,生成易读的漏洞报告,并给出修复建议。这有助于持续评估资产风险,替代传统周期性的漏洞扫描工具。
合规性检查
内置 PCI DSS、GDPR、HIPAA、CIS 等合规基线模板。只需在代理配置中启用相关模块,即可自动检查系统配置是否符合标准,并生成合规性报告。对于需要频繁审计的团队,这项功能可节省大量人工检查时间。
云与容器安全
支持 AWS、Azure、GCP 的审计和监控,能够拉取云平台日志(如 CloudTrail、VPC Flow Logs)并分析安全事件。同时提供 Docker 和 Kubernetes 环境的集成,监控容器进程、网络活动以及镜像漏洞。
架构概览
Wazuh 组件
Wazuh 采用经典的四层架构,各组件职责分明:
- Wazuh Server(管理器):核心分析引擎。接收来自代理的数据,执行解码、规则匹配、威胁检测,并将结果存入数据库。
- Wazuh Indexer:基于 OpenSearch 的索引和存储引擎,负责高效存储和检索安全事件、告警和日志。
- Wazuh Dashboard:基于 Web 的用户界面,提供交互式图表、事件列表、安全态势总览、配置管理等。
- Wazuh Agent:安装在需要监控的主机上,负责收集日志、系统指标、完整性数据并发送给服务器。单个管理器可支持数万个代理。
工作流程
- 代理收集数据并通过加密通道发送至管理器的 Remoted 服务。
- 管理器解析数据,应用解码器和规则,生成事件和告警。
- 数据被写入到 Filebeat,由 Filebeat 推送至 Indexer。
- Dashboard 从 Indexer 查询数据,以图形和表格方式呈现。
- 安全分析师通过 Dashboard 或 API 进行调查,并可配置自动化响应(如主动阻断 IP)。
快速部署(初学者指南)
以下方案适用于测试和学习,生产环境建议参考官方文档高可用部署。
环境要求
- 一台 Linux 虚拟机(CentOS 7+、Ubuntu 18.04+、Debian 10+),推荐 4 核 CPU、8 GB 内存、50 GB 磁盘。
- 为保证性能,请关闭 SELinux 或设置为宽容模式。
使用虚拟机或 Docker 一键部署
方案一:Virtual Appliance Wazuh 提供预构建的 OVA 虚拟机镜像,导入 VirtualBox 或 VMware 即可使用,所有组件已就绪,密码和网络配置见官方 Quickstart。
方案二:Docker 部署(最快) 在满足 Docker 环境的 Linux 主机上执行:
git clone https://github.com/wazuh/wazuh-docker.git -b v4.7.3
cd wazuh-docker/single-node
docker-compose -f generate-opendistro.yml up -d
此命令将启动一个包含 Manager、Indexer 和 Dashboard 的单节点集群。
安装 Wazuh Server 和 Dashboard
如果按 Docker 部署则已包含。若手动安装,可参考以下步骤摘要(以 CentOS 为例):
- 添加 Wazuh 仓库并安装
wazuh-manager。 - 安装 OpenSearch 和 OpenSearch Dashboards。
- 安装
wazuh-indexer和wazuh-dashboard。 - 运行配置脚本,设置初始密码。
- 启动所有服务并检查状态。
完成后,通过浏览器访问 https://<服务器IP>,使用默认账号(admin)和安装时设置的密码登录。
部署 Wazuh Agent
在需要监控的目标主机上安装 Wazuh Agent,并将其注册到 Manager。
在 Manager 端获取注册密码(默认在 /var/ossec/etc/authd.pass 或自定义)。
在目标主机(Linux)执行:
curl -s https://packages.wazuh.com/4.7/wazuh-install.sh | bash -s -- -i
然后配置代理文件 /var/ossec/etc/ossec.conf,将 MANAGER_IP 替换为你的 Manager 地址:
<client>
<server>
<address>MANAGER_IP</address>
</server>
</client>
启动代理:
systemctl start wazuh-agent
systemctl enable wazuh-agent
几分钟后,在 Dashboard 的 Agents 页面即可看到新代理上线。
基本操作
访问 Wazuh Dashboard
登录后,主界面分为多个模块:
- Security events:实时告警流。
- Agents:已注册代理列表及状态概览。
- Vulnerabilities:漏洞摘要。
- Compliance:合规基线评分。
- Management:规则、解码器、配置管理。
查看安全事件
点击 "Security events",可使用时间选择器过滤,每个事件包含严重级别、规则 ID、描述、源代理等信息。点击可展开详细原始日志和 JSON 字段。
监控代理状态
在 Agents 页面可查看各代理的在线状态、操作系统、最后连接时间。红色表示断开,绿色表示活跃。若代理异常,可远程重启或查看其日志。
配置解码器与规则
Wazuh 提供丰富的预定义规则,但你可以自定义。规则文件位于 Manager 的 /var/ossec/etc/rules/ 目录。例如,添加一条检测特定关键词的自定义规则:
<group name="local,syslog,sshd,">
<rule id="100001" level="10">
<match>illegal user</match>
<description>Custom SSH illegal user detection.</description>
</rule>
</group>
保存后重启 Manager。现在,任何匹配 "illegal user" 的 SSH 日志都会触发 10 级告警。
实战案例:检测 SSH 暴力破解
场景描述
攻击者对一台运行 SSH 的服务器进行密码爆破,尝试大量用户名和密码组合。Wazuh 需实时识别此类攻击并告警。
配置规则
Wazuh 默认包含 SSH 暴力破解规则(规则 ID 5712、5710 等),但可优化阈值。编辑 /var/ossec/etc/rules/sshd_rules.xml,找到规则 5712,调整 frequency 和 timeframe(例如 8 次失败登录 / 60 秒)。也可通过 Dashboard 的规则编辑器修改。
模拟攻击
在同一网络的另一台主机上,使用 hydra 工具对已安装代理的 SSH 服务器发动攻击:
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://目标IP
攻击开始后,短时间内会产生大量认证失败日志。
查看告警
在 Dashboard 的 Security events 界面,设置过滤条件 rule.groups:"authentication_failed" 或直接搜索 5712。你将看到一系列高严重度(level 10 或以上)的暴力破解告警,包含源 IP、目标用户、尝试次数等信息。还可启用自动响应(如临时封锁 IP),通过集成模块执行 firewall 或 host-deny 命令。
总结与资源
至此,你已了解 Wazuh 的基本概念、部署方式和基础操作,并能完成一个简单的入侵检测场景。Wazuh 的灵活性允许你扩展至容器安全、威胁情报集成、API 自动化、与外部 SIEM 联动等高级应用。
- 官方文档:https://documentation.wazuh.com
- 社区支持:https://wazuh.com/community/
- GitHub 仓库:https://github.com/wazuh
持续探索内置的模块,将 Wazuh 逐步融入你的安全运营体系,它将成为抵御威胁的坚实基石。