realSahaj-Gautam/Wazuh-Home-Lab-SIEM-Setup
GitHub: realSahaj-Gautam/Wazuh-Home-Lab-SIEM-Setup
一份完整的Wazuh SIEM家庭实验室搭建教程,指导安全从业者在虚拟化环境中从零构建企业级安全监控平台并掌握日志分析、文件完整性监控等核心技能。
Stars: 0 | Forks: 0
# Wazuh SIEM 家庭实验室 - 安全监控与文件完整性检测
## 目标
本项目的主要目标是使用开源安全平台 Wazuh 构建并部署功能齐全的安全信息与事件管理 (SIEM) 系统。这个家庭实验室展示了安全运营中心 (SOC) 中至关重要的企业级安全监控、日志分析和文件完整性监控能力。该项目模拟了企业级安全基础设施,由中央 Manager 实时收集和分析来自分布式 Endpoint 的安全事件。
### 关键目标
- 在 Ubuntu Server 上成功部署 Wazuh Manager,实现集中式安全监控
- 在 Windows 端点上安装和配置 Wazuh agent 进行日志收集
- 实施文件完整性监控 (FIM) 以检测未授权的文件更改
- 通过 Wazuh dashboard 分析安全事件和告警
- 理解 SOC 架构和 agent-manager 通信协议
- 使用 NAT port forwarding 解决现实世界的网络挑战
## 掌握的技能
### 技术技能
- **SIEM 实施与管理** - 使用 Wazuh 4.7.5 部署和配置企业级安全监控基础设施
- **Linux 系统管理** - 管理 Ubuntu Server 20.04,包括通过 CLI 进行软件包安装、服务管理和网络配置
- **Windows 端点安全** - 配置 Wazuh 安全代理、修改系统配置以及通过 PowerShell 管理 Windows 服务
- **网络架构** - 在不使用桥接网络的情况下,设计并实施 Manager 与 Agent 之间安全的 NAT port forwarding 通信
- **日志分析** - 解读安全事件,分析告警严重级别,并关联安全事件
- **文件完整性监控** - 配置关键目录的实时监控,以检测文件修改、创建和删除
- **安全事件关联** - 分析安全告警模式并理解规则级别严重性分类
- **故障排除** - 诊断并解决代理连接问题、服务故障和配置错误
- **MITRE ATT&CK Framework** - 观察将 Windows 安全事件实时映射到 ATT&CK 战术和技术
## 使用的工具
| 工具 | 用途 |
|---||
| **Wazuh 4.7.5** | 用于安全监控和威胁检测的开源 SIEM 和 XDR 平台 |
| **Ubuntu Server 20.04 LTS** | 托管 Wazuh Manager 基础设施的操作系统 |
| **Windows 11 Home** | 运行 Wazuh agent 进行监控的端点系统 |
| **VirtualBox 7.2.6** | 用于创建隔离实验室环境的虚拟化平台 |
| **Wazuh Indexer** | 基于 OpenSearch 构建的中央分析引擎,用于处理安全事件和生成告警 |
| **Wazuh Dashboard** | 用于安全事件日志的数据存储和搜索引擎(基于 OpenSearch) |
| **Wazuh Dashboard** | 用于可视化安全数据和管理平台的 Web 界面 |
| **Filebeat** | 用于将数据转发到 Indexer 的日志传送组件 |
| **Wazuh Agent** | 用于数据收集的轻量级端点监控代理 |
| **PowerShell** | 用于代理管理和服务的 Windows 命令行界面 |
| **OpenSSH** | 从 Windows 主机安全远程访问 Ubuntu VM |
| **Windows Terminal** | 用于远程管理 Ubuntu VM 的 SSH 客户端 |
## 网络架构
```
Physical Network: 192.168.2.0/24
│
├── Windows 11 Host (192.168.2.12)
│ ├── Wazuh Agent v4.7.5 (WazuhSvc)
│ └── Chrome Browser → https://127.0.0.1
│
└── VirtualBox (NAT + Port Forwarding)
└── Ubuntu Server 20.04 VM
├── IP: 10.0.2.15 (internal NAT)
├── Wazuh Indexer (port 9200)
├── Wazuh Manager (port 1514, 1515)
├── Wazuh Dashboard (port 443)
└── Filebeat
Port Forwarding Rules:
Host 127.0.0.1:2222 → VM 10.0.2.15:22 (SSH)
Host 127.0.0.1:443 → VM 10.0.2.15:443 (Dashboard)
Host 127.0.0.1:1514 → VM 10.0.2.15:1514 (Agent logs)
Host 127.0.0.1:1515 → VM 10.0.2.15:1515 (Agent enrollment)
```
## 步骤 1:环境准备
**目标:** 为 SIEM 实验室搭建基础虚拟化基础设施
- 下载并安装 **VirtualBox 7.2.6** 作为 Hypervisor
- 下载 **Ubuntu Server 20.04.6 LTS** (`ubuntu-20.04.6-live-server-amd64.iso` - 1.4GB,无 GUI 的服务器版本,以最大化 Wazuh 的资源)
- 使用以下规格创建新的虚拟机:
| 设置 | 值 | 原因 |
|---|---|---|
| RAM | 8192 MB (8GB) | Wazuh Indexer + Manager 对内存需求较高 |
| 存储 | 50GB (动态) | 安全日志会随时间累积 |
| CPU | 2 核心 | Wazuh 组件的最低要求 |
| 网络 | NAT + 端口转发 | 解决 VirtualBox 7.x 桥接适配器 Bug 的变通方案 |
| 适配器类型 | Intel PRO/1000 MT Desktop | VirtualBox 默认适配器 |
- 使用以下配置安装 Ubuntu Server:
- **服务器名称:** `wazuh-manager`
- **用户名:** `wazuh`
- **OpenSSH Server:** 在安装过程中启用以便远程访问
- **Featured Snaps:** 未选择(干净的最小化安装)
- **网络挑战与解决方案:** Windows 上的 VirtualBox 7.2.6 有一个已知 Bug,即 Bridged Adapter 名称下拉菜单中没有显示可用的适配器。通过使用 **NAT 网络加端口转发规则** 代替桥接网络解决此问题,实现了相同的实验室功能
- 配置了 4 条端口转发规则以通过 NAT 启用完整的 Wazuh 功能:
```
Name Protocol Host IP Host Port Guest IP Guest Port
SSH TCP 127.0.0.1 2222 10.0.2.15 22
Wazuh-UI TCP 127.0.0.1 443 10.0.2.15 443
Wazuh-Agent TCP 127.0.0.1 1514 10.0.2.15 1514
Wazuh-Enroll TCP 127.0.0.1 1515 10.0.2.15 1515
```
- 从 Windows Terminal 验证 SSH 连接:
```
ssh -p 2222 wazuh@127.0.0.1
```
## 步骤 2:Wazuh Manager 安装
**目标:** 使用 Wazuh 官方安装助手部署中央 SIEM 管理服务器
通过 Windows Terminal 经 SSH 连接到 VM 并运行以下命令:
- 更新 Ubuntu 软件包仓库:
```
sudo apt-get update && sudo apt-get upgrade -y
```
- 下载 Wazuh 安装助手和配置文件:
```
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
curl -sO https://packages.wazuh.com/4.7/config.yml
```
- 使用 localhost 地址配置 `config.yml`(单节点 NAT 设置所需):
```
nodes:
indexer:
- name: node-1
ip: "127.0.0.1"
server:
- name: wazuh-1
ip: "127.0.0.1"
dashboard:
- name: dashboard
ip: "127.0.0.1"
```
- 生成 SSL 证书和配置文件:
```
sudo bash wazuh-install.sh --generate-config-files
```
- 单独安装每个 Wazuh 组件(分步进行以充分理解):
```
# 步骤 1 - 安装 Wazuh Indexer (基于 OpenSearch 的存储引擎)
sudo bash wazuh-install.sh --wazuh-indexer node-1
# 步骤 2 - 初始化并启动 indexer 集群
sudo bash wazuh-install.sh --start-cluster
# 步骤 3 - 安装 Wazuh Manager + Filebeat
sudo bash wazuh-install.sh --wazuh-server wazuh-1
# 步骤 4 - 安装 Wazuh Dashboard (Web 界面)
sudo bash wazuh-install.sh --wazuh-dashboard dashboard
```
- 安装成功完成,安装结束时显示了自动生成的管理员凭据
- 验证所有服务正在运行:
```
sudo systemctl status wazuh-indexer
sudo systemctl status wazuh-manager
sudo systemctl status wazuh-dashboard
```
## 步骤 3:访问 Wazuh Dashboard
**目标:** 验证 Manager 安装成功并探索界面
- 在 Windows 主机上打开 Chrome 浏览器并导航至:
```
https://127.0.0.1
```
- 接受自签名 SSL 证书警告(在实验室环境中预期会出现 - 证书在安装期间自动生成)
- 使用自动生成的管理员凭据登录:
- **用户名:** `admin`
- **密码:** (安装期间生成 - 显示在安装脚本结束时)
- 成功访问 Wazuh dashboard 主页
- 探索可用的安全模块:
- Security Information Management (Security events, Integrity monitoring)
- Auditing and Policy Monitoring (Policy monitoring, System auditing, SCA)
- Threat Detection and Response
- Regulatory Compliance (PCI DSS, HIPAA, GDPR)
- MITRE ATT&CK mapping
- 观察到 "No agents were added to this manager" 提示及 "Add agent" 按钮
- 确认此时 dashboard 显示 0 个活跃代理
## 步骤 4:Windows Agent 安装
**目标:** 在 Windows 端点上安装监控代理
- 从 Wazuh Dashboard,点击黄色横幅中的 **"Add agent"**
- 选择部署选项:
- **OS:** Windows
- **架构:** x86_64
- **Wazuh 服务器地址:** `127.0.0.1`
- **Agent 名称:** `Windows-Host`
- 在 Windows 上以 **管理员身份在 PowerShell 中** 执行生成的安装命令:
```
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.5-1.msi -OutFile $env:tmp\wazuh-agent.msi; msiexec.exe /i $env:tmp\wazuh-agent.msi /q WAZUH_MANAGER='127.0.0.1' WAZUH_AGENT_NAME='Windows-Host'
```
- Agent 静默安装到默认目录:`C:\Program Files (x86)\ossec-agent\`
- 启动 Wazuh agent 服务:
```
NET START WazuhSvc
```
## 步骤 5:Agent 注册与认证
**目标:** 在 Agent 和 Manager 之间建立安全通信
使用了 Wazuh 现代的 **自动注册方法**(在 Wazuh 4.x 中引入),Agent 在首次连接时自动与 Manager 交换加密密钥——无需像旧版本那样进行手动密钥提取和配置。
- Agent 自动连接到 Manager 的 **1515** 端口进行注册
- Manager 向 Agent 颁发唯一的认证密钥
- Agent 自动分配 **ID: 001**
- 在 **1514** 端口建立安全的加密通信以进行持续的日志传输
- 从 Ubuntu VM 验证注册:
```
sudo /var/ossec/bin/manage_agents -l
```
## 步骤 6:验证 Agent 连接
**目标:** 确认 Agent-Manager 通信成功
- 返回 Wazuh Dashboard 并刷新 Agents 页面
- 确认 Agent 详情:
| 字段 | 值 |
|---|---|
| **Agent ID** | 001 |
| **Name** | Windows-Host |
| **IP Address** | 127.0.0.1 (NAT) |
| **Operating System** | Microsoft Windows 11 Home Single Language 10.0.26200.8117 |
| **Status** | ● Active |
| **Version** | v4.7.5 |
| **Cluster Node** | node01 |
- 在 Dashboard 中确认 **Active: 1**,**Agents Coverage: 100%**
- 验证已建立双向通信(Agent 发送日志,Manager 接收并分析)
- 安全事件立即开始填充 Dashboard
## 步骤 7:安全事件分析
**目标:** 分析从 Windows 端点收集的真实安全数据
在 Agent 连接后的几分钟内,Dashboard 填充了真实的安全数据:
### 收集的事件
- **总安全事件:** 407(在首次会话中)
- **认证成功:** 3
- **严重告警 (Level 12+):** 0
- **Agent 覆盖率:** 100%
### 检测到的告警组
- `sca` - 安全配置评估检查
- `ossec` - 核心 Wazuh 引擎事件
- `authentication_success` - Windows 登录跟踪
- `rootcheck` - Rootkit 和异常检测
- `windows` - Windows 特定事件日志条目
### 值得注意的安全发现
生成了一个 **Level 9 "Windows malware detected"** 告警 (Rule ID: 513),展示了 Wazuh 实时检测端点上可疑活动的能力。
### MITRE ATT&CK 映射
Windows 登录事件被自动映射到 **MITRE ATT&CK Technique T1078 (Valid Accounts)**,涵盖战术:Defense Evasion、Persistence、Privilege Escalation 和 Initial Access——展示了 Wazuh 如何将正常系统事件与真实 SOC 团队使用的威胁情报框架相关联。
### 合规性 Dashboard 活跃
- PCI DSS 要求:2.2, 2.2.5, 4.1, 7.1, 10.6.1
- CIS Microsoft Windows 基准
- 实时合规性评分
## 每日启动程序
```
# 1. 启动 VirtualBox 并引导 Wazuh-Manager VM
# 2. 从 Windows Terminal SSH 连接到 VM
ssh -p 2222 wazuh@127.0.0.1
# 3. 启动所有 Wazuh 服务
sudo systemctl start wazuh-indexer
sudo systemctl start wazuh-manager
sudo systemctl start wazuh-dashboard
# 4. 在浏览器中访问 dashboard
# https://127.0.0.1
# 5. 启动 Windows agent (以管理员身份运行 PowerShell)
NET START WazuhSvc
```
```
# 关机流程
sudo systemctl stop wazuh-dashboard
sudo systemctl stop wazuh-manager
sudo systemctl stop wazuh-indexer
sudo shutdown now
```
## 步骤 8:文件完整性监控测试
**目标:** 通过实际测试验证 FIM 功能
### 测试 1:文件创建
- 在 Windows 上导航至 `C:\Users\[username]\WazuhTest` 目录
- 右键单击 → 新建 → 文本文档
- 将文件命名为 `test1.txt` 并保存
**在 Wazuh Dashboard 上:**
- 导航至 "File Integrity Monitoring" 模块
- 点击 "Refresh" 并观察到 5 秒内出现新告警
- 点击告警以检查详情:
- **事件类型:** 文件已添加
- **文件路径:** `C:\Users\[username]\WazuhTest\test1.txt`
- **时间戳:** 确切的创建时间
- **Agent:** Windows-Host (001)
- **文件属性:** 大小、权限、所有权
- **哈希值:** MD5, SHA1, SHA256 校验和
### 测试 2:文件删除
- 返回 WazuhTest 目录
- 删除 `test1.txt`(右键单击 → 删除)
- 确认删除
**在 Wazuh Dashboard 上:**
- 刷新 File Integrity Monitoring 视图
- 出现新告警:
- **事件类型:** 文件已删除
- **文件路径:** `C:\Users\[username]\WazuhTest\test1.txt`
- **时间戳:** 确切的删除时间
- **以前的文件详情:** 保留用于审计追踪
### 结果
- 文件创建和删除事件均在实时中被检测到(< 5 秒)
- 保留了包含完整文件元数据的完整审计追踪
- 告警按严重性(Rule level)正确分类
- 演示了成功的 FIM 实施
## 步骤 9:告警分析与 Dashboard 探索
**目标:** 理解和分析真实安全事件数据及 SIEM 能力
### 分析的告警统计(过去 24 小时)
| 严重性 | 规则级别 | 告警计数 |
|---|---|---|
| **Critical** | Level 15+ | 0 条告警 |
| **High** | Level 12-14 | 0 条告警 |
| **Medium** | Level 7-11 | 145 条告警 |
| **Low** | Level 0-6 | 159 条告警 |
| **总计** | 所有级别 |304 条告警 |
### 探索的安全模块
- **Configuration Assessment** - 扫描 Windows 系统配置以发现安全弱点
- **Malware Detection** - 检查入侵指标和恶意文件
- **Threat Hunting** - 审查安全告警以寻找需要调查的潜在威胁
- **Vulnerability Detection** - 识别已安装软件中的已知漏洞
- **MITRE ATT&CK Mapping** - 将告警与对手战术和技术相关联
### 审查的日志来源
- Windows Event Logs (Security, System, Application)
- Syscheck (File Integrity Monitoring) 事件
- Registry 监控事件
- Process execution 日志
## 步骤 10:文档与知识整合
**目标:** 为作品集和未来参考记录项目
- 截取了以下内容的截图:
- 显示活跃代理和告警统计的 Wazuh Dashboard 概览
- 显示已注册代理详情的 Endpoints 页面
- File Integrity Monitoring 告警
- 创建了全面的项目文档,包括:
- 显示网络拓扑的架构图
- 分步安装程序
- 使用的配置文件和命令
- 故障排除笔记和经验教训
- 组织 GitHub 仓库的项目文件:
- 包含完整项目详情的 `README.md`
- 包含带注释图片的 `screenshots/` 目录
- 包含指南和参考资料的 `documentation/` 目录
- 准备项目用于版本控制和作品集展示
## 步骤 11:测试与验证
**目标:** 确保所有组件正常运行
- 验证代理在系统重启后保持连接
- 使用多种文件操作测试 FIM:
- 文件修改
- 多个文件创建
- 文件夹操作
- 确认日志在 Dashboard 中被保留且可搜索
- 验证告警严重级别是否适当
- 测试 Dashboard 过滤和搜索功能
- 确认所有安全模块运行正常
## 主要收获
该实验室成功演示了企业级 SIEM 平台在技术层面的运作方式。通过单独部署每个 Wazuh 组件——Indexer、Manager、Filebeat 和 Dashboard——而不是使用一体化脚本,我深入理解了每一层如何为安全监控 Pipeline 做出贡献。VirtualBox 桥接适配器 Bug 这一现实世界的网络挑战,需要设计 NAT 端口转发解决方案,这反映了安全团队在生产环境中如何在网络边界间路由流量。在连接 Windows 代理后的几分钟内,平台就在检测真实的安全事件,将其映射到 MITRE ATT&CK 技术,并标记出真正的恶意软件检测告警——证明即使是家庭实验室环境也能展现真实的安全信号。
## 项目截图
### 1. 安装完成

*终端输出显示 Wazuh 4.7.5 在 Ubuntu Server 20.04 上通过 SSH 从 Windows Terminal 成功安装完成。安装日志确认所有四个组件均已成功部署 - Wazuh Dashboard 安装完成,wazuh-dashboard 服务已启动,keystore 已更新,Web 应用程序已初始化。最后一行 "Installation finished" 确认整个 Wazuh stack (Manager, Indexer, Dashboard 和 Filebeat) 已完全运行并准备好接受代理连接。*
### 2. Wazuh 登录页面

*通过 NAT 端口转发(主机端口 443 → VM 端口 443)在 Windows 主机上通过 `https://127.0.0.1` 访问的 Wazuh dashboard 登录界面。登录屏幕显示 Wazuh 品牌及 "The Open Source Security Platform" 标语,用户名字段预填了 "admin" 以及密码字段。浏览器地址栏中的 "Not secure" 指示符在实验室环境中是预期的,因为 Wazuh 使用安装期间自动生成的自签名 SSL 证书。*
### 3. Wazuh Dashboard 概览

*主 Wazuh dashboard 主页显示实时代理摘要和可用的安全模块。代理摘要小组件确认了 1 个总代理,1 个活跃代理,0 个已断开连接,0 个待处理,以及 0 个从未连接——表明 100% 的代理覆盖率。Dashboard 显示所有可用的安全模块,分为四类:Security Information Management (Security events, Integrity monitoring),Auditing and Policy Monitoring (Policy monitoring, System auditing, Security configuration assessment),Threat Detection and Response (Vulnerabilities, MITRE ATT&CK),以及 Regulatory Compliance (PCI DSS, NIST 800-53)。*
### 4. 活跃端点 - Windows Agent

*Wazuh Agents 管理页面确认代理注册成功且通信活跃。状态面板显示 Active: 1, Disconnected: 0, Pending: 0, Never connected: 0,Agents coverage 为 100%。代理表显示完整的端点详情 - ID: 001, Name: Windows-Host, IP Address: 127.0.0.1(通过 NAT 端口转发),Groups: default, Operating System: Microsoft Windows 11 Home Single Language 10.0.26200.8117, Cluster node: node01, Version: v4.7.5, Status: active(绿色指示符)。右侧的 Evolution 图表显示过去 24 小时内的持续活跃连接。*
### 5. Agent 分析 - Windows-Host 详细视图

*Windows-Host 端点 (ID: 001) 的详细代理视图,显示全面的实时监控数据。代理元数据确认:Status: active, IP: 127.0.0.1, Version: Wazuh v4.7.5, Group: default, OS: Microsoft Windows 11 Home, Cluster node: node01, Registration date: Apr 2, 2026 @ 15:40:19.000, Last keep-alive: Apr 2, 2026 @ 18:24:40.000。MITRE ATT&CK 面板显示检测到的顶级战术 - Defense Evasion (79), Persistence (79), Privilege Escalation (79), 和 Initial Access (78)。PCI DSS Compliance 环形图显示活跃的合规性监控,涵盖要求 2.2 (397 events), 10.2.5 (78), 2.2.5 (53), 4.1 (44), 和 10.6.1 (28)。Events count evolution 图表显示在初始代理连接期间有 400+ 个事件的显著峰值。SCA Latest scans 部分显示 CIS Microsoft Windows 11 Enterprise Benchmark v1.0.0 扫描已完成,128 项通过,259 项失败,8 项不适用——得分 33% 合规性。*
### 6. 安全事件 Dashboard

*Security Events 模块显示 Windows-Host 代理的综合实时 Windows 安全监控数据。共收集 512 个安全事件,其中 0 个 Level 12+ 严重告警,0 次认证失败,以及 78 次认证成功。Alert groups evolution 图表显示多个事件类别 - sca, ossec, authentication_success, rootcheck, windows, windows_security, windows_application, policy_changed, windows_system - 在初始代理连接期间有主要峰值。Top 5 alerts 包括 Windows logon success, Software protection events, Service startup types, 和 CIS Microsoft Windows checks。Top 5 rule groups 显示 sca, windows, authentication_success, windows_security, 和 windows_application。Top 5 PCI DSS Requirements 图表显示活跃的合规性映射到要求 2.2, 10.2.5, 2.2.5, 4.1, 和 10.6.1。底部的 Security Alerts 表显示实时的 MITRE ATT&CK 映射事件 — 多个 T1078 (Valid Accounts) 技术检测映射到 Defense Evasion, Persistence, Privilege Escalation, 和 Initial Access 战术。*
## 参考
- **Wazuh 官方文档:** https://documentation.wazuh.com/
- **Wazuh GitHub:** https://github.com/wazuh/wazuh
- **项目教程:** [TheSocialDork - Wazuh SIEM Setup](https://www.youtube.com/watch?v=QT81wcuoRFY&list=WL&index=4&t=1s)
- **MITRE ATT&CK:** https://attack.mitre.org/
## 作者
**Sahaj Gautam**
网络安全爱好者 | 安全分析师
- 电子邮件: sahaj.gautam14@gmail.com
- LinkedIn: https://www.linkedin.com/in/sahaj-gautam-1648771b3/
*本项目展示了企业安全工具的实践网络安全技能和实际经验。作为网络安全领域持续学习和专业发展的一部分而构建。*
**项目状态:** ✅ 已完成 | 🟢 运行中
**最后更新:** 2026 年 4 月
标签:AI合规, AMSI绕过, BurpSuite集成, EDR, HTTP工具, IPv6, NAT端口转发, OISF, PowerShell, Wazuh, Wazuh Agent, Wazuh Manager, Windows终端安全, x64dbg, 企业安全架构, 威胁检测, 安全事件管理, 安全实验室, 安全运营中心, 家庭实验室, 无线安全, 日志管理, 架构部署, 端点检测与响应, 系统管理员, 网络安全, 网络安全审计, 网络映射, 脆弱性评估, 脱壳工具, 自定义DNS解析器, 速率限制, 隐私保护