m-mehdi-sec/opnsense-wazuh-threat-monitoring-lab
GitHub: m-mehdi-sec/opnsense-wazuh-threat-monitoring-lab
一个完整的蓝队实验室搭建指南,演示如何使用 Wazuh 和 OPNsense 构建端点监控与威胁检测环境。
Stars: 0 | Forks: 0
# OPNsense Wazuh 威胁监控实验室
## 概述
本项目记录了一次动手实践的蓝队实验室经历,我在一个虚拟化的 Hyper-V 环境中,将 Wazuh 作为 SIEM 和端点监控平台进行了部署。
该实验室结合了 OPNsense 防火墙日志记录、Windows 端点监控、Wazuh 代理、syslog 转发、身份验证事件分析和威胁狩猎。重点不仅在于安装工具,还在于验证日志是否确实在环境中流转并可用于安全监控。
该实验室基于一家拥有独立 HR(人力资源)和 Support(技术支持)网段的中型公司场景。环境根据我现有的 Hyper-V 和 OPNsense 实验室设置进行了适配。
所有测试均在隔离的本地实验室环境中进行,仅用于教育和防御性安全目的。
## 实验室目标
本实验室的主要目标是了解 Wazuh 如何通过将漏洞扫描与实时监控和日志分析相结合来增强网络防御。
实验室重点关注:
- 在 Ubuntu Server 上部署 Wazuh Server
- 在 Windows 端点上安装 Wazuh 代理
- 监控 Windows 身份验证事件
- 检测失败的登录尝试
- 模拟暴力破解活动
- 模拟可疑的登录活动
- 使用 syslog 将 OPNsense 日志转发到 Wazuh
- 使用 tcpdump 验证 syslog 流量
- 排查 Wazuh 日志获取问题
- 在 Wazuh Threat Hunting(威胁狩猎)中审查事件
- 了解为什么某些警报需要自定义规则或调优
## 实验室环境
| 系统 | 角色 | IP 地址 | 网络 |
|---|---|---:|---|
| OPNsense | 防火墙 / 网关 | 192.168.10.1 | LAN |
| Wazuh_Server | Wazuh Manager / Dashboard | 192.168.10.150 | LAN |
| HR_Client | Windows 端点 / HR 用户 | 192.168.10.101 | LAN |
| Support_Client | Windows 端点 / Support 用户 | 192.168.30.101 | Support_LAN |
## 网络段
| 网络 | 用途 | 网关 |
|---|---|---:|
| 192.168.10.0/24 | 主 LAN / HR / Wazuh Server | 192.168.10.1 |
| 192.168.30.0/24 | Support 网络 | 192.168.30.1 |
原始作业使用的 IP 计划略有不同,但实验室经过调整以适应我现有的 Hyper-V 和 OPNsense 环境。核心安全目标保持不变:网络分段、端点监控、防火墙日志记录和通过 Wazuh 进行集中分析。
## 工具和技术
| 工具 / 技术 | 用途 |
|---|---|
| Hyper-V | 虚拟化平台 |
| OPNsense | 防火墙、网关和 syslog 源 |
| Ubuntu Server | Wazuh Server 的操作系统 |
| Wazuh | SIEM、端点监控和威胁检测 |
| Windows 11 | HR 和 Support 端点客户端 |
| PowerShell | Wazuh 代理安装 |
| Command Prompt | 登录和流量模拟 |
| Syslog | 从 OPNsense 到 Wazuh 的日志转发 |
| tcpdump | 验证传入的 syslog 流量 |
| Wazuh Threat Hunting | 事件分析和警报审查 |
| Linux CLI | 服务器配置和故障排查 |
## 网络拓扑
Hyper-V 实验室环境
Internet
|
Default Switch
|
OPNsense Firewall
192.168.10.1
|
-------------------------------------------------
| |
LAN-Switch Support_LAN_Switch
192.168.10.0/24 192.168.30.0/24
| |
| |
---------------------- -------------------
| | |
Wazuh_Server HR_Client Support_Client
192.168.10.150 192.168.10.101 192.168.30.101
Wazuh SIEM HR endpoint Support endpoint
## 实施总结
### 1. Hyper-V 准备
检查并整理了现有的 Hyper-V 环境以用于本实验室。
虚拟机已重命名或使用更清晰的名称进行了组织:
| 虚拟机名称 | 用途 |
|---|---|
| OPNsense_Firewall | 防火墙和网关 |
| Wazuh_Server | Wazuh SIEM 服务器 |
| HR_Client | Windows HR 端点 |
| Support_Client | Windows Support 端点 |
在可能的情况下重用了现有的虚拟交换机,而不是创建不必要的新交换机。这使得实验室更加贴近实际,因为必须对配置进行调整以适应现有环境。
### 2. OPNsense 网络配置
OPNsense 被用作实验室网络之间的防火墙和网关。
主 LAN 用于 HR 和 Wazuh:
LAN: 192.168.10.1/24
Support 网络配置为:
Support_LAN: 192.168.30.1/24
经验证,Support 接口处于活动状态且可访问。
### 3. Wazuh Server 配置
Ubuntu Server 被用作 Wazuh 服务器。
Wazuh 服务器配置了静态 IP 地址:
IP address: 192.168.10.150
Subnet mask: 255.255.255.0
Gateway: 192.168.10.1
DNS: 8.8.8.8 / 1.1.1.1
通过以下命令验证了连接性:
ping 192.168.10.1
ping 8.8.8.8
两项测试均成功。
### 4. Wazuh 安装
使用自动安装脚本安装了 Wazuh:
sudo apt update
sudo apt install -y curl
curl -sO https://packages.wazuh.com/4.10/wazuh-install.sh
sudo bash wazuh-install.sh -a
在首次安装尝试期间,Wazuh 报告虚拟机未满足推荐的最低硬件要求。
虚拟机资源已调整为:
Memory: 4096 MB
Processors: 2 virtual CPUs
增加资源后,安装成功完成。
通过以下地址访问了 Wazuh Dashboard:
https://192.168.10.150
使用了安装时生成的管理员密码。尝试从 Dashboard 更改内置管理员密码失败,因为 admin 用户在此 Wazuh 版本中是保留的,因此实验室保留了生成的密码。
### 5. Wazuh 代理部署
通过 Wazuh Dashboard 使用“Deploy new agent”选项部署了 Wazuh 代理。
HR 端点配置为:
Agent name: HR_Anstalld
IP address: 192.168.10.101
Wazuh Server: 192.168.10.150
Support 端点配置为:
Agent name: Support_Anstalld
IP address: 192.168.30.101
Wazuh Server: 192.168.10.150
在每个 Windows 客户端上以管理员身份执行了生成的 PowerShell 安装命令。
代理服务通过以下命令启动:
NET START WazuhSvc
两个代理均已在 Wazuh Dashboard 中确认为活动状态。
## 威胁模拟与检测
### 1. 暴力破解登录模拟
在 HR 客户端上模拟了失败的登录尝试。
通过以下命令检查了当前的 Windows 用户:
whoami
观察到的用户:
desktop-th2mb3n\mehdi
通过以下方式生成了失败的登录尝试:
runas /user:mehdi cmd
输入了几个错误的密码以模拟暴力破解行为。
Wazuh 在 Threat Hunting 中检测到了失败的登录尝试。
| 字段 | 结果 |
|---|---|
| 代理 | HR_Anstalld |
| 规则描述 | Logon Failure - Unknown user or bad password |
| 规则 ID | 60122 |
| 规则级别 | 5 |
这证实了 Wazuh 能够检测来自 Windows 端点的失败身份验证活动。
### 2. 成功登录监控
从 Support 客户端观察到了成功的登录活动。
| 字段 | 结果 |
|---|---|
| 代理 | Support_Anstalld |
| 规则描述 | Windows Logon Success |
| 规则 ID | 60106 |
| 规则级别 | 3 |
这证实了 Wazuh 正在从 Support 端点收集 Windows 身份验证事件。
### 3. 可疑登录模拟
通过将 Support 客户端上的时区更改为以下内容,模拟了可疑登录场景:
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
更改时区后,用户注销并再次登录。
Wazuh 生成了一个成功登录事件:
Windows Logon Success
Rule ID: 60106
未生成国家或地理位置警报。这是预料之中的,因为实验室使用的是私有内部 IP 地址,例如:
192.168.30.101
私有实验室 IP 地址不提供真实的公共地理位置数据。
### 4. 高流量 / DDoS 模拟
从 HR 客户端针对 OPNsense 模拟了高 ICMP 流量。
使用的命令:
ping 192.168.10.1 -t -l 65500
目的是模拟异常的网络活动,并测试 Wazuh 是否会生成 DDoS 风格的警报。
默认的 Wazuh 规则未自动触发专用的 DDoS 警报。这表明特定的 DDoS 风格检测可能需要额外的解析、自定义规则或更高级的网络遥测技术。
这仍然是实验室中有用的一部分,因为它展示了生成流量与创建可靠的 SIEM 检测之间的区别。
## OPNsense Syslog 集成
OPNsense 被配置为使用远程 syslog 将日志转发到 Wazuh。
| 设置 | 值 |
|---|---|
| 传输协议 | UDP |
| 目标地址 | 192.168.10.150 |
| 端口 | 514 |
| 描述 | Wazuh Syslog |
| 日志源 | OPNsense firewall/syslog |
在 Wazuh 服务器上,syslog 接收配置在以下文件中:
/var/ossec/etc/ossec.conf
最终的 syslog 监听器配置:
<remote>
<connection>syslog</connection>
<port>514</port>
<protocol>udp</protocol>
<allowed-ips>192.168.10.1</allowed-ips>
<local_ip>0.0.0.0</local_ip>
</remote>
编辑配置后,重启了 Wazuh Manager:
sudo systemctl restart wazuh-manager
通过以下命令检查了服务状态:
sudo systemctl status wazuh-manager
结果:
active (running)
## 故障排查总结
本实验室的重要部分是排查 OPNsense 到 Wazuh 的 syslog 集成问题。
主要问题是 OPNsense 发送了 syslog 流量,但日志并未立即在 Wazuh 中显示。
故障排查步骤包括:
- 检查 Wazuh ossec.conf 配置
- 修复 XML 结构问题
- 删除错误放置的 ossec_config 闭合行
- 每次更改后重启 Wazuh Manager
- 使用 systemctl 验证服务状态
- 安装并使用 tcpdump
- 确认来自 OPNsense 的 UDP 514 流量已到达
- 启用 Wazuh 归档日志记录
- 在 archives.log 中审查原始日志
通过以下命令验证了 syslog 流量:
sudo tcpdump -i any udp port 514
这证实了 OPNsense 正在向 Wazuh 服务器发送 syslog 流量。
归档日志记录通过将以下内容更改来启用:
<logall>no</logall>
<logall_json>no</logall_json>
改为:
<logall>yes</logall>
<logall_json>yes</logall_json>
通过以下命令监控原始日志:
sudo tail -f /var/ossec/logs/archives/archives.log
此更改后,OPNsense 防火墙日志出现在了 archives.log 中。
最终验证的日志路径:
OPNsense → Syslog UDP 514 → Wazuh Server → archives.log
## 主要发现
| 领域 | 结果 |
|---|---|
| Wazuh 安装 | 增加虚拟机资源后成功 |
| Wazuh Dashboard | 可从 Windows 客户端访问 |
| HR 代理 | 活动状态 |
| Support 代理 | 活动状态 |
| 失败登录检测 | 成功 |
| 成功登录监控 | 成功 |
| 可疑登录模拟 | 检测到登录事件 |
| 地理位置警报 | 由于使用私有实验室 IP 而未触发| OPNsense syslog 转发 | 排查问题后成功 |
| tcpdump 验证 | 确认了 UDP 514 流量 |
| archives.log 验证 | 确认了原始 OPNsense 日志 |
| DDoS 模拟 | 生成了流量,但未触发默认 DDoS 警报 |
## 截图
### 1. OPNsense 接口概览

OPNsense 接口概览,展示了 LAN、WLAN、WAN 和 Support_LAN 接口。主 LAN 使用 `192.168.10.1/24`,Support_LAN 网段使用 `192.168.30.1/24`。
### 2. Wazuh 服务器静态 IP

Ubuntu Server 网络配置,显示 Wazuh 服务器在 LAN 网络上使用静态 IP 地址 `192.168.10.150/24`。
### 3. Wazuh Dashboard 概览

Wazuh Dashboard 概览,显示了活动的代理和警报统计信息,确认 Wazuh Web 界面正常工作。
### 4. Wazuh 代理摘要

Wazuh 端点摘要,显示了两个 Windows 代理 `HR_Anstalld` 和 `Support_Anstalld`,均已连接并处于活动状态。
### 5. HR 失败登录事件

Threat Hunting 视图显示了来自 `HR_Anstalld` 的多个失败登录事件,被检测为 `Logon Failure - Unknown user or bad password`,规则 ID 为 `60122`。
### 6. Support 成功登录事件

Threat Hunting 视图显示了来自 `Support_Anstalld` 的成功 Windows 登录事件,通过规则 ID `60106` 检测。
### 7. OPNsense Syslog 目标

OPNsense 远程日志配置,显示了通过 UDP 向位于 `192.168.10.150` 的 Wazuh 服务器转发 syslog。
### 8. Wazuh Manager 状态

Wazuh Manager 服务状态显示为 `active (running)`,确认 Wazuh 接受了配置并正常运行。
### 9. tcpdump Syslog 验证

tcpdump 输出显示了从 OPNsense 到 Wazuh 服务器的传入 UDP 514 syslog 流量,确认 syslog 数据包已到达服务器。
### 10. archives.log 验证

Wazuh `archives.log` 输出显示了原始的 OPNsense 防火墙日志,确认 syslog 数据已被 Wazuh 接收并写入。
## 我学到了什么
通过这个实验室,我实践了 SIEM 和端点监控如何融入更广泛的蓝队工作流程中。
主要收获:
- Wazuh 可以集中管理端点和安全事件监控
- Windows 代理提供有用的身份验证可见性
- 失败的登录尝试可以在 Threat Hunting 中被检测和审查
- 成功的登录对于调查和构建时间线也很有用
- OPNsense 可以使用 syslog 将防火墙日志转发到 Wazuh
- Syslog 故障排查需要发送方和接收方的双重验证
- tcpdump 可用于确认日志是否确实到达了服务器
- archives.log 可用于验证原始日志的获取
- 默认的 SIEM 规则并不总是能生成预期的确切警报
- 特定检测可能需要自定义规则和解析器调优
- DDoS 风格的检测通常需要的不仅仅是简单的 ping 流量
- 故障排查是真实 SOC 和蓝队工作的重要组成部分
- SIEM 只有与日志分析、验证和上下文相结合时才最有价值
## 展示的关键技能
- SIEM 部署
- Wazuh 安装和配置
- 端点监控
- Windows 事件日志分析
- 身份验证事件监控
- 暴力破解检测
- OPNsense syslog 转发
- 防火墙日志分析
- Linux 服务器配置
- 基于 tcpdump 的故障排查
- Wazuh 归档日志验证
- Threat Hunting
- 网络分段
- SOC 和蓝队方法论
- 在真实实验室条件下进行故障排查
## 文档
完整的实验室文档可在此处获取:
[实验室文档](docs/lab-documentation.md)
## 作者
Muhammad Mehdi
IT Security Developer Student
标签:AI合规, GitHub Advanced Security, Hyper-V, OPNsense, PoC, SIEM部署, Ubuntu Server, Wazuh, Windows代理, 可疑登录, 子域名变形, 安全事件分析, 安全加固, 安全实验室, 安全规则调优, 暴力破解, 端点监控, 系统日志, 红队行动, 网络安全监控, 身份验证事件, 防御性安全, 防火墙日志, 驱动开发