zun-rhmn/wazuh-siem-lab
GitHub: zun-rhmn/wazuh-siem-lab
一个基于 Wazuh 的双蓝队 SIEM 实验环境,从三个日志源采集数据并配置五条自定义检测规则,覆盖完整的告警检测与调查流程。
Stars: 0 | Forks: 0
# Wazuh SIEM 实验环境
这是一个两人蓝队实验环境:单节点 Wazuh SIEM 从三个日志源收集数据,包含五条自定义检测规则,涵盖了从编写、测试到端到端分类处理的完整流程。
**构建者:** Zunan Rahman ([@zun_rhmn](https://github.com/zun-rhmn)) 和
Ali Devjiani ([@adevjiani](https://github.com/adevjiani))
**展示于:** Invest Vancouver,2026年8月10日
## 架构
```
Tailscale mesh network
|
+---------------------+---------------------+
| | |
wazuh-siem-manager ubuntu-zrahman win-adevjiani
(Ubuntu 24.04 LTS) (Ubuntu 24.04) (Windows 11)
Manager + Indexer Wazuh agent Wazuh agent
+ Dashboard auth.log, syslog Security log
VMware / Zunan Apache access/error Sysmon
VMware / Zunan VirtualBox / Ali
```
所有主机都加入了一个私有 Tailscale tailnet。Agent 通过其 MagicDNS 名称连接到 manager,因此该实验环境可以跨越两个不同的 hypervisor、两个家庭网络运行,并且在 IP 地址不断变化的情况下,无需任何端口转发或公网暴露即可正常工作。
| 组件 | 值 |
| --- | --- |
| Wazuh 版本 | 4.14(固定版本 — 请勿混合使用不同的次要版本) |
| Manager 地址 | `wazuh-siem-manager` |
| Manager FQDN | `wazuh-siem-manager.tailf359cd.ts.net` |
| Dashboard | `https://wazuh-siem-manager` |
| Manager OS | Ubuntu Server 24.04 LTS, 4 vCPU / 8 GB / 60 GB |
| 时区 | 每台主机均为 UTC |
## 日志源
| # | 来源 | 主机 | 收集内容 |
| --- | --- | --- | --- |
| 1 | Windows + Sysmon | `win-adevjiani` | 安全事件日志, Sysmon 操作日志 |
| 2 | Linux 认证 | `ubuntu-zrahman` | `/var/log/auth.log`, `/var/log/syslog` |
| 3 | Web 服务器 | `ubuntu-zrahman` | Apache `access.log`, `error.log` |
## 自定义检测
| 规则 ID | 所有者 | 检测内容 | 级别 |
| --- | --- | --- | --- |
| 100200 | Ali | 多次 Windows 登录失败 | 10 |
| 100201 | Ali | 可疑的 PowerShell 使用 | 9 |
| 100202 | Ali | 新用户被添加到 Administrators 组 | 12 |
| 100100 | Zunan | 频繁的 SSH 登录失败 | 10 |
| 100101 | Zunan | Web 404 爆发 / 可疑的 user-agent | 8 |
规则位于 `rules/` 目录中,按平台划分,这样我们两人就不会编辑同一个文件。有关 ID 范围和告警级别标准,请参阅 [`docs/conventions.md`](docs/conventions.md)。
## 仓库结构
```
.
|-- README.md
|-- .gitignore
|-- docs/
| |-- conventions.md # naming, ID ranges, alert levels -- read first
| |-- setup.md # full build steps, manager and agents
| `-- investigations/ # one writeup per triaged alert
|-- rules/
| |-- linux_rules.xml # Zunan -- 100100-100199
| `-- windows_rules.xml # Ali -- 100200-100299
|-- decoders/
|-- agent-configs/
| |-- ubuntu-agent.conf # blocks for auth/syslog/apache
| |-- windows-agent.conf # blocks for Security/Sysmon
| `-- sysmon-config.xml # shared -- install from this copy, not a download
|-- samples/ # raw log lines for offline rule testing
`-- screenshots/ # --.png
```
## 快速开始
### 前置条件
- 已安装并登录 Tailscale 客户端,**在宿主机和 VM 内部都要操作**
- 访问 tailnet 的权限(向 Zunan 请求邀请)
- Wazuh dashboard 账号
### 在进行任何操作之前,请先验证连通性
在将要运行 agent 的 VM 内部执行:
```
ping wazuh-siem-manager
```
如果此操作失败,请停止并进行修复。没有它,后续的任何操作都无法进行。请检查 VM 内部(不仅仅是宿主机上)的 Tailscale 客户端是否已连接,以及是否启用了“Use Tailscale DNS”。
### 注册 Agent
请使用 dashboard 的生成器,而不是手动拼凑命令:
**Dashboard -> Agents -> Deploy new agent**,然后选择操作系统,输入
`wazuh-siem-manager` 作为服务器地址,并根据规范文档输入 agent 名称。
Linux:
```
# 命令由 dashboard 生成 -- 仅为示例格式
wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.0-1_amd64.deb
sudo WAZUH_MANAGER='wazuh-siem-manager' WAZUH_AGENT_NAME='ubuntu-zrahman' \
dpkg -i ./wazuh-agent_4.14.0-1_amd64.deb
sudo systemctl enable --now wazuh-agent
```
Windows (管理员 PowerShell):
```
msiexec.exe /i wazuh-agent-4.14.0.msi /q `
WAZUH_MANAGER="wazuh-siem-manager" `
WAZUH_AGENT_NAME="win-adevjiani"
NET START WazuhSvc
```
然后确认 agent 在 dashboard 中显示为 **Active**。
### 部署规则更改
```
# 在本地编辑 rules/linux_rules.xml,提交,然后在 manager 上:
sudo cp rules/linux_rules.xml /var/ossec/etc/rules/
sudo /var/ossec/bin/wazuh-logtest # paste a sample line, confirm it fires
sudo systemctl restart wazuh-manager
```
## 离线规则开发
Manager 仅在 Zunan 的笔记本电脑开机时才运行,但您不需要它来编写或测试规则。`samples/` 保存了从每个来源捕获的原始日志行。在任何 Wazuh 安装环境中,将其中一行粘贴到 `wazuh-logtest` 中,以在将其应用到共享 manager 之前确认规则是否匹配。
每当您捕获到有用的内容时,请将其添加到 `samples/` 中 —— 这正是让我们两人能够互不阻碍地进行开发的关键。
## 运维说明
- **漏洞检测已禁用**,位于 `ossec.conf` 中。它的 CVE 数据源体积达数 GB,且与此项目无关。
- **Indexer 堆内存限制为 1 GB**,配置于 `/etc/wazuh-indexer/jvm.options` 中,低于默认值,以适配 8 GB 的 VM。
- **防火墙:** UFW 拒绝所有入站流量,除了 `tailscale0` 上的流量。Dashboard 和 agent 端口不会暴露给 LAN 或互联网。
- **如果 dashboard 正常加载但没有出现新的告警**,请首先检查宿主机的磁盘空间。当磁盘已满时,OpenSearch 会将索引切换为只读,其表现形式与损坏的 agent 完全一样。
## 展示的技能
SIEM 部署与管理 - 跨 Windows、Linux 和 Web 服务器的日志源接入 - 使用 Wazuh 规则语言进行检测工程 - 告警分类与调查 - 使用零信任网状 VPN 的安全网络设计 - 包含分支保护和同行评审的协作式 Git 工作流。
标签:Wazuh, 安全运营, 扫描框架, 网络安全研究