horrorshow21/Wazuh-Unifi-UDMPFWLogs
GitHub: horrorshow21/Wazuh-Unifi-UDMPFWLogs
为 Wazuh 定制解析与规则,覆盖 Ubiquiti UDM Pro 防火墙日志的解码与告警。
Stars: 0 | Forks: 0
# Wazuh 解码器和 UniFi UDM Pro 的规则
适用于 Ubiquiti UniFi Dream Machine Pro (UDM Pro) 防火墙/策略引擎日志的定制 Wazuh 解码器和规则。
测试环境:
- UniFi OS 4.x
- UniFi Network 9.x / 10.x
- Wazuh 4.14.x
## 解析内容
UDM Pro 的策略引擎会为每条防火墙规则命中记录生成类似 iptables 风格的 syslog 消息。这些日志 **不是** CEF 格式,示例如下:
```
UDMPRO [WAN_LOCAL-D-2147483647] DESCR="[WAN_LOCAL]Block All Traffic" IN=eth8 OUT= MAC=74:ac:b9:... SRC=x.x.x.x DST=x.x.x.x LEN=53 PROTO=UDP SPT=22146 DPT=27016
```
提取字段:
| 字段 | 描述 |
|---|---|
| `action` | `A`(允许)或 `D`(拒绝/阻断) |
| `extra_data` | 规则链(例如 `WAN_LOCAL`、`CUSTOM1_CUSTOM6`) |
| `rule_name` | UniFi UI 中的规则描述 |
| `srcip` | 源 IP |
| `dstip` | 目标 IP |
| `protocol` | TCP、UDP、ICMP 等 |
| `srcport` | 源端口 |
| `dstport` | 目标端口 |
## 先决条件
### 1. Wazuh syslog 监听器
在 `/var/ossec/etc/ossec.conf` 的 `` 中添加 syslog 远程块:
```
syslog
514
udp
YOUR_UDM_IP_OR_SUBNET
YOUR_WAZUH_IP
```
将 `YOUR_UDM_IP_OR_SUBNET` 替换为 UDM Pro 的 IP 或子网(例如 `192.168.1.0/24`)。如果 Wazuh 服务器与 UDM Pro 的主 IP 不在同一子网,请同时添加两条规则:
```
192.168.1.0/24
192.168.5.0/24
```
### 2. 在 UniFi 防火墙规则中启用 syslog 记录
在 UniFi 网络界面中:
**设置 → 网络安全 → 策略引擎 → 策略表**
对于每条需要记录日志的规则,点击 **编辑** 并启用 **Syslog 记录**。
### 3. 启用 SIEM syslog 目标
在 UniFi 网络界面中:
**设置 → 网络安全 → 流量记录 → 活动记录(Syslog)**
选择 **SIEM 服务器**,将 **服务器地址** 设置为 Wazuh IP,**端口** 设置为 `514`。
同时配置:
**设置 → 控制平面 → 集成 → 活动记录(Syslog)**
选择 **SIEM 服务器**,并使用相同地址和端口记录管理/CEF 事件。
## 安装
```
# 复制文件
sudo cp udmpro_decoders.xml /var/ossec/etc/decoders/
sudo cp udmpro_rules.xml /var/ossec/etc/rules/
# 设置权限
sudo chown wazuh:wazuh /var/ossec/etc/decoders/udmpro_decoders.xml
sudo chown wazuh:wazuh /var/ossec/etc/rules/udmpro_rules.xml
sudo chmod 660 /var/ossec/etc/decoders/udmpro_decoders.xml
sudo chmod 660 /var/ossec/etc/rules/udmpro_rules.xml
# 测试配置
sudo /var/ossec/bin/wazuh-analysisd -t
# 如果干净则重启
sudo systemctl restart wazuh-manager
```
## 验证
首先从系统中获取一条真实的日志:
```
sudo grep "UDMPRO" /var/ossec/logs/archives/archives.log | head -5
```
复制一条以时间戳开头的日志(例如 `Apr 15 06:32:53 UDMPRO [WAN_LOCAL-D-...`),然后运行:
```
sudo /var/ossec/bin/wazuh-logtest
```
将日志行粘贴到提示符中。
预期输出:
```
**Phase 2: Completed decoding.
name: 'udmpro-firewall'
action: 'D'
extra_data: 'WAN_LOCAL'
rule_name: '[WAN_LOCAL]Block All Traffic'
**Phase 3: Completed filtering (rules).
id: '110002'
level: '5'
description: 'UDM Pro: Traffic blocked by firewall rule: ...'
```
检查实时告警:
```
sudo tail -f /var/ossec/logs/alerts/alerts.log | grep -i udmpro
```
仪表板筛选器:`rule.groups: udmpro`
## 规则
| 规则 ID | 优先级 | 描述 |
|---|---|---|
| 110000 | 3 | 任意 UDM Pro 防火墙事件(基础规则) |
| 110001 | 3 | 防火墙规则允许的流量 |
| 110002 | 5 | 防火墙规则阻断的流量 |
| 110003 | 6 | 入站 WAN 流量被阻断 |
| 110004 | 5 | 跨 VLAN 流量被阻断 |
| 110005 | 7 | 明文 DNS 被阻断(可能的绕过尝试) |
| 110006 | 10 | 来自同一源的高频 WAN 阻断(扫描/攻击) |
| 110007 | 8 | 来自同一源的重复跨 VLAN 阻断 |
规则 ID 使用范围 `110000-110099`。如果与其他规则集冲突,请在 `udmpro_rules.xml` 中重新编号。
## 说明
- 这些规则仅解析 **iptables 风格** 的策略引擎日志。控制平面集成中发送的 CEF 格式日志需要单独的解码器(请参见 [Halino/Wazuh-Unifi](https://github.com/Halino/Wazuh-Unifi))。
- UDM Pro 从面向 Wazuh 服务器的接口发送 syslog,请确保该 IP 已被 `allowed-ips` 覆盖。
- 高流量的允许规则(如 DNS、日志记录)会产生大量优先级为 3 的告警。建议将规则 110001 的优先级调低为 0,或添加 `` 例外,在确认一切正常后屏蔽特定规则名称。
标签:iptables, OSSEC, Syslog, UDM Pro, UniFi, Wazuh, Windows日志分析, 日志分析与告警, 日志格式解析, 日志解析, 日志采集, 日志集中管理, 流量监控, 策略引擎, 网络安全, 网络安全挑战, 网络安全监控, 规则配置, 证书伪造, 远程日志, 防火墙日志, 隐私保护, 驱动开发